Почему в 1С:Управление торговлей 11 пропадает кнопка «Создать на основании» и как её вернуть?

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

Ситуация, когда после технических работ с сервером, клонирования диска или обновления платформы в интерфейсе пропадают привычные элементы управления, является довольно распространенной для систем на базе 1С:Предприятие 8.3. Особенно часто это касается документа ЧекККМ в конфигурации «Управление торговлей 11». Проблема осложняется тем, что кнопка может присутствовать у одного пользователя и отсутствовать у другого, или отображаться на локальной копии базы, но исчезать при работе через RDP. Разберем по шагам, как диагностировать и устранить эту неисправность.

Анализ влияния пользовательских настроек и кэша

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

Рассмотрим последовательность очистки:

  1. Очистка кэша платформы. Необходимо удалить базу из списка и добавить её заново или вручную очистить содержимое папок %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8. Это исключит влияние старых графических и конфигурационных данных.
  2. Сброс настроек формы. Откроем документ ЧекККМ, нажмем кнопку «Ещё» — «Изменить форму». В открывшемся окне выберем «Ещё» — «Установить стандартные настройки». Если кнопка была скрыта пользователем случайно, она вернется.
  3. Хранилище настроек данных. Перейдем в раздел «Администрирование» — «Настройки пользователей и прав» — «Очистка настроек». Выберем проблемного пользователя и удалим все настройки, связанные с документом ЧекККМ. Это критически важно, так как система может хранить некорректное состояние командной панели в базе данных.

Проверка прав доступа и ролей в условиях РИБ

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

Выясним причину через работу с профилями:

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

Также стоит проверить механизм RLS (Access Level Security). Если в базе включено ограничение доступа на уровне записей, команда создания на основании может исчезнуть, если у пользователя нет прав на просмотр или создание связанных документов в конкретном подразделении или по конкретной кассе ККМ.

Обновление вспомогательных данных и конфигурации

Если манипуляции с правами не помогли, проанализируем состояние метаданных. При переносе базы клонированием могут возникнуть ошибки в служебных таблицах. Для их исправления воспользуемся специализированными инструментами.

Разберем использование обработки ОбновлениеВспомогательныхДанных.epf. Эта обработка (входящая в состав дистрибутива конфигурации или БСП) обновляет внутренние справочники и константы, которые отвечают за построение интерфейса. В УТ 11 состав командной панели часто формируется динамически на основе данных в этих скрытых таблицах.

Посмотрим на программный аспект. В модуле формы документа ЧекККМ за отрисовку команд отвечает процедура ПриСозданииНаСервере. Если в системе произошел сбой функциональных опций, код может отработать некорректно. Проверьте следующие опции в разделе «НСИ и администрирование»:

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

Влияние подключаемого оборудования и рабочего места

Особенность документа ЧекККМ заключается в его тесной связи с торговым оборудованием. В УТ 11 логика программы может скрывать кнопку «Возврат», если система считает, что текущее рабочее место не настроено для проведения фискальных операций.

Выясним причину через настройки РМК:

  1. Проверьте, создано ли «Рабочее место» для данного сервера/компьютера в справочнике «Рабочие места».
  2. Проанализируйте настройки подключаемого оборудования. Если драйвер фискального регистратора не загружен или оборудование находится в состоянии ошибки, кнопки, инициирующие чековые операции, могут программно скрываться в процедуре УстановкаВидимостиДоступности.
  3. Поскольку на вашем личном компьютере кнопка видна, сравните настройки в справочнике «Кассы ККМ». Возможно, для кассы на сервере не указано, что она поддерживает фискальный режим.

Техническое обслуживание базы данных (ТиИ)

Поскольку проблема возникла после клонирования SSD, нельзя исключать физические повреждения логической структуры таблиц SQL или файловой базы .1CD. Проанализируем ситуацию с точки зрения целостности данных.

Выполним следующие шаги в Конфигураторе:

  1. Запустим «Администрирование» — «Тестирование и исправление».
  2. Обязательно выберем пункты:
    • Реиндексация таблиц (помогает, если индексы «поехали» после клонирования диска);
    • Проверка логической целостности;
    • Пересчет итогов.

Перед тестированием крайне рекомендуется запустить утилиту chdbfl.exe (находится в папке bin установленной платформы). Она проверяет целостность структуры файла базы данных на самом низком уровне, что критично после манипуляций с образами дисков.

Программная диагностика формы

Если кнопка так и не появилась, стоит заглянуть в код. Найдите процедуру, отвечающую за заполнение командной панели. Обычно это связано с объектом ГлобальныеКоманды или динамическим созданием кнопок на основании схемы метаданных.

Пример кода, который может влиять на видимость (типовая логика):


// В модуле формы или в общем модуле
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Проверка функциональной опции
    Если Не ПолучитьФункциональнуюОпцию("ИспользоватьВозвратыВРознице") Тогда
        Элементы.ФормаСоздатьНаОсновании.Видимость = Ложь;
    КонецЕсли;

    // Проверка статуса чека
    Если Объект.Статус <> Перечисления.СтатусыЧековККМ.Пробит Тогда
        // Команда создания возврата не имеет смысла для непробитого чека
        Элементы.ГруппаКомандыСоздатьНаОсновании.Доступность = Ложь;
    КонецЕсли;
    
КонецПроцедуры

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

← На главную