Ситуация, когда после технических работ с сервером, клонирования диска или обновления платформы в интерфейсе пропадают привычные элементы управления, является довольно распространенной для систем на базе 1С:Предприятие 8.3. Особенно часто это касается документа ЧекККМ в конфигурации «Управление торговлей 11». Проблема осложняется тем, что кнопка может присутствовать у одного пользователя и отсутствовать у другого, или отображаться на локальной копии базы, но исчезать при работе через RDP. Разберем по шагам, как диагностировать и устранить эту неисправность.
Первым делом проанализируем ситуацию с локальными данными. В 1С настройки формы (видимость кнопок, порядок колонок) сохраняются индивидуально для каждого пользователя. При клонировании системы или замене SSD пути к папкам кэша могут сохраниться, но сами индексы могут стать невалидными.
Рассмотрим последовательность очистки:
%AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8. Это исключит влияние старых графических и конфигурационных данных.ЧекККМ, нажмем кнопку «Ещё» — «Изменить форму». В открывшемся окне выберем «Ещё» — «Установить стандартные настройки». Если кнопка была скрыта пользователем случайно, она вернется.ЧекККМ. Это критически важно, так как система может хранить некорректное состояние командной панели в базе данных.В распределенных информационных базах (РИБ) часто возникает рассинхронизация прав доступа. Даже если у пользователя назначены «Полные права», конкретная команда «Создать на основании» может быть заблокирована из-за повреждения записей в таблицах прав доступа объекта-приемника (например, документа «Возврат товаров от клиента»).
Выясним причину через работу с профилями:
Попробуем создать нового тестового пользователя с аналогичными правами. Если у нового пользователя кнопка отображается, значит, проблема в конкретной ссылке на пользователя в базе. Рассмотрим интересный метод решения: дублирование разрешений. Добавим пользователю дополнительную группу доступа с теми же ролями, что уже есть. В некоторых случаях это инициирует принудительное обновление прав в системе и «проявляет» скрытые команды.
Также стоит проверить механизм RLS (Access Level Security). Если в базе включено ограничение доступа на уровне записей, команда создания на основании может исчезнуть, если у пользователя нет прав на просмотр или создание связанных документов в конкретном подразделении или по конкретной кассе ККМ.
Если манипуляции с правами не помогли, проанализируем состояние метаданных. При переносе базы клонированием могут возникнуть ошибки в служебных таблицах. Для их исправления воспользуемся специализированными инструментами.
Разберем использование обработки ОбновлениеВспомогательныхДанных.epf. Эта обработка (входящая в состав дистрибутива конфигурации или БСП) обновляет внутренние справочники и константы, которые отвечают за построение интерфейса. В УТ 11 состав командной панели часто формируется динамически на основе данных в этих скрытых таблицах.
Посмотрим на программный аспект. В модуле формы документа ЧекККМ за отрисовку команд отвечает процедура ПриСозданииНаСервере. Если в системе произошел сбой функциональных опций, код может отработать некорректно. Проверьте следующие опции в разделе «НСИ и администрирование»:
Попробуйте выключить опцию, сохранить настройки, а затем включить её снова. Это действие принудительно перезаписывает значения в константах и обновляет интерфейсные команды для всех форм.
Особенность документа ЧекККМ заключается в его тесной связи с торговым оборудованием. В УТ 11 логика программы может скрывать кнопку «Возврат», если система считает, что текущее рабочее место не настроено для проведения фискальных операций.
Выясним причину через настройки РМК:
УстановкаВидимостиДоступности.Поскольку проблема возникла после клонирования SSD, нельзя исключать физические повреждения логической структуры таблиц SQL или файловой базы .1CD. Проанализируем ситуацию с точки зрения целостности данных.
Выполним следующие шаги в Конфигураторе:
Перед тестированием крайне рекомендуется запустить утилиту chdbfl.exe (находится в папке bin установленной платформы). Она проверяет целостность структуры файла базы данных на самом низком уровне, что критично после манипуляций с образами дисков.
Если кнопка так и не появилась, стоит заглянуть в код. Найдите процедуру, отвечающую за заполнение командной панели. Обычно это связано с объектом ГлобальныеКоманды или динамическим созданием кнопок на основании схемы метаданных.
Пример кода, который может влиять на видимость (типовая логика):
// В модуле формы или в общем модуле
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверка функциональной опции
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьВозвратыВРознице") Тогда
Элементы.ФормаСоздатьНаОсновании.Видимость = Ложь;
КонецЕсли;
// Проверка статуса чека
Если Объект.Статус <> Перечисления.СтатусыЧековККМ.Пробит Тогда
// Команда создания возврата не имеет смысла для непробитого чека
Элементы.ГруппаКомандыСоздатьНаОсновании.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
Проанализируйте состояние реквизита Статус у проблемного чека. Если из-за ошибки синхронизации РИБ статус документа отличается от того, который ожидает система для разрешения возврата, кнопка пропадет автоматически. Сравните значения всех реквизитов документа в «битой» базе и в той, где кнопка отображается, используя консоль запросов или обработку «Редактирование реквизитов объектов».