Почему в 1С пропала кнопка «Создать на основании» и не отображается список документов?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

Приветствуем вас, коллеги! Сегодня мы детально разберем крайне неприятную техническую проблему, с которой могут столкнуться администраторы и разработчики систем на базе управляемых форм «1С:Предприятия 8.3» (особенно часто это происходит в крупных конфигурациях, таких как 1С:ERP Управление предприятием 2 или 1С:Комплексная автоматизация). Представим ситуацию: в один рабочий день пользователи обнаруживают, что в документе Заказ поставщику из кнопки меню «Создать на основании» бесследно исчезла кнопка создания связанного документа (например, Доверенность). Одновременно с этим ломается форма списка самого документа: вместо привычной таблицы документов на экране выводится пустая область, либо отображается всего один случайный реквизит формы.

Что самое интересное — в тестовой копии базы данных всё отображается и работает корректно, права доступа пользователей не менялись, конфигурация не обновлялась, а очистка локального кэша на компьютерах пользователей не дает абсолютно никакого результата. Проанализируем причины этого странного поведения платформы и СУБД, а также разберем по шагам проверенные методы восстановления работоспособности системы.

Симптомы проблемы и первичный анализ

Давайте сопоставим ключевые симптомы сбоя:

  1. Из списка «Создать на основании» исчезает конкретная команда (в нашем примере — Доверенность). При этом в конфигураторе схема связей документов настроена правильно, и в копии базы все отображается корректно.
  2. Форма списка документа (динамический список) перестает отрисовываться. Вместо этого пользователь видит серый экран, пустую область или одинокий реквизит на форме.
  3. Проблема имеет массовый характер — она проявляется у всех пользователей системы, независимо от их прав доступа (даже под учетной записью администратора с полными правами).

Такое поведение системы указывает на то, что проблема лежит гораздо глубже локального кэша конкретного компьютера. Она связана с рассинхронизацией метаданных на уровне сервера приложений 1С, СУБД (SQL) или системных механизмов БСП (Библиотеки Стандартных Подсистем). Ниже мы подробно рассмотрим пять основных причин этой неисправности и способы их устранения.

Способ 1. Принудительное обновление таблиц конфигурации в SQL (Устранение рассинхронизации метаданных)

Выясним причину, почему копия базы работает корректно, а рабочая база (на том же релизе платформы) выдает ошибку. При создании копии базы данных (будь то выгрузка/загрузка файла .dt или восстановление резервной копии средствами СУБД на другом сервере) происходит полная перезапись системных таблиц конфигурации и их повторное индексирование. В рабочей базе из-за частых динамических (так называемых «демонических») обновлений таблицы метаданных СУБД могут рассинхронизироваться.

В клиент-серверном режиме метаданные управляемых форм хранятся в таблицах Config и ConfigSave. При сбое платформы СУБД отдает серверу 1С искаженную структуру управляемой формы. Чтобы принудительно перезаписать эти таблицы в рабочей базе данных, выполним следующие шаги:

  1. Запустим рабочую базу в режиме Конфигуратор.
  2. Выберем пункт меню Конфигурация —> Сохранить конфигурацию в файл... и укажем путь для сохранения файла метаданных (например, config.cf).
  3. После успешного сохранения выберем пункт меню Конфигурация —> Загрузить конфигурацию из файла... и укажем только что сохраненный файл config.cf.
  4. Нажмем клавишу F7 (или кнопку «Обновить конфигурацию базы данных»). Выполним обновление строго монопольно, без использования динамического обновления!

Этот метод заставит платформу полностью очистить и переписать системные таблицы метаданных в SQL, восстановив корректную структуру форм и связей объектов.

Способ 2. Очистка кэша сервера приложений 1С:Предприятие

Если очистка локального кэша в каталоге AppData на компьютерах пользователей не решила проблему, это означает, что поврежден кэш самого сервера приложений 1С. Сервер кэширует структуру конфигурации, модули и управляемые формы для оптимизации производительности. Кэш сеансов хранится в рабочем каталоге службы сервера.

Разберем процесс очистки серверного кэша по шагам:

  1. Предупредим пользователей и завершим все активные сеансы в консоли администрирования серверов 1С.
  2. Остановим службу Агент сервера 1С:Предприятия 8.3 (через утилиту «Службы» в Windows или командой systemctl stop srv1cv83 в Linux).
  3. Перейдем в рабочий каталог сервера приложений (по умолчанию для Windows это C:\Program Files\1cv8\srvinfo\reg_1541\).
  4. Найдем и безвозвратно удалим все папки, названия которых начинаются с snccntx (например, snccntx.00000001). В этих каталогах хранятся данные кэша сеансов.
  5. Также рекомендуется удалить временные файлы конфигураций, которые хранятся в подкаталогах вида Config внутри папок с идентификаторами информационных баз.
  6. Запустим службу Агент сервера 1С:Предприятия 8.3.

При первом запуске после этой процедуры сервер приложений заново считает чистую структуру метаданных из СУБД и сформирует корректный кэш, что вернет форму списка в исходное рабочее состояние.

Способ 3. Обновление версии платформы (Обход платформенного бага)

Как показывает практика, описанный сбой часто является проявлением зарегистрированных платформенных багов. В линейках платформ 8.3.15 – 8.3.17 (в частности, на некоторых релизах 8.3.17.1851) присутствовала плавающая ошибка отрисовки динамических списков и генерации меню «Создать на основании». Платформа в определенных условиях (например, при сложной структуре RLS или наличии левых соединений в запросе списка) не могла корректно построить форму на сервере и вместо вывода ошибки просто скрывала элемент формы Таблица (динамический список).

Проанализируем текущую версию платформы. Если у вас установлена одна из проблемных версий, настоятельно рекомендуется выполнить обновление платформы на сервере и у клиентов до стабильного релиза (например, линейки 8.3.18, 8.3.21 или выше, в зависимости от требований вашей версии ERP). Смена версии платформы полностью устраняет внутренние ошибки рендеринга элементов управляемых форм.

Способ 4. Принудительное обновление параметров работы БСП

В современных конфигурациях 1С (ERP, КА, УТ) интерфейсные элементы, включая кнопки печати и команды ввода на основании, формируются не жестко в конфигураторе, а создаются программно при создании формы на сервере под управлением механизмов Библиотеки Стандартных Подсистем (БСП). Связи между документами кэшируются в специальных служебных регистрах сведений.

Если кэш БСП поврежден или не обновился после технических работ, кнопки могут исчезнуть. Для принудительного обновления вспомогательных данных БСП выполним одно из следующих действий:

Вариант А. Запустим базу данных в режиме «1С:Предприятие» со специальным ключом запуска в строке параметров:

/С ЗапуститьОбновлениеИнформационнойБазы

Этот ключ запускает обработку обновления ИБ, которая полностью перезаписывает служебные параметры БСП, восстанавливая логику связей документов.

Вариант Б. Выполним код обновления программно. Для этого в режиме отладки или через внешнюю обработку выполним следующий фрагмент кода:


ПараметрыОбновления = Справочники.ИдентификаторыОбъектовМетаданных.ПараметрыОбновления();
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанные(ПараметрыОбновления);

Этот код инициирует обновление справочника идентификаторов объектов метаданных, на базе которого строятся программные меню ввода на основании в БСП.

Способ 5. Проверка конфликтов с расширениями конфигурации

Еще один важный аспект, который необходимо проверить, — это влияние активных расширений конфигурации. В рабочей базе могут быть подключены расширения, которые по какой-то причине не перенеслись или были отключены в тестовой копии. Если в расширении заимствован документ Заказ поставщику или его форма списка, это может вызвать конфликт:

Резюме и чек-лист устранения сбоя

Давайте сведем все наши шаги в единый чек-лист для быстрой диагностики и решения проблемы в случае ее повторения:

  1. Убедимся, что проблема носит массовый характер и локальный кэш пользователей уже очищен.
  2. Проверим наличие активных расширений конфигурации и временно отключим их для теста.
  3. Выполним принудительное обновление метаданных в СУБД через операцию «Выгрузить/Загрузить конфигурацию в файл» без использования динамического обновления.
  4. Если это не помогло, остановим сервер 1С и полностью удалим каталоги серверного кэша сеансов snccntx*.
  5. Обновим параметры работы БСП, запустив базу с ключом /С ЗапуститьОбновлениеИнформационнойБазы.
  6. При сохранении проблемы запланируем обновление платформы «1С:Предприятие» до актуального стабильного релиза.

Используя этот комплексный подход, мы сможем оперативно вернуть работоспособность критически важных интерфейсов и документов в рабочей базе данных, минимизируя простои пользователей.

← На главную