DT не торт
Ко мне обратился системный администратор одного из клиентов с проблемой, представленной на картинке:
Я сразу понял, что он пытается загрузить данные в базу из DT, подумал, что он пытается восстановить базу из архива и сказал всё что я думаю об архивации баз 1С в DT: «DT — ненадежный формат, 1С его не рекомендует использовать для бэкапов«.
Но, к счастью, оказалось, что админ просто пытается перенести базу из файловой в SQL. Полный текст ошибки оказался такой:
Ошибка загрузки информационной базы. В информационную базу загружены не все данные
по причине:
Нарушено условие уникальности данных.
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 10.0: Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._InfoRg29405" и индекса с именем "_InfoRg29405_1". Повторяющееся значение ключа: (0x20002000200020002000200020002000, 20002000200, 200020002000, 2001-01-01 20:00:20).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1
Я попытался найти обработку, которая позволит по идентификатору регистра определить, что это за регистр. Но увы, у меня была версия только для обычных форм «Список метаданных«.
Тогда я нашел другой способ определения идентификатора, через выгрузку файлов базы данных.
Но администратор оказался шустрее, он запустил ТИИ с удалением битых ссылок, в итоге чего была определена проблема:
Проверка логической целостности. РегистрСведений.ЗамерыВремени.Измерение.КлючеваяОперация <Объект не найден> (77:20002000200020002000200020002000):20 002 000 200:200 020 002 000:01.01.0001 20:00:20
Неверная ссылка. Запись удалена.
В итоге стало ясно, что битая запись была в регистре «Замеры времени», в общем то бесполезном.
Так удалось перенести базу в SQL-формат. Иногда пользователи находят более простые решения, чем программисты.
Объем: 0.2 час.
Свежие комментарии