При обновлении конфигурации 1С:Розница с версии 2.2 на 2.3 многие технические специалисты сталкиваются с критическими ошибками при попытке использовать привычные расширения, в частности модуль лояльности UDS Game. Это связано с тем, что в версии 2.3 фирма «1С» кардинально пересмотрела архитектуру метаданных для соответствия требованиям 54-ФЗ и подсистеме маркировки товаров. Разберем подробно, почему возникают эти ошибки и как привести интеграцию в рабочее состояние.
Типичный перечень ошибок при попытке подключить старое расширение (например, версии 1.2.3.cfe) выглядит следующим образом:
Документ.ЧекККМ.ТабличнаяЧасть.Оплата.Реквизит.ДоговорПлатежногоАгента.РежимСовместимости не совпадает.СистемыНалогообложения и ОбъектыНалогообложенияПоУСН.Давайте проанализируем ситуацию: в версии 2.3 объекты, связанные с платежными агентами и налогами, были вынесены из конкретных документов в общие справочники и регистры. Это было сделано для поддержки возможности печати в одном чеке товаров с разными системами налогообложения. Если расширение обращается к этим реквизитам напрямую «по старым адресам», система 1С блокирует его работу.
Первое, что необходимо сделать — устранить конфликт свойства РежимСовместимости. Если основная конфигурация обновлена до версии 2.3.3.х, она обычно требует режим совместимости 8.3.14 или выше. Расширение, написанное под 2.2, скорее всего, имеет режим 8.3.12.
Рассмотрим порядок действий:
Режим совместимости и установите в нем значение «Использовать режим совместимости основной конфигурации» или выберите ту же версию, которая указана в свойствах корня основной конфигурации.Поскольку реквизиты типа ДоговорПлатежногоАгента и СистемыНалогообложения в версии 2.3 изменили свое местоположение, нам нужно перенаправить вызовы в коде расширения. Если вы используете старый модуль, наиболее стабильным решением будет «впилить» (интегрировать) код напрямую в конфигурацию, как советуют опытные разработчики. Это позволяет избежать конфликтов расширения с динамически меняющимися именами объектов.
Проанализируем ситуацию с маркировкой. При работе с обувью, одеждой или табаком в документе Чек ККМ критически важно, чтобы скидка UDS распределялась корректно по строкам, не нарушая целостность кодов маркировки. Проверьте обработчики в модуле менеджера или модуля формы документа ЧекККМ.
Если расширение вызывает слишком много ошибок, целесообразно перейти на работу через UDS REST API. Это более надежный путь, так как он меньше зависит от изменений внутренней структуры 1С. Для этого в 1С создается отдельная обработка или общий модуль.
Рассмотрим пример кода для инициализации HTTP-соединения с сервером UDS:
Функция ПолучитьСоединениеUDS()
Сервер = "api.uds.app";
Токен = "Ваш_API_Key";
ID_Компании = "Ваш_ID";
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Basic " + Base64Строка(Токен + ":" + ID_Компании));
Заголовки.Вставить("Content-Type", "application/json");
Соединение = Новый HTTPСоединение(Сервер, 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL());
Возврат Соединение;
КонецФункции
С помощью такого подхода мы можем запрашивать данные о клиенте по коду из мобильного приложения, не опираясь на удаленные реквизиты ЧекККМ.
В новых версиях 1С:Розница 2.3 расчет налогов происходит через общие модули. Если ваше расширение UDS пытается подставить систему налогообложения напрямую, это вызовет ошибку. Выясним причину: теперь система налогообложения берется из организации или определяется в момент фискализации чека.
Рекомендуется найти в коде расширения фрагменты, обращающиеся к Перечисление.СистемыНалогообложения, и заменить их на вызовы актуальных функций конфигурации. Например, вместо прямой записи в реквизит чека, следует использовать механизмы подсистемы ИнтеграцияБПО (Библиотека подключаемого оборудования).
Поскольку автор исходного вопроса обновлял конфигурацию именно ради маркировки обуви, важно учитывать следующее: скидка по UDS должна распределяться до момента передачи данных в ККТ. В версии 2.3 механизм распределения скидок работает иначе, чем в 2.2. Убедитесь, что сумма скидки бонусами UDS корректно уменьшает цену каждой позиции (пропорционально), иначе фискальный накопитель выдаст ошибку расхождения итогов при наличии маркированного товара.
Если вы столкнулись с невозможностью запуска официального расширения UDS Game в Рознице 2.3.3.12, у вас есть три пути:
РежимСовместимости и удалите ссылки на несуществующие реквизиты платежных агентов в расширении.Помните, что при работе с расширениями в 1С 8.3 крайне важно следить за тем, чтобы все заимствованные объекты (документы, справочники) были актуальными. Если объект в основной конфигурации изменился, его нужно «обновить» в расширении (удалить и заимствовать заново), чтобы восстановить связь метаданных.