Приветствуем вас, коллеги! Сегодня мы детально разберем крайне неприятную техническую проблему, с которой могут столкнуться администраторы и разработчики систем на базе управляемых форм «1С:Предприятия 8.3» (особенно часто это происходит в крупных конфигурациях, таких как 1С:ERP Управление предприятием 2 или 1С:Комплексная автоматизация). Представим ситуацию: в один рабочий день пользователи обнаруживают, что в документе Заказ поставщику из кнопки меню «Создать на основании» бесследно исчезла кнопка создания связанного документа (например, Доверенность). Одновременно с этим ломается форма списка самого документа: вместо привычной таблицы документов на экране выводится пустая область, либо отображается всего один случайный реквизит формы.
Что самое интересное — в тестовой копии базы данных всё отображается и работает корректно, права доступа пользователей не менялись, конфигурация не обновлялась, а очистка локального кэша на компьютерах пользователей не дает абсолютно никакого результата. Проанализируем причины этого странного поведения платформы и СУБД, а также разберем по шагам проверенные методы восстановления работоспособности системы.
Давайте сопоставим ключевые симптомы сбоя:
Доверенность). При этом в конфигураторе схема связей документов настроена правильно, и в копии базы все отображается корректно.Такое поведение системы указывает на то, что проблема лежит гораздо глубже локального кэша конкретного компьютера. Она связана с рассинхронизацией метаданных на уровне сервера приложений 1С, СУБД (SQL) или системных механизмов БСП (Библиотеки Стандартных Подсистем). Ниже мы подробно рассмотрим пять основных причин этой неисправности и способы их устранения.
Выясним причину, почему копия базы работает корректно, а рабочая база (на том же релизе платформы) выдает ошибку. При создании копии базы данных (будь то выгрузка/загрузка файла .dt или восстановление резервной копии средствами СУБД на другом сервере) происходит полная перезапись системных таблиц конфигурации и их повторное индексирование. В рабочей базе из-за частых динамических (так называемых «демонических») обновлений таблицы метаданных СУБД могут рассинхронизироваться.
В клиент-серверном режиме метаданные управляемых форм хранятся в таблицах Config и ConfigSave. При сбое платформы СУБД отдает серверу 1С искаженную структуру управляемой формы. Чтобы принудительно перезаписать эти таблицы в рабочей базе данных, выполним следующие шаги:
config.cf).config.cf.Этот метод заставит платформу полностью очистить и переписать системные таблицы метаданных в SQL, восстановив корректную структуру форм и связей объектов.
Если очистка локального кэша в каталоге AppData на компьютерах пользователей не решила проблему, это означает, что поврежден кэш самого сервера приложений 1С. Сервер кэширует структуру конфигурации, модули и управляемые формы для оптимизации производительности. Кэш сеансов хранится в рабочем каталоге службы сервера.
Разберем процесс очистки серверного кэша по шагам:
systemctl stop srv1cv83 в Linux).C:\Program Files\1cv8\srvinfo\reg_1541\).snccntx (например, snccntx.00000001). В этих каталогах хранятся данные кэша сеансов.Config внутри папок с идентификаторами информационных баз.При первом запуске после этой процедуры сервер приложений заново считает чистую структуру метаданных из СУБД и сформирует корректный кэш, что вернет форму списка в исходное рабочее состояние.
Как показывает практика, описанный сбой часто является проявлением зарегистрированных платформенных багов. В линейках платформ 8.3.15 – 8.3.17 (в частности, на некоторых релизах 8.3.17.1851) присутствовала плавающая ошибка отрисовки динамических списков и генерации меню «Создать на основании». Платформа в определенных условиях (например, при сложной структуре RLS или наличии левых соединений в запросе списка) не могла корректно построить форму на сервере и вместо вывода ошибки просто скрывала элемент формы Таблица (динамический список).
Проанализируем текущую версию платформы. Если у вас установлена одна из проблемных версий, настоятельно рекомендуется выполнить обновление платформы на сервере и у клиентов до стабильного релиза (например, линейки 8.3.18, 8.3.21 или выше, в зависимости от требований вашей версии ERP). Смена версии платформы полностью устраняет внутренние ошибки рендеринга элементов управляемых форм.
В современных конфигурациях 1С (ERP, КА, УТ) интерфейсные элементы, включая кнопки печати и команды ввода на основании, формируются не жестко в конфигураторе, а создаются программно при создании формы на сервере под управлением механизмов Библиотеки Стандартных Подсистем (БСП). Связи между документами кэшируются в специальных служебных регистрах сведений.
Если кэш БСП поврежден или не обновился после технических работ, кнопки могут исчезнуть. Для принудительного обновления вспомогательных данных БСП выполним одно из следующих действий:
Вариант А. Запустим базу данных в режиме «1С:Предприятие» со специальным ключом запуска в строке параметров:
/С ЗапуститьОбновлениеИнформационнойБазы
Этот ключ запускает обработку обновления ИБ, которая полностью перезаписывает служебные параметры БСП, восстанавливая логику связей документов.
Вариант Б. Выполним код обновления программно. Для этого в режиме отладки или через внешнюю обработку выполним следующий фрагмент кода:
ПараметрыОбновления = Справочники.ИдентификаторыОбъектовМетаданных.ПараметрыОбновления();
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанные(ПараметрыОбновления);
Этот код инициирует обновление справочника идентификаторов объектов метаданных, на базе которого строятся программные меню ввода на основании в БСП.
Еще один важный аспект, который необходимо проверить, — это влияние активных расширений конфигурации. В рабочей базе могут быть подключены расширения, которые по какой-то причине не перенеслись или были отключены в тестовой копии. Если в расширении заимствован документ Заказ поставщику или его форма списка, это может вызвать конфликт:
Заказ поставщику, и проверить, восстановилась ли форма списка.Давайте сведем все наши шаги в единый чек-лист для быстрой диагностики и решения проблемы в случае ее повторения:
snccntx*./С ЗапуститьОбновлениеИнформационнойБазы.Используя этот комплексный подход, мы сможем оперативно вернуть работоспособность критически важных интерфейсов и документов в рабочей базе данных, минимизируя простои пользователей.