Как перенести номера ГТД в документах реализации в 1С:Управление торговлей 11?

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

При переносе документов реализации товаров между информационными базами (например, из одной базы 1С:Управление торговлей 11 в другую или при выгрузке в 1С:Бухгалтерию предприятия 3.0) разработчики часто сталкиваются с ситуацией, когда табличная часть Товары переносится успешно, но номера ГТД и страны происхождения пропадают. Выясним причину такого поведения системы, разберем архитектуру хранения импортных данных в УТ 11 и рассмотрим практические способы переноса данных.

Особенности архитектуры хранения ГТД в УТ 11

В типовых конфигурациях на базе УТ 11 (включая КА 2 и ERP) номер ГТД не хранится непосредственно в табличной части Товары документа РеализацияТоваровУслуг. Разберем по шагам, как устроена эта схема:

  1. В видимой пользователю табличной части Товары указывается только номенклатура, характеристика, количество и цена.
  2. При проведении документа система рассчитывает партии списания по ФИФО и заполняет скрытую системную табличную часть ВидыЗапасов.
  3. Именно в табличной части ВидыЗапасов каждой строке проданного товара сопоставляется конкретный разрез учета: организация-владелец, вид запасов, страна происхождения и НомерГТД.
  4. На основании строк ТЧ ВидыЗапасов формируются движения по регистру накопления ТоварыОрганизаций.

Именно поэтому стандартная выгрузка реквизитов только видимой табличной части не дает ожидаемого результата: на форме номера ГТД отсутствуют, а чтобы проверить их фактическое наличие в документе после загрузки, требуется обратиться напрямую к базе через консоль запросов.

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


ВЫБРАТЬ
    РеализацияТоваровУслугВидыЗапасов.Ссылка КАК Ссылка,
    РеализацияТоваровУслугВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
    РеализацияТоваровУслугВидыЗапасов.НомерГТД КАК НомерГТД
ИЗ
    Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК РеализацияТоваровУслугВидыЗапасов
ГДЕ
    РеализацияТоваровУслугВидыЗапасов.Ссылка = &ТекущийДокумент

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

Способ 1. Перенос между одинаковыми базами (УТ 11 — УТ 11) универсальной выгрузкой

Если задача заключается в переносе документов между двумя одинаковыми конфигурациями УТ 11, то универсальная обработка выгрузки и загрузки данных XML способна перенести документ целиком вместе с его подчиненными табличными частями. Однако здесь важно учитывать поведение системы при проведении:

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

Способ 2. Выгрузка в конфигурации с явным указанием ГТД (Конвертация данных 2.0 / 3.0)

В конфигурациях вроде Бухгалтерия предприятия 3.0 номер ГТД и страна привязаны непосредственно к каждой строке товарной части. При этом в УТ 11 одна строка товара может списываться с нескольких разных номеров ГТД. В этом случае при выгрузке исходную строку ТЧ Товары необходимо расщеплять на несколько строк пропорционально данным из ВидыЗапасов.

Посмотрим на пример типового алгоритма выборки и подготовки данных в обработчике ПередВыгрузкой правила конвертации объектов (ПКО):


РезультатыЗапроса = Запросы.ТоварыИзВидовЗапасовДляРеализацииТУПродажа.ВыполнитьПакет();
ТабЧастьТовары   = РезультатыЗапроса[4].Выгрузить();
СуммаТоваров     = ТабЧастьТовары.Итог("Сумма");
ТабЧастьТара     = РезультатыЗапроса[5].Выгрузить();
СуммаТары        = ТабЧастьТара.Итог("Сумма");
ТабЧастьУслуги   = РезультатыЗапроса[2].Выгрузить();
СуммаУслуг       = ТабЧастьУслуги.Итог("Сумма");
ТабЧастьАгУслуги = РезультатыЗапроса[6].Выгрузить();
СуммаАгУслуг     = ТабЧастьАгУслуги.Итог("Сумма");

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

  1. Открываем общий модуль МенеджерОбменаЧерезУниверсальныйФормат.
  2. Находим процедуру ПКО_Документ_РеализацияТоваровУслуг_Отправка_ПриОтправкеДанных.
  3. Изучаем алгоритм формирования результирующей таблицы для выгрузки: запросом соединяются табличные части Товары и ВидыЗапасов, после чего количество и суммы разбиваются по строкам с конкретными ссылками на справочник НомераГТД.

Используя этот же принцип в правилах конвертации (КД 2.0 или КД 3.0), мы гарантируем корректное заполнение ГТД в базе-приемнике без потери суммовых и количественных остатков.

← На главную