Как исправить ошибку «Запись не верна. Период не может быть пустым» при получении ТТН из ЕГАИС?

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

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

Выясним причину возникновения ошибки

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

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

Решение 1: Программное исправление в конфигураторе

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

Разберем по шагам процесс внесения изменений:

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

Пример кода, который необходимо модифицировать:


// В функции ДокументСоответствуетТипуЕГАИС(ТипДокумента)
// Находим блок проверки типов WayBill
Если ТипДокумента = "WayBill" 
    Или ТипДокумента = "WayBill_v2" 
    Или ТипДокумента = "WayBill_v3"
    // Добавляем новые типы, которые начал присылать УТМ:
    Или ТипДокумента = "WAYBILLACT_V1"
    Или ТипДокумента = "WAYBILLACT_V2"
    Или ТипДокумента = "WAYBILLACT_V3" Тогда
    Возврат Истина;
КонецЕсли;

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

Решение 2: Обходной путь без изменения конфигурации

Для пользователей базовых версий 1С или тех, кто не хочет снимать программу с поддержки, существует «хитрый» способ заставить систему принять документ. Рассмотрим алгоритм действий в режиме «1С:Предприятие»:

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

Этот метод помогает «протолкнуть» зависшие тикеты, так как логика проверки даты при обычном обмене и при проведении документа может отличаться в зависимости от релиза конфигурации.

Решение 3: Групповое изменение реквизитов (для продвинутых пользователей)

Если документов много и ручная отмена проведения не помогает, проанализируем ситуацию с точки зрения данных. Ошибка сообщает нам, что поле Период не заполнено. В документе ТТН ЕГАИС за дату движений отвечает скрытый реквизит ДатаРегистрацииДвижений.

Рассмотрим, как заполнить его принудительно:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных.
  2. Выберем обработку Групповое изменение реквизитов.
  3. Выберем тип объекта ТТН ЕГАИС входящая.
  4. В настройках (кнопка «Дополнительные параметры») включим отображение служебных реквизитов.
  5. Найдем в списке реквизит Дата регистрации движений.
  6. Установим значение, равное дате входящего документа (или дате тикета, если она известна). Важный нюанс: рекомендуется добавлять к дате документа несколько секунд (например, +2 секунды), чтобы избежать коллизий при записи в базу данных.
  7. Нажмем «Изменить реквизиты».

После того как реквизит ДатаРегистрацииДвижений перестанет быть пустым, система сможет успешно завершить транзакцию записи в регистры накопления.

Решение 4: Использование патчей и официальных обновлений

Поскольку данная проблема носит массовый характер и связана с изменениями на стороне ФСРАР, фирма «1С» оперативно выпускает исправления. Рассмотрим два варианта:

  1. Установка патча (исправления): Если ваша программа подключена к интернет-поддержке, перейдите в раздел Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи). Проверьте наличие патчей для вашей конфигурации (например, для Розницы 2.2 это был патч EF_00003887). Установите его, и перезагрузите сеанс.
  2. Обновление релиза: Это самый правильный путь. В новых релизах (например, Розница выше 2.2.9.20, УТ выше 11.4.5 и т.д.) логика работы с типами WAYBILLACT_V3 уже встроена в ядро системы.

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

Важно понимать, что ошибка «Период не может быть пустым» — это лишь следствие. Основная проблема — нарушение синхронизации форматов между 1С и ЕГАИС. Если вы используете временные решения (вроде ручного заполнения даты), обязательно запланируйте полноценное обновление системы, так как ФСРАР может продолжить изменять форматы XML-схем, вводя новые версии (v4, v5 и так далее). Мы настоятельно рекомендуем следить за новостями на официальных форумах и своевременно обновлять компоненты обмена (УТМ) и саму учетную систему.

← На главную