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

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

При работе с алкогольной продукцией в системе ЕГАИС пользователи часто сталкиваются с ситуацией, когда на Регистре 1 (Склад) товар числится в плюсе, а на Регистре 2 (Торговый зал) по этой же позиции образуется минус. Особенно остро эта проблема встала после перехода на поштучный (помарочный) учет версии 3.0. В данной статье мы подробно разберем причины возникновения таких расхождений и проанализируем проверенные способы их устранения.

Почему возникают отрицательные остатки в Торговом зале

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

Выясним основную причину: если у вас возник минус по второму регистру при продаже помарочного товара, значит, система ошибочно идентифицировала его как партионный или в базе произошла «каша» из остатков. Помарочный товар физически не может находиться на втором регистре, и любые минусы там свидетельствуют о некорректном перемещении или настройках списания.

Способ 1. Выравнивание остатков методом «от обратного»

Рассмотрим практический опыт коллег. Одной из главных трудностей является то, что в текущем интерфейсе остатков Регистра 1 не всегда наглядно видно, какая продукция является помарочной, а какая — партионной (старые запасы). Запрашивать информацию по каждой справке F2 долго из-за ограничений ЕГАИС на частоту запросов.

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

  1. Создаем документ Передача в торговый зал (перемещение с Р1 на Р2).
  2. Заполняем его всеми остатками, которые числятся на Регистре 1.
  3. Отправляем документ в ЕГАИС.
  4. Получаем ответ от системы. ЕГАИС вернет ошибку (тикетов с отказом), в тексте которой будут перечислены все справки F2, по которым продукция является помарочной. Система прямо укажет, что перемещение помарочной продукции запрещено.
  5. Проанализируем полученную ошибку. Нам необходимо исключить из документа те строки, которые попали в список запрещенных.
  6. Повторно отправляем документ только с партионной продукцией.

После проведения этого документа партионный товар переместится на второй регистр и автоматически перекроет отрицательные остатки. На первом регистре останется только «чистая» помарочная продукция, которая будет списываться корректно по маркам.

Пример программной реализации обработки ошибок

Для автоматизации процесса можно написать небольшую обработку, которая будет парсить строку ошибки из тикета ЕГАИС. Посмотрим на пример логики, которую можно реализовать в коде 1С:


// Фрагмент кода для обработки текста ошибки ЕГАИС
ТекстОшибки = Объект.ТекстОшибкиЕГАИС; // Получаем текст из тикета
СписокСправокДляУдаления = Новый СписокЗначений;

// Обычно номера справок в ошибке перечислены через запятую или в кавычках
// Реализуем поиск номеров вида FB-00000000000123
Позиция = Найти(ТекстОшибки, "FB-");
Пока Позиция > 0 Цикл
    НомерСправки = Сред(ТекстОшибки, Позиция, 20); // Извлекаем номер справки
    СписокСправокДляУдаления.Добавить(НомерСправки);
    ТекстОшибки = Сред(ТекстОшибки, Позиция + 20);
    Позиция = Найти(ТекстОшибки, "FB-");
КонецЦикла;

// Удаляем строки из документа перемещения
Индекс = Объект.Товары.Количество() - 1;
Пока Индекс >= 0 Цикл
    СтрокаТовара = Объект.Товары[Индекс];
    Если СписокСправокДляУдаления.НайтиПоЗначению(СтрокаТовара.Справка2) <> Неопределено Тогда
        Объект.Товары.Удалить(Индекс);
    КонецЕсли;
    Индекс = Индекс - 1;
КонецЦикла;

Способ 2. Использование признака поштучного учета в справках

Проанализируем еще один вариант. В последних версиях формата обмена ЕГАИС информация о типе продукции (поштучная или партионная) содержится в данных Справки 2. Если ваша конфигурация 1С поддерживает хранение этих признаков, можно настроить фильтр в документе перемещения еще до отправки данных.

Однако стоит помнить, что если данные в базе устарели, лучше воспользоваться Запросом остатков и последующим Запросом информации по Справке 2. Помните о лимитах: один запрос к F2 раз в 10 минут. Это делает способ менее эффективным при больших объемах номенклатуры по сравнению с методом отправки полного списка и анализа ошибок.

Настройка 1С для предотвращения будущих минусов

Чтобы ситуация с отрицательными остатками не повторялась, проверим настройки системы 1С:Розница:

Работа с пивом и слабоалкогольной продукцией

Важно помнить, что для пива и пивных напитков ситуация иная. Пиво пока остается партионным товаром и его перемещение в Торговый зал (Регистр 2) является нормальной практикой. Если у вас возникают минусы по пиву, достаточно оформить документ Передача в торговый зал на недостающее количество. Для пива в кегах с 2024 года введена обязательная постановка на кран, что также требует списания с первого регистра, поэтому рекомендуем следить за актуальностью релизов вашей конфигурации.

Подводя итог, отметим: появление минусов на втором регистре по крепкому алкоголю — это «симптом» того, что в базе остались хвосты старых партий, которые программа пытается списать по старым правилам. Своевременное перемещение всех партионных остатков в торговый зал и актуализация настроек поштучного учета полностью решают эту проблему.

← На главную