Почему в РИБ Розница 2.2 не появляются новые команды Создать на основании

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

Ситуация, когда программист вносит изменения в центральную базу (ЦБ) распределенной информационной системы (РИБ), но в периферийных узлах (например, в магазинах) эти изменения не отображаются, является классической для платформы 1С:Предприятие 8.3. Особенно часто это касается интерфейсных элементов, таких как кнопка Создать на основании. Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам алгоритм диагностики и устранения неисправности.

Шаг 1. Анализ идентичности конфигураций через сравнение файлов

Первым делом нам необходимо убедиться, что изменения действительно «долетели» до подчиненного узла. Даже если статус обмена сообщает об успешном завершении, конфигурация базы данных в узле может не обновиться. Проанализируем ситуацию, выполнив сравнение конфигураций физически.

Для этого в периферийной базе выполним следующие действия:

  1. Зайдем в конфигуратор периферийного узла.
  2. Выгрузим конфигурацию в файл (Конфигурация -> Сохранить конфигурацию в файл...). Назовем его rib_node.cf.
  3. Аналогичную операцию выполним в центральной базе, сохранив её как central.cf.
  4. Вернемся в конфигуратор узла и выполним сравнение: Конфигурация -> Сравнить конфигурации из файлов...

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

Шаг 2. Проверка функциональных опций

Выясним причину, связанную с бизнес-логикой. В 1С:Розница многие команды жестко привязаны к Функциональным опциям. Если команда создания документа ВозвратПоставщику на основании ПриказаНаИнвентаризацию связана с опцией, которая отключена в конкретном магазине, кнопка не появится.

Рассмотрим подробнее: в РИБ значения констант, управляющих функциональными опциями, могут не мигрировать из центра в узлы, если они не включены в план обмена или если в узле установлены индивидуальные настройки. Проанализируем настройки в режиме «1С:Предприятие» в каждом узле:

  1. Перейдем в раздел Администрирование.
  2. Проверим настройки соответствующих разделов (например, «Закупки» или «Склад»).
  3. Убедимся, что использование документов возврата и инвентаризации разрешено.

Шаг 3. Настройка командного интерфейса формы

Если метаданные верны и права есть, кнопка может быть скрыта на уровне настроек формы документа. В платформе 8.3 пользователи могут индивидуально настраивать состав команд. Однако есть и системный аспект: если в форме документа ПриказНаИнвентаризацию вручную правился состав команд в конфигураторе, автозаполнение команд может не сработать.

Выполним проверку в режиме предприятия в проблемном узле:

  1. Откроем форму документа-источника.
  2. Нажмем Еще -> Изменить форму.
  3. В дереве элементов найдем группу Командная панель -> Создать на основании.
  4. Нажмем кнопку Установить стандартные настройки.

Это действие сбросит пользовательские кэши видимости элементов и может вернуть «потерянные» команды.

Шаг 4. Права доступа и RLS

Проанализируем ситуацию с правами. Даже если у пользователя «Полные права», в распределенных базах профили групп доступа могут синхронизироваться с задержкой или иметь ошибки регистрации. Если у пользователя нет прав на Чтение или Добавление для документа-приемника (например, ПоступлениеТоваров), система автоматически скроет команду создания на основании.

Важно проверить не только общие роли, но и настройки RLS (Record Level Security). В коде заполнения на основании часто используются запросы. Если RLS ограничивает доступ к какому-то реквизиту, используемому в ОбработкаЗаполнения, платформа может блокировать вывод команды.

Шаг 5. Принудительная регистрация изменений конфигурации

Если мы выяснили, что конфигурация в узлах всё же отличается, несмотря на успешные обмены, нужно «подтолкнуть» систему. Посмотрим на пример использования обработки Регистрация изменений для обмена:

  1. В центральной базе откроем обработку регистрации изменений для нужного узла РИБ.
  2. Найдем узел Конфигурация.
  3. Если изменений нет, внесем фиктивное изменение в конфигурацию (например, добавим пробел в описание документа) и обновим конфигурацию базы данных (F7).
  4. Убедимся, что объект «Конфигурация» зарегистрирован к выгрузке для проблемных узлов.
  5. Выполним синхронизацию.

Шаг 6. Очистка серверного и локального кэша

Иногда возникает «эффект памяти», когда конфигурация обновилась, но платформа продолжает использовать старое описание метаданных. Рассмотрим, как очистить кэш:

  1. На стороне клиента: запустить 1С с параметром /ClearCache.
  2. На стороне сервера (если база клиент-серверная): перезапустить службу 1C:Enterprise 8.3 Server Agent.
  3. В крайнем случае — удалить базу из списка и добавить её заново, что приведет к созданию новой папки кэша.

Шаг 7. Проверка расширений конфигурации

Если доработка механизма «Создать на основании» выполнялась через расширение, проанализируем его состояние в узлах. В 1С:Розница 2.2 расширения могут иметь разную активность в разных узлах. Проверим программно или через интерфейс:


// Пример кода для проверки активных расширений
Расширения = РасширенияКонфигурации.Получить();
Для Каждого Расширение Из Расширения Цикл
    Если Расширение.Активно Тогда
        Сообщить("Расширение " + Расширение.Имя + " работает");
    КонецЕсли;
КонецЦикла;

Если в узле расширение находится в состоянии ошибки (например, из-за конфликта имен после обновления основной конфигурации), все команды, добавленные через него, исчезнут.

Резюме решения

Для решения проблемы появления кнопок в РИБ необходимо последовательно исключить: рассинхрон метаданных (через сравнение .cf), влияние Функциональных опций, ограничения прав доступа (включая RLS) и пользовательские настройки интерфейса. Наиболее эффективным методом при идентичности конфигураций является сброс настроек формы в режиме предприятия и принудительная перерегистрация изменений конфигурации в главном узле.

← На главную