Обновлено
При обновлении файловых Конфигураций 1С на платформе линейки 8.3.20.X (ошибка замечена на релизах платформы 8.3.20.1613 … 8.3.20.1590) может появляется ошибка:
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка СУБД:
Ошибка SQL: Таблица не найдена ‘SchemaStorage’
по причине:
Ошибка SQL: Таблица не найдена ‘SchemaStorage’
Решить эту проблему можно запуском обработки «Тестирования и исправления» в конфигураторе на платформах более низкой версии. Мы запускали на версии 8.3.17.1851. После успешного тестирования и исправления обновление конфигурации проходит без ошибок.
Чтобы выполнить тестирование и исправление сделаете резервную копию базы данных. Откройте Конфигуратор и запустите обработку с параметрами как на скриншотах ниже:
Альтернативным вариантом может быть выгрузка конфигурации в dt и обратная загрузка.
Сотрудники компании «АйТи-Консалтинг», специализирующиеся на разных программных продуктах, бухгалтерских и it услугах, написали статьи, позволяющие посетителям сайта быстро ориентироваться в ответах на интересующие вопросы.
Неточности СУБД базы данных (ошибка SQL) в программном продукте 1С: Предприятие 8
Данный материал будет полезен пользователям, столкнувшимся с неточностями в работе программных продуктов на платформе 1С: Предприятие 8.
Наличие большого количества сообщений пользователей (администраторов компаний, клиентов) с просьбой о содействии в ликвидации крупных ошибок СУБД базы данных (ошибка SQL) в программе 1С: Предприятие 8, стало причиной создания данной публикации.
На рисунке 1 приведен пример окна ошибки: Ошибка СУБД Ошибка SQL.
Почему возникают такие ошибки?
В первую очередь это обуславливается неправильной работой пользователей на местах с программами 1С. Экономия владельцев бизнеса на обучении своего персонала корректной работе с данным программным обеспечением, либо экономия на техническом оснащении, работа на устаревших компьютерах, применение близких к окончанию сроков эксплуатации жестких дисков через некоторое время могут вызвать крупные расходы. Неприятным результатом может стать простой бизнеса, а также утеря данных управленческого, бухгалтерского либо финансового учета.
Примеры источников ошибок в функционировании программ 1С и виды визуального выражения нарушения целостности БД (база данных):
-
аварийное завершение работы ОС с работающей программой 1С: Предприятие 8, в особенности во время формирования, проведения либо удаления файлов;
-
удаление и повреждение конфигурационных файлов в результате вмешательства со стороны пользователя либо техники;
-
приостановка процесса восстановления архивной информации;
-
отсутствие внешнего надежного напряжения питания;
-
присутствие файлов без нумерации, дат создания;
-
присутствие файлов с датой создания, которая не соответствует рядом стоящим файлам, к примеру, 2001 г. 01 ч. 01 мин. 01 с.;
-
присутствие операций без нумерации, дат создания;
-
недоступность ранее созданных файлов и операций;
-
отсутствие ссылок на объекты.
Таким образом, в первую очередь нужно завершить работу программы 1С.
После этого создайте копию БД (база данных) с повреждениями (для этого нужно сохранить базу в отдельный каталог на винчестере). Путь, ведущий к местонахождению БД (база данных), можно определить с помощью панели запуска 1С: Предприятие 8 внизу, найдите данный каталог на жестком диске и скопируйте его (смотрите рисунок 2).
Рисунок 2: Окно запуска 1С: Предприятие 8.
Далее протестируйте БД (база данных) на физическую целостность (на предмет «разрушения»). Чтобы это сделать, выполните переход к стандартной встроенной обработке 1С: Предприятие 8 по исправлению и тестированию неточностей – chdbfl.exe (загрузить для 1С: Предприятие 8). Данный документ должен присутствовать в каталоге с установленной программой 1С, найдите и выполните его запуск (смотрите рисунок 3).
Рисунок 3: Местонахождение документа chdbfl.exe.
Потом выбираем документ 1CV8.1 CD, который можно найти в каталоге нашей БД (база данных) с повреждениями, устанавливаем галочку «Исправлять обнаруженные ошибки» и жмем «Выполнить» (смотрите рисунок 4).
На проверку физической целостности документа БД (база данных) может уйти от 10 мин. до нескольких часов – это определяется объемом вашей БД (база данных) и количеством неточностей в ней. По завершении проверки обнаруженные неточности рекомендуется сохранить в отдельный документ для последующей экспертной диагностики.
Рисунок 4: Окно проверки физической целостности документа информационной базы
После этого зайдите в режим конфигуратора (смотрите рисунок 5) и найдите в нем сервисную утилиту “Тестирование и исправление информационной базы” (смотрите рисунок 6).
Меню – Администрирование – Тестирование и исправление
Рисунок 5: Конфигуратор
Рисунок 6: Окно тестирования и исправления БД (база данных)
Выберите такие пункты, как:
-
Реиндексация таблиц информационной базы – функция восстановления табличной части БД (база данных).
-
Проверка логической целостности информационной базы – функция проверки логической целостности БД (база данных).
-
Проверка ссылочной целостности информационной базы – тестирование внутренних связей таблиц, которые устанавливает программа 1С: Предприятие 8, проверка фактического существования элементов данных со ссылками в полях записи таблиц.
-
Перерасчет итогов – выполнение полного перерасчета итоговых данных.
-
Переключатель ниже, выбор пункта «Тестирование и исправление».
Операция «Тестирование и исправление» может длиться от 10 мин. до нескольких часов – это определяется объемом БД (база данных) и количеством неточностей в ней. По завершении проверки обнаруженные неточности рекомендуется сохранить в отдельный документ для последующей экспертной диагностики.
На следующем этапе закройте конфигуратор, откройте БД (база данных) в стандартном режиме и оцените произошедшие изменения с поврежденными файлами либо справочниками, сформируйте ключевые отчеты для сравнения. Если проблемы отсутствуют и все в порядке, смело продолжайте работу с БД (база данных). Если проблема с информационной базой все еще присутствует, приглашайте эксперта по 1С из обслуживающей компании «АйТи-Консалтинг», либо сразу обращайтесь в техническую поддержку 1С.
Внимательно изучите ситуацию, сделайте верные выводы: обеспечьте вашим работникам обучение корректной работе с программами 1С, купите новую технику на замену старой.
Если Вы слишком заняты и не можете тратить на это время, мы ждем Ваших обращений в сертифицированный центр обслуживания 1С — «АйТи-Консалтинг».
В процессе обновления информационной базы произошла критическая ошибка по причине: Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Не удалось вставить значение NULL в столбец таблицы «.dbo.»; в столбце запрещены значения NULL. Ошибка в INSERT.
Описание ошибки:
Столкнулся с ошибкой при выполнении процедуры Тестирование и исправление… на этапе реструктуризации таблиц информационной базы. База клиент-серверная. 1С: Управление торговлей 10.3.31. Платформа 1С: Предприятие 8.3.9
Найденные решения:
Сложно сказать, что посчастливилось, но все же ошибка преследовала меня в базе не единожды. Но по своей сути каждая последующая формулировка «В процессе обновления информационной базы произошла критическая ошибка…» отличалсь в причине и решении незначительно. С такой ошибкой столкнулся, если быть откровенным, впервые, но интернет в принятии решения устранения ошибки сильно не помог, кроме вот этого обсуждения на форуме Как удалить строки содержащие NULL в таблице где NULL недопустимо. Зацепок решения не было. Но все же решение было найдено. Читаем… ниже.
Итак, начнем с первого факта возникновения ошибки при выполнении тестирования и исправления базы данных на этапе реструктуризации таблиц базы данных.
Кнопка «Подробно…»:
Полный текст ошибки:
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Не удалось вставить значение NULL в столбец «_Fld412», таблицы «Торговля.dbo._Reference19NG»; в столбце запрещены значения NULL. Ошибка в INSERT.
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=2, Severity=10, native=515, line=1
Если взглянуть скрином ранее, то нельзя упустить из виду подсказку, оставленую программой в левом нижнем углу окна программы, в строке состояния, о том, что выполнение реструктуризации прервалось на справочнике «Банковские счета». В базе справочник имел более 3х с половиной тысяч элементов, поэтому сходу было сложно понять, в каком из них скрывается ошибка. Была написана простая обработка, которая просто должны была обойти все элементы справочника и перезаписать их. Надежда была на то, что запись проблемного элемента завершиться ошибкой.
Исполняемый код обработки прост:
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| БанковскиеСчета.Ссылка
|ИЗ
| Справочник.БанковскиеСчета КАК БанковскиеСчета»;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СпрОбъект = Выборка.Ссылка.ПолучитьОбъект();
СпрОбъект.Записать();
КонецЦикла;
Предположение было оправдано. Ошибка при записи возникла. Теперь было понятно, элемент с каким кодом может быть причиной критической ошибки в процессе обновления информационной базы.
Это оказался элемент справочника, у которого не был заполнен ни одни реквизит, так что мне даже не удавалось пометить такой элемент на удаление. Дальше была написана простая обработка для удаления выбранного элемента справочника без проверки ссылочной целостности. Элемент был удален.
Тестирование и исправление было запущено повторно. Но уже вскоре после запуска процедуры в режиме реструктуризация таблиц базы мен ожидала идентичная ошибка, но уже связанная со справочником «Организации».
Новый текст ошибки отличался лишь немногим, названием таблицы и именем столбца:
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Не удалось вставить значение NULL в столбец «_Fld888», таблицы «Торговля.dbo._Reference66NG»; в столбце запрещены значения NULL. Ошибка в INSERT.
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=2, Severity=10, native=515, line=1
По опыту предыдущей инцидента уже казалось понятным, что в справочнике у какого-то элемента не заполнены данные. Так и оказалось. Проблемный элемент справочника был найден мгновенно и в этом случае повезло больше элемент можно было пометить на удаление, был помечен и удален с помощью «Удаление помеченных объектов».
Тестирование и исправление было запущено в третий раз. Но и этот раз не обошелся без «критической ошибки в процессе обновления информационной базы».
Текст третьей ошибки:
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Не удалось вставить значение NULL в столбец «_Fld1024RRef», таблицы «Торговля.dbo._Reference88NG»; в столбце запрещены значения NULL. Ошибка в INSERT.
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=2, Severity=10, native=515, line=1
Но и в этот раз программа оставила подсказку, что проблема содержится в записях справочника «ТипыЦенНоменклатурыКонтрагентов».
Удалить проблемные элементы справочника пришлось программно с помощью все той же, указанной выше простой обработки непосредственного удаления без проверки ссылочной целостности.
И в итоге очередной запуск, уже четвертый по счету, в режиме «Реструктуризация таблиц информационной базы» в рамках тестирования и исправления завершился успешно.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
31-10-2018
Журавлев А.С.
(Сайт azhur-c.ru)
Содержание:
1. Ошибка СУБД – файл базы данных поврежден
2. Создание резервной копии базы данных
3. Самые распространенные ошибки информационной базы 1С
1. Ошибка СУБД – файл базы данных поврежден
Приветствую, коллеги! Сегодня разберем ситуацию, при которой конфигуратор при попытке выгрузить информационную базу сообщает об ошибке СУБД.
Рис. 1 Ошибка СУБД – файл базы данных поврежден
В сообщении об ошибке СУБД указано, что файл базы данных поврежден. Если посмотреть расшифровку «Подробнее», ничего нового система нам не сообщит. Эта ошибка информационной базы 1С 8.3 возникает исключительно в файловых базах данных. В клиент-серверных базах она не наблюдается.
В этой ситуации можно попробовать запустить процесс тестирования и исправления, но чаще всего он не имеет никакого положительного эффекта, а может и привести к потере связи или потере ссылок внутри базы данных. В частности, было замечено, что в некоторых документах пропадают ссылки на Контрагентов.
Тестирование и исправление базы 1С вызывается из пункта администрирование. Для того чтобы исправить проблему можно воспользоваться утилитой, которая поставляется в комплекте с 1С. Прежде чем переходить к использованию утилиты, необходимо сделать резервную копию базы. Также рекомендую в данной ситуации запомнить, какой релиз у вас используется, на случай, если одновременно используется несколько релизов программы 1С.
Итак, возникает закономерный вопрос: как сделать резервную копию базы, если процедура «Выгрузить информационную базу» не работает из-за ошибки СУБД?
Для этого следует закрыть конфигуратор, открыть каталог, в котором находится база данных, и в файловом режиме выполнить копирование, либо скопировать в другое место сам каталог, либо сделать копию с помощью архиватора, например, Winrar.
Теперь расскажу, как найти утилиту для исправления базы данных? Переходим туда, где на ПК расположена Ваша база (путь можно посмотреть в свойствах ярлыка на рабочем столе), чаще всего – на диске С. Находим каталог 1cv8, где видим список установленных платформ на текущий момент. Выбираем ту, которую мы запомнили в конфигураторе на предыдущем шаге, заходим в неё, далее – в каталог bin. Теперь нам необходимо найти приложение с именем Chdbfl. Этот файлик будет помечен именно как приложение. Запускаем его
Рис. 2 Приложение chdbfl
Теперь для исправления ошибки СУБД необходимо выбрать имя файла базы данных. Находим битую базу в каталоге, выбираем этот файл и ставим галочку «Исправлять обнаруженные ошибки». При анализе физической целостности файла базы данных утилита будет автоматически исправлять ошибки.
Нажимаем кнопку «Выполнить» – происходит проверка файла базы данных.
Рис. 3 Окно проверки физической целостности файла
Потребуется время на обработку утилиты, после чего появится сообщение о завершении проверки и сформируется анализ, указывающий на количество исправленных ошибок. Закрываем утилиту, после этого открываем 1С в режиме конфигуратора и пытаемся выгрузить информационную базу повторно. Данная утилита универсальна и поэтому должна исправлять имеющиеся ошибки информационной базы 1С.
2. Создание резервной копии базы данных
Перед любыми манипуляциями с программой обязательно делаем резервную копию базы данных. Кликаем на ярлык 1С два раза, в открывшемся списке баз выбираем нужную и переходим в Конфигуратор. Сверху выбираем меню «Администрированье». Далее выбираем пункт выгрузка информационной базы, затем выбираем путь сохранения, пишем имя файла выгрузки. Программа подумает некоторое время и далее оповестит вас, что выгрузка информационной базы успешно завершена.
Если же прав конфигурирования у Вас нет, то есть другой способ. Для этого база должна работать в файловом режиме. Файловый режим, говоря простым языком, это режим хранения базы в определенной папке на вашем компьютере.
Как определить, что режим работы файловый, и папку, в которой храниться база? Заходим в лаунчер 1С и выбираем нужную базу. Нажимаем кнопку «Изменить», если указатель стоит на первом пункте, то база файловая, а чуть ниже написано места ее расположения. Изображение номер 4.
Рис. 4 Местонахождение базы на компьютере
Заходим в папку с базой и копируем ее в другое место. Таким образом мы получаем резервную копию базы данных.
Есть ещё довольно непростой случай, и он – самый неприятный. В конфигуратор не войти, а база работает не в файловом режиме. В такой ситуации лучше вообще не предпринимать никаких действий, а сразу обратиться к специалисту.
3. Самые распространенные ошибки информационной базы 1С
А теперь перейдём к другим ошибкам информационной базы 1С 8.3 и способам их устранения. Первая – ошибка формата потока при загрузке базы. Причин появления этого сообщения великое множество, поэтому перейдем сразу к лечению, варианта всего три. Первый – тестирование и исправление базы 1С. Второй – утилита chdbfl. Третий – это очистка кэша.
Для тестирования и исправления заходим в конфигуратор. Сверху выбираем меню «Администрирование → Тестирование/исправление». Далее выставляем галочки как показано на изображении 5 и нажимаем кнопку «Выполнить».
Рис. 5 Тестирование и исправление базы 1С
Теперь переходим к утилите chdbfl. Находим папку, куда была установлена программа 1С. В ней ищем папку bin, где будет иконка синего цилиндра под названием chdfbl. Запускаем утилиту. В открывшемся окне ищем папку, в которой хранится наша информационная база. Зайдя в неё, выбираем файл 1сv8 1cd. Затем устанавливаем галочку «Исправлять обнаруженные ошибки» и жмем «Выполнить». Когда chdbfl закончит свою работу, можем пробовать зайти в программу.
Как уже было сказано, третий способ – это очистка кэша. Кэшем называют определенное место на компьютере для хранения записей копий страниц в Интернете. Даже единожды зайдя на какой-либо сайт, Вы автоматически создаете на своем ПК его копию, чтобы ускорить загрузку страниц при последующих посещениях. Рекомендуются через некоторое время очищать кэш браузера, так как со временем некоторые страницы сайта обновляются, a кэш этой страницы будет по-прежнему загружать старую версию. Также если Вы обнаружили вирус и на своем компьютере, после его удаления или лечения обязательно почистите кэш браузера, чтобы повторно не заразить компьютер. Если долгое время не чистить кэш, объем копируемых страниц для памяти может существенно увеличиться, тем самым замедляя работу кэширования. Ускорение обработки веб-страницы имеет такой же принцип, как на современных смартфонах.
Самый быстрый и простой вариант очистки кэша – это удаление базы из списка информационных баз. Не переживайте – тем самым вы не удаляете всю базу или программу, она у вас есть и все еще хранится на вашем компьютере.
После удаления базы из списка ее нужно опять добавить. Для этого нажимаем кнопку добавить, выбираем второй пункт из трех предложенных, а именно: «Добавление в список существующих ИБ». Нажимаем «Далее», указываем наименование базы, папку, где хранится база, и снова нажимаем «Далее», а затем – «Готово». Теперь мы можем проверять работоспособность программы.
Переходим ко второй распространенной ошибке – нарушению целостности структуры конфигурации. Если система позволяет зайти в конфигуратор, то просто выгружаем и снова загружаем информационную базу, нередко это помогает. Если не помогло, то проводим тестирование и исправление базы 1С. Если и это не помогло, то чистим кэш. Если и тут мимо, пробуем ставить новую платформу 1С и тестируем работу программы на ней. Когда все варианты перепробованы, а проблема никуда не делась, нужно обращаться к профессионалам.
Ошибка «Недостаточно свободной памяти» – третья в нашем списке. Данное сообщение обычно появляется при обновлении программы, формирование большого отчета и прочих сложных операциях. Запускаем командную строку и вписываем следующее:
Рис. 6 Исправление ошибки недостаточно свободно памяти в командной строке
Число в конце — это размер желаемой памяти. Перезагружаем компьютер, заходим в 1С и пробуем сделать ту операцию, в процессе которой появилась ошибка.
Номер четыре – ошибка «Запись дампа», появляющаяся при выполнении какой-либо операции в программе. Данная ошибка показана на рис. 7.
Рис. 7 Окно ошибки дампа
В первую очередь пробуем отключить аппаратное ускорение видео карты. Как это делать, Вам придётся загуглить самим, потому что последовательность здесь зависит от операционной системы. Второй способ устранения данной проблемы – установка другой версии платформы 1С.
Номер пять – ошибка СУБД: Внутренняя ошибка компонента dbeng8.
Изображение 9 – Ошибка СУБД
Для исправления этой ошибки идем по стандартному сценарию: тестирование и исправление; если не помогает, то chdbfl; если также не помогает, то обновление платформы 1С.
Номер шесть – «Неверный формат хранилища данных».
Рис. 9 Ошибка формата хранилища данных
Возможные варианты устранения данной ошибки – это очистка кэша или тестирование и исправление базы 1С.
Если 1С отказывается запускаться и выдает ошибку: «У текущего пользователя нет доступных ролей для запуска информационной базы», то этому пользователю необходимо назначить соответствующую роль через конфигуратор, перейдя в «Администрирование → Пользователи → [выбрав пользователя] Прочее».
Рис. 10 Ошибка прав доступа
Иногда при старте 1С возникает сообщение об отсутствии прав для запуска требуемого вида клиента. Возможно, был создан новый пользователь вообще без ролей. Как это понять? Заходим в Конфигуратор, переходим к списку пользователей и видим напротив имени интересующего нас сотрудника знак вопроса. Делаем то же самое, что и в предыдущем пункте: заходим в карточку пользователя и на вкладке «Прочие» назначаем ему нужную роль.
Специалист компании «Кодерлайн»
Никита Брежицкий
Доброго времени суток, уважаемые читатели блога SoftMaker.kz. Сегодня мы поговорим, как побороть ошибку, возникающую в файловой базе 1С при неправильном закрытии системы 1С:Предприятие, например при внезапном отключении света или неправильной работе компьютера (работает и в случае, если 1С:Предприятие 8 установлено на MS SQL Server 2008 R2 Express). Ошибка СУБД: Ошибка SQL: «Таблица не найдена: _Reference76» появлялась, когда производилось тестирование и исправление информационной базы (ТиИ ИБ) при прохождении проверки логической целостности ИБ. При попытке выгрузить ИБ Конфигуратор вылетал.
Проверка физической целостности файла 1Cv8.1CD с помощью утилиты chdbfl.exe показало, что ошибок не обнаружено. Поэтому пришлось идти другим путём и получилось следующее:
- Определяем как в базе называется таблица _Reference76 с помощью внешней обработки 1С
- Заменяем справочник «Спецификации номенклатуры» на новый
- Убираем ссылки со старого справочника «Спецификации номенклатуры» и удаляем его
Определяем как в базе называется таблица _Reference76 с помощью внешней обработки 1С
В случае ошибки СУБД: Ошибка SQL: Таблица не найдена _Reference76 сразу становится ясно, что была удалена таблица «_Reference76» и из названия ясно, что это какой-то справочник. Но как теперь определить, к какому именно справочнику таблица «_Reference76» относится, чтобы попытаться её восстановить? Для этого можно написать небольшую обработку для выяснения названия:
Процедура КнопкаВыполнитьНажатие(Кнопка) МассивИменМетаданных = Новый Массив(); Для каждого Объект Из Метаданные.Справочники Цикл МассивИменМетаданных.Добавить(Объект.ПолноеИмя()); КонецЦикла; // Таблица значений, содержащая таблицы указанного объекта. Таблицы = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных); Для Каждого Таблица Из Таблицы Цикл Сообщить(Таблица.Метаданные + " - " + Таблица.ИмяТаблицыХранения); КонецЦикла; КонецПроцедуры
В результате работы обработки выяснилось, что таблица «_Reference76» относится к справочнику «Спецификации номенклатуры».
... Справочник.СпецификацииНоменклатуры - Reference76 ...
Обработку для поиска соответствия названия справочников конфигурации 1С и их внутренних таблиц можно скачать отсюда.
Заменяем справочник «Спецификации номенклатуры» на новый
Теперь заменим справочник «Спецификации номенклатуры» на новый. Для этого выполним следующие действия:
- Изменим наименование справочника «СпецификацииНоменклатуры» на «ЯСпецификацииНоменклатуры». Нажмём правой кнопкой мыши на справочнике «СпецификацииНоменклатуры» и в контекстном меню выберем пункт «Свойства» и в поле «Имя» изменим наименование.
- Теперь отсортируем справочники в дереве метаданных по имени. Нажмём правой кнопкой мыши на справочнике «СпецификацииНоменклатуры» и в контекстном меню выберем пункт «Сортировать…». Cправочник «СпецификацииНоменклатуры» оказался в самом низу, нам это пригодится в дальнейшем.
- Теперь заменим справочник «Спецификации номенклатуры» на новый. Для этого нужна идентичная конфигурация с неповреждённым справочником «Спецификации номенклатуры». Нужно открыть эту конфигурацию в режиме «Конфигуратор» и выделить справочник «Спецификации номенклатуры» в дереве метаданных и скопировать его (Ctrl+C).
- Открываем «Конфигуратор» с повреждённой базой и вставляем новый справочником «Спецификации номенклатуры» (Ctrl+V).
- Теперь снимем с поддержки справочник «ЯСпецификацииНоменклатуры», чтобы затем удалить его. «Конфигурация» | «Поддержка» | «Настройка поддержки». В дереве метаданных выберем справочник «ЯСпецификацииНоменклатуры» и двойным щелчком мыши на справочнике откроем следующий диалог:
- В диалоге «Настройка правил поддержки» выберем правило «Объект поставщика снят с поддержки» и поставим флажок «Установить для подчинённых объектов».
- После снятия с поддержки справочники «ЯСпецификацииНоменклатуры» и «СпецификацииНоменклатуры» в дереве метаданных конфигурации выглядят следующим образом:
Убираем ссылки со старого справочника «Спецификации номенклатуры» и удаляем его
-
- Жмём правой кнопкой мыши на справочнике «ЯСпецификацииНоменклатуры» и в контекстном меню выбираем пункт «Удалить». Появилось сообщение Конфигуратора: «Объект не может быть удален, так как на него имеются ссылки в других объектах!»
- Нажимаем на кнопку «ОК». В окне служебных сообщений видим список объектов, которые содержат в себе ссылки на справочник «ЯСпецификацииНоменклатуры». Этот список поможет быстро заменить ссылки со справочника «ЯСпецификацииНоменклатуры» на справочник «СпецификацииНоменклатуры». Приступим.
- Чтобы заменить ссылки в объектах нажимаем на каждую строку списка двойным кликом. Для примера возьмём первый элемент списка «ПодпискаНаСобытие.ПриУстановкеНовогоКодаСправочника.Источник»
- Жмём правой кнопкой мыши на справочнике «ЯСпецификацииНоменклатуры» и в контекстном меню выбираем пункт «Удалить». Появилось сообщение Конфигуратора: «Объект не может быть удален, так как на него имеются ссылки в других объектах!»
- После двойного клика на этом элементе, в дереве метаданных откроется объект и в нём мы найдем ссылку на справочник «ЯСпецификацииНоменклатуры».
- Два раза нажимаем левой кнопкой мыши, чтобы открыть свойство объекта, в котором содержится ссылка на справочник «ЯСпецификацииНоменклатуры».
- Как видно из вышеприведённого изображения в поле «Источник» содержится составной тип, в который входит и справочник «ЯСпецификацииНоменклатуры». Заменим ссылку со справочника «ЯСпецификацииНоменклатуры» на справочник «СпецификацииНоменклатуры» в диалоге редактирования составного типа данных. Ссылка заменяется снятием флажка напротив справочника «ЯСпецификацииНоменклатуры» и установкой флажка напротив справочника «СпецификацииНоменклатуры».
- Эти же самые действия проделываем для всех элементов вышеприведённого списка.
- Открываем каждый объект и заменяем в нём ссылки.
- После замены ссылок объект спокойно удаляется.
- Сохраняем конфигурацию, нажав, клавишу «F7».
Теперь новый справочник «СпецификацииНоменклатуры» ссылается на новую таблицу в базе 1С — _Reference6845. Если в справочнике были какие-нибудь данные, то они уже уничтожены, поэтому нужно их восстановить. Это можно сделать воспользовавшись советами статьи Как выгрузить данные в идентичную конфигурацию 1С? Если была удалена другая таблица, например _DOCUMENT, тогда нужно изменить обработку для поиска соответствия названия документов конфигурации 1С и их внутренних таблиц, а шаги проделать те же самые.