При работе в конфигурации 1С:Управление производственным предприятием (УПП) редакции 1.3 пользователи часто сталкиваются с техническими сложностями при попытке пробить чек коррекции или создать новый документ ЧекККМ. Одной из наиболее острых проблем является критическая ошибка при открытии формы: {Документ.ЧекККМ.Форма.ФормаДокумента.Форма(1520)}: Тип не определен (ФормаКлиентскогоПриложения). В данной статье мы подробно разберем, почему возникает эта ситуация, и рассмотрим пошаговые алгоритмы её решения.
Проанализируем программный контекст. Конфигурация УПП 1.3 является «классическим» решением, построенным на технологии обычного приложения. Однако в последние годы фирма «1С» активно внедряет в УПП фрагменты кода и механизмы, предназначенные для работы с онлайн-кассами (ККТ), которые заимствуются из современных конфигураций на управляемых формах (таких как ERP 2 или УТ 11).
Выясним причину сбоя: ошибка в строке 1520 модуля формы документа ЧекККМ происходит из-за обращения к типу ФормаКлиентскогоПриложения. Этот тип данных существует исключительно в контексте управляемого приложения. Когда платформа 1С:Предприятие запускает базу в режиме обычного приложения, она «не знает» о существовании этого типа, что и приводит к аварийной остановке выполнения кода. Это типичная ситуация «смешивания» контекстов, когда код, написанный для одного интерфейса, попадает в другой без надлежащей проверки.
Если нам необходимо оперативно восстановить работоспособность системы без глобального изменения настроек платформы, рассмотрим вариант внесения правок в модуль формы документа. Нам нужно добавить проверку типа приложения, чтобы исключить выполнение проблемного участка кода в обычном клиенте.
Разберем по шагам процесс исправления:
ЧекККМ.ФормаКлиентскогоПриложения).#Если УправляемоеПриложение Тогда.Посмотрим на пример правильного оформления кода:
#Если УправляемоеПриложение Тогда
Если ТипЗнч(ВладелецФормы) = Тип("ФормаКлиентскогоПриложения") Тогда
// Выполнение действий для управляемой формы
КонецЕсли;
#Иначе
// Логика для обычного приложения, где этот тип не проверяется
#КонецЕсли;
Такой подход позволяет избежать попытки обращения к неопределенному типу данных в режиме обычного клиента, сохраняя при этом совместимость кода для разных режимов работы.
Зачастую проблема кроется в том, что конфигурация «застряла» на старом режиме совместимости, в то время как код требует более современных возможностей платформы. Проанализируем ситуацию: если в базе установлен Режим совместимости 8.2.13, многие механизмы платформы 8.3 будут работать в ограниченном режиме или выдавать ошибки.
Для корректной работы с современным торговым оборудованием и формирования чеков коррекции по актуальным правилам, выполним следующие действия:
Важно помнить, что нельзя выставить режим совместимости выше, чем версия установленной и запущенной платформы 1С. Если ваша платформа — 8.3.11, то режим совместимости 8.3.14 будет недоступен.
Рассмотрим ситуацию, когда на компьютере установлено несколько версий платформы (например, 8.3.11 и 8.3.14), но база упорно открывается в старой версии. Это напрямую влияет на доступность объектов метаданных и типов данных.
Выясним, как заставить базу открываться на нужной нам версии:
8.3.14.2095.Проверим также файл 1CEStart.cfg, расположенный в папках профиля пользователя. Иногда там прописаны параметры DefaultVersion, которые игнорируют новые установленные версии в пользу старых.
Проанализируем процедуру пробития чека коррекции после устранения программной ошибки. В современных реалиях (ФФД 1.1 и 1.2) чек коррекции перестал быть просто «исправительным» документом.
При оформлении коррекции в УПП обратим внимание на следующие реквизиты:
Использование Объекта драйвера ККТ в УПП 1.3 требует актуальных внешних компонент. Если после правки кода Тип не определен ошибка сохраняется, убедитесь, что в справочнике «Подключаемое оборудование» загружена последняя версия драйвера от производителя кассы, которая поддерживает работу в режиме обычного приложения.
Таким образом, решив проблему с контекстом исполнения кода и настроив правильную версию платформы, мы обеспечиваем стабильную работу торгового оборудования в такой сложной и заслуженной конфигурации, как 1С:УПП 1.3.