Почему в книге покупок 1С:КА 2.4 не отображаются номера ГТД и как это исправить?

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

При работе в конфигурации 1С:Комплексная автоматизация 2.4 (или аналогичных решениях ERP 2.4/2.5) пользователи часто сталкиваются с неприятной ситуацией: в регламентированном отчете «Книга покупок» в 13-й колонке не выводятся номера ГТД. При этом в документах Приобретение товаров и услуг все данные заполнены корректно, а в самой книге номера могут выводиться выборочно — например, 3 из 5 позиций или 10 из 13. Проанализируем причины этой проблемы и разберем по шагам методы её решения.

Выясняем техническую причину ошибки

Основная причина кроется в изменении архитектуры хранения данных в справочнике НомераГТД, которое произошло в последних релизах веток 2.4 и 2.5. Рассмотрим подробнее, что изменилось. Раньше номер таможенной декларации хранился непосредственно в стандартном поле Код. Однако в связи с внедрением системы прослеживаемости товаров (РНПТ) компания 1С добавила новый реквизит — Регистрационный номер.

Алгоритм формирования Книги покупок в новых релизах был переписан: теперь программа обращается именно к этому новому реквизиту РегистрационныйНомер, а не к полю Код. Если ваша база данных обновлялась с более старых версий или данные переносились из других программ, этот реквизит может оказаться пустым, хотя визуально в карточке ГТД номер виден (так как отображается код). Если поле Регистрационный номер пустое, то и 13-я колонка Книги покупок остается незаполненной.

Способ 1: Ручное исправление (для единичных случаев)

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

  1. Перейдем в справочник Номера ГТД.
  2. Откроем карточку проблемного номера.
  3. Внесем любое изменение (например, удалим и заново вставим последний символ в номере).
  4. Нажмем «Записать и закрыть».

При записи элемента срабатывают внутренние обработчики 1С, которые автоматически копируют данные из Кода в скрытый реквизит Регистрационный номер. После этого переформируем Книгу покупок — номер должен появиться.

Способ 2: Использование группового изменения реквизитов

Если записей сотни или тысячи, ручная правка нецелесообразна. Рассмотрим, как воспользоваться штатным инструментом Групповое изменение реквизитов:

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

Способ 3: Программное заполнение номеров ГТД

Для программистов и системных администраторов наиболее надежным решением будет использование внешней обработки. Разберем пример кода, который обходит документы приобретения и реализации за определенный период и восстанавливает корректные значения в справочнике НомераГТД.

Выясним причину использования именно такого подхода: код проверяет наличие пустых регистрационных номеров и заполняет их на основе данных из поля Код, учитывая специфику прослеживаемых товаров (РНПТ).


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

Дополнительные проверки: регистры и виды запасов

Если исправление справочника не помогло, проанализируем ситуацию глубже. Книга покупок в 1С:КА 2.4 строится на основании данных регистра накопления НДС Покупки. В этот регистр данные попадают в момент проведения документов приобретения.

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

Проверим следующие настройки:

  1. Карточка номенклатуры: в разделе «Регламентированный и финансовый учет» должен быть установлен флаг Учет по номерам ГТД.
  2. Виды запасов: откройте документ приобретения, нажмите «Еще» — Открыть виды запасов. Убедитесь, что колонка с номером ГТД заполнена именно в этой технической таблице. Если она пуста, потребуется перепроведение документа после исправления карточки номенклатуры или настроек политики учета.
  3. Отрицательные остатки: проверьте, не разрешены ли в системе отрицательные остатки по организациям. При наличии «минусов» по ГТД система может подбирать пустые номера в реализациях или передачах между организациями (Интеркампани), что также приведет к пустотам в отчетности.

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

← На главную