Как исправить ошибку несопоставленной номенклатуры и отсутствие Справки 2 во входящей ТТН ЕГАИС

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

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

Почему возникает проблема сопоставления

Проанализируем ситуацию: входящая ТТН — это электронный документ, который приходит из системы ЕГАИС через УТМ (Универсальный транспортный модуль). В этом документе содержатся данные от поставщика: наименование продукции, алкокод, количество и идентификаторы справок. Если 1С не может автоматически сопоставить позицию, это означает, что связь между Классификатором алкогольной продукции ЕГАИС и справочником Номенклатура не установлена или данные в ТТН повреждены.

Рассмотрим подробнее основные причины:

  1. Отсутствие связи в регистре сведений: В базе еще не задано соответствие конкретного алкокода вашей внутренней карточке товара.
  2. Ошибки загрузки XML: ТТН была загружена не полностью из-за сбоя связи с УТМ, и табличная часть "Справки 2" осталась пустой.
  3. Дублирование алкокодов: В справочнике алкогольной продукции ЕГАИС есть несколько записей с одинаковым кодом, но разными внутренними идентификаторами.

Разбор ошибки со Справкой 2 и Регистром №1

Часто программисты пытаются найти причину в отсутствии остатков в Регистре №1 (складской регистр ЕГАИС). Важно понимать: для входящей ТТН остатков в Регистре №1 у вас быть и не должно. Продукция зафиксируется на вашем балансе только после подтверждения ТТН (отправки акта подтверждения). Справка 2 должна подтянуться из входящего XML-пакета поставщика, а не из ваших текущих остатков.

Выясним причину, почему справка не видна: если при открытии формы сопоставления список справок пуст, это означает, что документ не содержит ссылки на идентификатор справки, переданный поставщиком. Программная правка реквизитов в этом случае — крайняя и опасная мера.

Метод 1: Стандартное сопоставление через НСИ

Прежде чем использовать программные методы, проанализируем стандартный путь решения проблемы. Пройдем по шагам:

  1. Перейдем в раздел Склад — Сопоставление номенклатуры ЕГАИС.
  2. Найдем нашу ТТН. В левой колонке будет отображаться алкогольная продукция по данным ЕГАИС, в правой — ваша номенклатура.
  3. Если в правой колонке пусто, нажмем кнопку Сопоставить.
  4. Если нужной номенклатуры нет в списке, необходимо проверить карточку товара. Убедимся, что у товара установлен вид номенклатуры с типом Алкогольная продукция.

Метод 2: Запрос данных из ЕГАИС

Если классификатор алкогольной продукции пуст или данные по справкам не отображаются, попробуем обновить информацию напрямую из системы ЕГАИС. Рассмотрим, как это сделать:

  1. Скопируем Алкокод проблемной продукции из ТТН.
  2. Перейдем в раздел Запросы ЕГАИС и создадим новый документ Запрос алкогольной продукции.
  3. Вставим алкокод и отправим запрос в УТМ.
  4. После получения ответа (статус "Получены данные") вернемся в ТТН и попробуем снова выполнить сопоставление.

Метод 3: Принудительное заполнение реквизитов (для программистов)

Как отмечалось в обсуждении, иногда пользователи прибегают к использованию внешних обработок для редактирования реквизитов табличной части. Посмотрим на пример логики, которая может использоваться для программного заполнения (используйте этот метод с осторожностью):


// Пример логики заполнения сопоставления в ТТН
Процедура ИсправитьСопоставление(ДокументОбъект)
    Для Каждого СтрокаТЧ Из ДокументОбъект.Товары Цикл
        Если НЕ ЗначениеЗаполнено(СтрокаТЧ.Номенклатура) Тогда
            // Поиск соответствия в регистре
            Запрос = Новый Запрос;
            Запрос.Текст = 
            "ВЫБРАТЬ
            |	СоответствиеНоменклатурыЕГАИС.Номенклатура
            |ИЗ
            |	РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК СоответствиеНоменклатурыЕГАИС
            |ГДЕ
            |	СоответствиеНоменклатурыЕГАИС.АлкогольнаяПродукция = &АлкогольнаяПродукция";
            
            Запрос.УстановитьПараметр("АлкогольнаяПродукция", СтрокаТЧ.АлкогольнаяПродукцияЕГАИС);
            Результат = Запрос.Выполнить();
            
            Если НЕ Результат.Пустой() Тогда
                Выборка = Результат.Выбрать();
                Выборка.Следующий();
                СтрокаТЧ.Номенклатура = Выборка.Номенклатура;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    ДокументОбъект.Записать();
КонецПроцедуры

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

Рекомендуемый способ при программных сбоях

Если стандартные методы сопоставления не помогают и данные о справках не появляются, самым надежным способом будет перезагрузка ТТН:

  1. Пометим текущую ТТН на удаление и удалим её из базы (непосредственное удаление объекта).
  2. Перейдем в личный кабинет ФСРАР или воспользуемся обработкой запроса ТТН по номеру (WayBillRegID).
  3. Запросим ТТН повторно. При повторной загрузке 1С заново сформирует связи, и, если данные в ЕГАИС корректны, Справки 2 подтянутся автоматически.

Таким образом, мы проанализировали ситуацию, выяснили, что отсутствие остатков в Регистре №1 не является ошибкой для входящего документа, и определили, что наиболее безопасным методом решения является запрос классификаторов или повторная загрузка ТТН, а не "силовое" редактирование реквизитов.

← На главную