После обновления конфигурации «1С:Управление торговлей 10.3» разработчики и администраторы часто сталкиваются с ситуацией, когда в конфигураторе на форме документов (например, ЧекККМ или ПриходныйКассовыйОрдер) присутствуют элементы для ввода контактных данных клиента (Email, телефон), однако в режиме «1С:Предприятие» эти поля на форме полностью отсутствуют. Разберем по шагам, почему возникает такое поведение платформы и как настроить видимость реквизитов.
В отличие от управляемого интерфейса, где за отображение реквизитов отвечают функциональные опции платформы, в обычных формах (толстый клиент) управление доступностью и видимостью элементов осуществляется программным кодом при инициализации и обновлении данных окна. Если реквизит выведен на форму в конфигураторе, но не отображается в пользовательском сеансе, это означает, что отработал программный алгоритм, скрывающий элемент по определенному логическому условию.
Проанализируем основные факторы, влияющие на программное скрытие полей отправки чеков:
Самая распространенная причина кроется в настройках учетной политики конфигурации. Если в базе отключена опция работы с электронными чеками, система автоматически скрывает соответствующие элементы формы при открытии документов, чтобы не перегружать интерфейс кассира лишними полями.
Выполним следующую последовательность действий в режиме «1С:Предприятие»:
ЧекККМ или ПриходныйКассовыйОрдер) и проверим появление необходимых полей.Если константа включена, но поля по-прежнему не выводятся, проверим параметры подключаемого оборудования. В типовых алгоритмах УТ 10.3 видимость реквизитов напрямую зависит от того, подключена ли онлайн-касса с передачей данных.
Разберем, на что следует обратить внимание:
Когда требуется точно выяснить, в какой момент форма скрывает элементы, используем отладчик в конфигураторе. Проанализируем события модуля формы документа.
Управление видимостью элементов на обычных формах сосредоточено в следующих процедурах:
ПриОткрытии модуля формы документа.ОбновлениеОтображения — вызывается платформой при изменении контекста формы.ОбновитьСостояниеФормы или вызовы общих модулей подсистемы подключаемого оборудования).Посмотрим на типовой фрагмент кода, управляющий отображением реквизитов отправки чека:
Процедура ОбновитьВидимостьЭлектронногоЧека()
// Проверяем значение константы и параметры торгового оборудования
ИспользоватьЭлектронныеЧеки = Константы.ОтправлятьЭлектронныеЧекиПокупателю.Получить();
КассаОнлайн = КассаККМ.ФормироватьЭлектронныеЧеки;
ВидимостьПолей = ИспользоватьЭлектронныеЧеки И КассаОнлайн;
ЭлементыФормы.ЭлектроннаяПочтаПокупателя.Видимость = ВидимостьПолей;
ЭлементыФормы.ТелефонПокупателя.Видимость = ВидимостьПолей;
ЭлементыФормы.НадписьЭлектроннаяПочта.Видимость = ВидимостьПолей;
КонецПроцедуры
Установим точку останова в процедуре ПриОткрытии и пошагово пройдем выполнение алгоритма с помощью клавиши F10, чтобы определить, какое именно логическое выражение возвращает Ложь.
В обычных формах координаты и видимость элементов могут сохраняться в системных таблицах информационной базы для каждого отдельного пользователя. Если форма ранее открывалась с другими настройками, старое состояние могло закешироваться.
Для сброса выполним следующие действия: