для одного ссылочного кода существует более одной таблицы в базе данных
Для одного ссылочного кода существует более одной таблицы в базе данных
Ранее проблема решалась
Мои решения.
Вариант №1. Запускаем конфигуратор под платформой 8.3.14.*
Нажимаем кнопку Обновить конфигурацию базы данных
Запускаем предприятие версии платформы 8.3.15.*
Повторяем для каждого обновления.
Минус, нужно так делать при каждом обновление.
Вариант №2: всё делаем на платформе 8.3.15.*
У нас есть список проблемных таблиц. Нужно узнать их имена в 1С. Для этого используем «Иструмент разработчика» или аналоги для сопоставления внутренних имён и имён в конфигураторе 1С.
В моём случае это было 2 справочника и 1 План обмена.
1) Проверяем в режиме предприятие что содержится в данных справочниках или регистрах. Если они пустые, то можно удалить объекты из конфигуратора.
2) Для удаления, снимаем с поддержки конфигурацию.
3) После удаления пустых таблиц, добавим столько же объектов в БД.
4) Сохраняем конфигурацию, режим предприятия нам не нужен.
5) Обновляем БД меню->Конфигурация->Загрузить конфигурацию из файла
6) Нажимаем кнопку Обновить конфигурацию базы данных.
7) запускаем режим предприятие. Проверяем работоспособность.
Из минусов, не каждые объекты можно удалить без болезненно.
Вариант №3
полноценно его не тестировал, в некоторых случаях помогает
Ошибка SDBL: Ошибка обновления конфигурации базы данных. Для одного ссылочного кода существует более одной таблицы в базе данных.
Конф УПП 1.2
После обновления платформы до 1С:Предприятие 8.3 (8.3.15.1565), появляется ошибка при добавлении новых объектов конфигурации
Ошибка SDBL: Ошибка обновления конфигурации базы данных. Для одного ссылочного кода существует более одной таблицы в базе данных. Имена таблиц с кодом 2: CKinds2, CKindsDN1241 Имена таблиц с кодом 5: CKinds5, CKindsDN1276 Для исправления проблемы вы можете обратиться в службу технической поддержки.
Что можно еще попробовать.
при добавлении реквизита только в «ПланВидовРасчета.УправленческиеНачисления» ошибка осталась, когда добавил реквизит в «ПланВидовРасчета.ОсновныеНачисленияОрганизаций» обновление прошло
(2) Так точно! У меня УПП при переходе с 8.3.14 на 8.3.16 выдало две ошибки и помогло изменение именно этих двух планов.
УПП 1.3.130.1 платформа 8.3.16.1148.
Реструктуризация не помогла. Удалилась таблица v8users. Очень странно.
Добавление реквизита в ПВР помогло. Обновилось без ошибок.
При обновлении на 8.3.17.1386 возникла ошибка:
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка SDBL:
Ошибка обновления конфигурации базы данных. Для одного ссылочного кода существует более одной таблицы в базе данных.
Имена таблиц с кодом 719: CKinds719, CKindsDN13299
Имена таблиц с кодом 722: CKinds722, CKindsDN13312
Для исправления проблемы вы можете обратиться в службу технической поддержки.
Добавление реквизитов в ПланыВидовРасчетов ОсновныеНачисленияОрганизаций и УправленческиеНачисления помогло.
1С. Ошибка «Для одного ссылочного кода существует более одной таблицы в базе данных»
У одного из клиентов во время обновления конфигурации базы данных возникла ошибка «Для одного ссылочного кода существует более одной таблицы в базе данных».
Кроме того данная ошибка уже исправлена версиях платформы 8.3.12.1924, 8.3.13.1865, 8.3.14.1694, 8.3.15.1489.
Как возникает проблема и как ее избежать
Воспроизведение достаточно простое:
Как результат дальнейшее обновление конфигурации базы данных прерывается с указанной ошибкой.
Данный сценарий вполне можно получить при работе в тестовом контуре, выполняя обновлениие тестовой ИБ данными резервной копии продуктивной ИБ.
Для избежания данной проблемы необходимо выполнить перезапуск сервера 1С:Предприятия сразу после восстановления ИБ из резервной копии средствами СУБД, или работать на версиях платформы начиная с 8.3.12.1924, 8.3.13.1865, 8.3.14.1694, 8.3.15.1489.
Но если счастье уже наступило ошибка уже имеется в наличии, то исправлять придется самостоятельно.
Как устранить проблему
Казалось бы, необходимо только восстановить порядок в ссылочных кодах. Первым на ум приходит вариант с выполнением реструктуризации таблиц информационной базы из меню Тестирование и исправление, но оно не помогает.
Определение проблемных объектов
Для этого воспользуемся методом ПолучитьСтруктуруХраненияБазыДанных(), точнее напишем небольшой кусочек кода:
В полученном тексте найдем записи с указанными таблицами в сообщении об ошибке
Из полученного видно, что РегистрСведений.СостоянияБлокировкиВычетаНДСПоСчетамФактурам конфликтует с Константа.CRM_ПарольПользователяСинхронизацииiCRM и Документ.CRM_ШаблонЭтапаКалендарногоПлана.
Определение жертвы
Теперь необходимо исходя из наполнения ИБ и важности объектов решить какой из них удалить. В разбираемом примере РегистрСведений.СостоянияБлокировкиВычетаНДСПоСчетамФактурам оказался пуст, его и будем удалять.
Если объект содержит данные, тогда необходимо обеспечить возможность возвращения данных в исходное состояние. Например обработкой из инструментов разработчика ВыгрузкаЗагрузкаДанныхXML выполнить выгрузку данных в файл.
Удаление метаданного
Если метаданное стоит на поставке, тогда необходимо снять его с поставки. Для этого перейдем в меню Конфигурация — Поддержка — Настройка поддержки, в дереве матаданных найти необходимый объект и установить правило поддержки Объект снят с поддержки и установить признак Установить для подчиненных.
Теперь необходимо выполнить попытку удаление. Если на объект есть ссылки, то выведется сообщение об нерешенных зависимостях: “Объект не может быть удален, так как на него имеются ссылки в других объектах”.
Заходим в каждый из них, убираем ссылки, после удаляем сам объект.
Теперь, если все выполнено правильно, обновление конфигурации базы данных пройдет без проблем.
Реструктуризация таблиц информационной базы
Но это еще не конец. Если сейчас вернуть конфигурацию к начальному ее состоянию, то ошибка повторится. Для избежания повторения необходимо выполнить рекструктуризацию таблиц информационной базы.
Для этого необходимо перейти в меню Тестирование и исправление, и выполнить реструктуризацию таблиц информационной базы.
Восстановление метаданного и данных
Если в удаляемом объекте были данные, тогда необходимо выполнить их восстановление, например обработкой из инструментов разработчика ВыгрузкаЗагрузкаДанныхXML.
Собственно все! Таким нехитрым способом устранили ошибку «Для одного ссылочного кода существует более одной таблицы в базе данных».
Когда конфликтующие метаданные одинаковы
Может возникнуть ситуации, когда конфликтующие метаданные одинаковы. Ошибка характерна для планов видов расчета. Для исправления необходимо в проблемный план видов расчета добавить любой реквизит и обновить конфигурацию ИБ, произойдет реструктуризация, после чего проблема исчезнет. После исправления не забываем удалить реквизит, если он не нужен.
Данная ошибка может возникнуть даже при разворачивании пустой ИБ из шаблона поставки ЗУП 2.5 или УПП.
1С Ошибка «Для одного ссылочного кода существует более одной таблицы в базе данных»
Ошибка «Для одного ссылочного кода существует более одной таблицы в базе данных».
Кроме того данная ошибка уже исправлена версиях платформы 8.3.12.1924, 8.3.13.1865, 8.3.14.1694, 8.3.15.1489.
Как возникает проблема и как ее избежать
Воспроизведение достаточно простое:
Как результат дальнейшее обновление конфигурации базы данных прерывается с указанной ошибкой.
Данный сценарий вполне можно получить при работе в тестовом контуре, выполняя обновлениие тестовой ИБ данными резервной копии продуктивной ИБ.
Для избежания данной проблемы необходимо выполнить перезапуск сервера 1С:Предприятия сразу после восстановления ИБ из резервной копии средствами СУБД, или работать на версиях платформы начиная с 8.3.12.1924, 8.3.13.1865, 8.3.14.1694, 8.3.15.1489.
Но если счастье уже наступило ошибка уже имеется в наличии, то исправлять придется самостоятельно.
Как устранить проблему
Казалось бы, необходимо только восстановить порядок в ссылочных кодах. Первым на ум приходит вариант с выполнением реструктуризации таблиц информационной базы из меню Тестирование и исправление, но оно не помогает.
Определение проблемных объектов
Для этого воспользуемся методом ПолучитьСтруктуруХраненияБазыДанных(), точнее напишем небольшой кусочек кода:
При обновлении выдала ошибку:
В процессе обновления информационной базы произошла критическая ошибка
Ошибка обновления конфигурации базы данных.Для одного ссылочного кода существует более одной таблицы в базе данных.
Имена таблиц с кодом 1709: Reference1709, ReferenceChngR1709
Имена таблиц с кодом 1822: InfoRg1822, ReferenceChngR1822
Имена таблиц с кодом 1846: InfoRgChngR1846, ReferenceChngR1846
Имена таблиц с кодом 1847: InfoRg1847, ReferenceChngR1847
Имена таблиц с кодом 1857: InfoRgChngR1857, ReferenceChngR1857
Имена таблиц с кодом 1923: InfoRgChngR1923, ReferenceChngR1923
Для исправления проблемы вы можете обратиться в службу технической поддержки.
Состав таблиц :
InfoRgChngR1923 РегистрСведений.СведенияФНСОбОплатахНалогов.Изменения
ReferenceChngR1923 Справочник.СобытияОС.Изменения
Reference1709 Справочник.ЗаявлениеВФССОВозмещенииРасходовНаПогребениеПрисоединенныеФайлы
ReferenceChngR1709 Справочник.ПрочиеДоходыИРасходы.Изменения
InfoRg1822 РегистрСведений.БанковскиеСчетаИнтеграцииСБанком
ReferenceChngR1822 Справочник.РасходыБудущихПериодов.Изменения
InfoRgChngR1846 РегистрСведений.КонтрольПроведенияУчетныхДокументовЭДО.Изменения
ReferenceChngR1846 Справочник.Резервы.Изменения
InfoRg1847 РегистрСведений.КонтрольСопоставленияНоменклатурыЭДО
ReferenceChngR1847 Справочник.РолиКонтактныхЛиц.Изменения
InfoRgChngR1857 РегистрСведений.НастройкиЗаполненияДополнительныхПолей.Изменения
ReferenceChngR1857 Справочник.СерверыДокументооборота.Изменения
Вопрос: Может быть можно как-то сделать руками изменения в каких=то таблицах SQL и будет чудо?