Как узнать, на что поменяли константу ВыгружатьПродажиНемаркируемойПродукцииВЕГАИС в новой версии 1С:Розница 2.3

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

При переходе со старых редакций конфигурации 1С:Розница 2.2 на актуальные релизы 1С:Розница 2.3 разработчики и администраторы часто сталкиваются с тем, что привычные объекты метаданных бесследно исчезают. Особенно критично это становится в тех случаях, когда в базе используются сторонние расширения или кастомные доработки. Одной из таких «пропавших» констант стала ВыгружатьПродажиНемаркируемойПродукцииВЕГАИС. При попытке запустить расширение, использующее эту константу, система выдает критическую ошибку компиляции, и работа пользователей останавливается.

В этой статье мы подробно разберем, почему разработчики фирмы 1С приняли решение отказаться от этой константы, выясним, какими механизмами она была заменена в редакции 2.3, и пошагово рассмотрим, как адаптировать ваше расширение для корректной работы в новой архитектуре.

Выясняем причину: глобальное изменение архитектуры ЕГАИС

Для начала проанализируем, почему конфигурация претерпела столь серьезные изменения. В старой редакции 1С:Розница 2.2 механизмы взаимодействия с государственными системами (в частности, с ЕГАИС) писались непосредственно внутри самой конфигурации. Каждая настройка обмена зачастую хранилась в виде отдельной уникальной константы, привязанной к метаданным конфигурации.

Начиная с редакции 2.3, фирма 1С перевела Розницу на унифицированную библиотеку интеграции — БЭД (Библиотека электронного документооборота) и подсистему ГосИС (Государственные информационные системы). Точно такие же библиотеки сейчас используются во всех современных конфигурациях: 1С:Управление торговлей 11, 1С:ERP, 1С:Комплексная автоматизация и 1С:УНФ.

В рамках этой глобальной унификации разработчики полностью отказались от старых локальных констант. Константа ВыгружатьПродажиНемаркируемойПродукцииВЕГАИС была признана устаревшей и полностью удалена из структуры метаданных. Именно поэтому ваше расширение больше не может к ней обратиться.

Где теперь искать настройку выгрузки немаркируемой продукции?

Рассмотрим, куда переместилась логика управления выгрузкой слабоалкогольной и пивной (немаркируемой) продукции при закрытии кассовой смены:

  1. В пользовательском интерфейсе: Раньше этот флажок находился в разделе администрирования настроек номенклатуры и учета алкоголя. В новых релизах 1С:Розница 2.3 перейдем по пути: Настройки -> Интеграция с ЕГАИС. Все опции обмена теперь сгруппированы в едином стандартном окне настроек БЭД.
  2. В базе данных (в коде): Настройка больше не хранится в одиночной константе. Поскольку в новых версиях поддерживается многофирменный учет и различные параметры обмена для разных организаций, эта опция была перенесена в специализированные регистры сведений настроек интеграции (например, РегистрСведений.НастройкиОбменаОбменСЕГАИС или общие параметры настроек ГосИС).

Стоит отметить важный нюанс: в релизе 1С:Розница 2.3.4.33 была зарегистрирована официальная ошибка (баг под номером 00-00305175). Из-за этой ошибки флажок отключения выгрузки немаркируемой продукции мог временно пропадать из пользовательского интерфейса, вынуждая систему принудительно отправлять акты списания даже тогда, когда это не требовалось. В последующих релизах (начиная с ветки 2.3.5) эту проблему успешно исправили.

Варианты исправления кода в расширении

Посмотрим на практические примеры того, как можно восстановить работоспособность расширения. Выбор метода зависит от того, насколько глубоко ваше расширение завязано на логику работы с ЕГАИС.

Вариант 1. Быстрое решение (если автосписание не требуется или всегда включено)

Если ваше расширение выполняло вспомогательные функции, а сама опция отправки немаркируемой продукции вам либо вообще не нужна (вы списания делаете вручную), либо, наоборот, должна быть активна всегда, мы можем просто уйти от динамического опроса константы.

Допустим, в коде расширения (например, при закрытии смены) была следующая конструкция:


// Код в Рознице 2.2
Если Константы.ВыгружатьПродажиНемаркируемойПродукцииВЕГАИС.Получить() Тогда
    // Выполнялась определенная логика расширения
    ПровестиВыгрузкуДанныхВЕГАИС();
КонецЕсли;

Поскольку в 1С:Розница 2.3 этой константы больше нет, мы можем закомментировать обращение к ней и жестко прописать булево значение (Истина или Ложь) напрямую:


// Измененный код в расширении для Розницы 2.3
// Константа удалена, прописываем логику жестко:
ВыгружатьПродажи = Ложь; // Или Истина, если выгрузка нужна всегда

Если ВыгружатьПродажи Тогда
    ПровестиВыгрузкуДанныхВЕГАИС();
КонецЕсли;

Такой подход не вызовет никаких негативных последствий для типовой конфигурации, поскольку сама типовая Розница 2.3 к этой константе больше не обращается и имеет собственные механизмы контроля.

Вариант 2. Правильное решение (адаптация под механизмы БЭД/ГосИС)

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

Проанализируем новые механизмы. Вместо обращения к константе нам необходимо вызывать функции общих модулей интеграции ЕГАИС. Для этого используем новые методы из общего модуля ИнтеграцияЕГАИС или ИнтеграцияЕГАИСПереопределяемый.

Пример обращения к настройкам обмена в новых релизах будет выглядеть следующим образом:


// Получаем настройки интеграции с ЕГАИС через новые механизмы БЭД
ПараметрыИнтеграции = ИнтеграцияЕГАИС.ПараметрыРаботыКлиентаПриЗапуске();
// Проверяем статус использования интеграции
Если ПараметрыИнтеграции.ИспользоватьИнтеграциюСЕГАИС Тогда
    // Находим параметры конкретной организации или используем общие методы БЭД
    ВыгружатьПродажи = ИнтеграцияЕГАИС.ПолучитьНастройкуВыгрузкиПродажНемаркируемойПродукции();
    Если ВыгружатьПродажи Тогда
        ПровестиВыгрузкуДанныхВЕГАИС();
    КонецЕсли;
КонецЕсли;

Обратите внимание, что точные имена функций могут незначительно меняться в зависимости от конкретной версии БСП и БЭД, встроенных в ваш релиз 1С:Розница 2.3. Рекомендуется воспользоваться глобальным поиском по конфигурации по ключевым словам «Немаркируем» или «ВыгружатьПродажи» внутри общих модулей группы ИнтеграцияЕГАИС, чтобы найти точные имена экспортных функций для вашего релиза.

Рекомендации по обновлению расширений

Переход с редакции 2.2 на 2.3 — это не просто рядовое обновление, а серьезная смена платформенных библиотек. Чтобы избежать сбоев при последующих обновлениях, придерживайтесь следующих правил:

Таким образом, мы выяснили, что пропавшая константа была упразднена разработчиками 1С ради стандартизации кода. Следуя нашим инструкциям, вы сможете быстро скорректировать работу ваших расширений и успешно запустить Розницу 2.3 в эксплуатацию.

← На главную