Как вывести актуальный номер ГТД на товар в прайс-лист в 1С?

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

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

Выбор правильных источников данных

Проанализируем ситуацию. Обращение напрямую к справочнику НомераГТД не даст нужного результата, так как в нем хранятся абсолютно все декларации: и новые, и те, по которым товары уже давно распроданы. Нам нужны только актуальные остатки.

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

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

Связь через аналитику учета номенклатуры

В современных конфигурациях 1С данные о ГТД часто не хранятся напрямую в регистрах остатков. Система использует механизм ключей аналитики для оптимизации базы данных. Чтобы получить номер декларации, нам необходимо соединить регистр с остатками и регистр сведений АналитикаУчетаНоменклатуры.

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


ВЫБРАТЬ
    ОстаткиТоваров.Номенклатура КАК Номенклатура,
    Аналитика.НомерГТД КАК НомерГТД,
    ОстаткиТоваров.КоличествоОстаток КАК Количество
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Период, ) КАК ОстаткиТоваров
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
    ПО ОстаткиТоваров.КлючАналитики = Аналитика.КлючАналитики
ГДЕ
    ОстаткиТоваров.КоличествоОстаток > 0
    И Аналитика.НомерГТД <> ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка)

Механизм подбора ГТД через FIFO

Важно понимать: в 1С номера ГТД списываются по методу FIFO (First In, First Out). Для максимально точного отображения в прайс-листе «того самого» номера, который программа подставит в УПД, недостаточно просто взять любые остатки.

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

Проблема нескольких ГТД на остатках

Выясним причину частых ошибок при доработке прайсов. Если на одну позицию товара на складе числится 5–10 разных номеров ГТД (разные поставки), вывод их всех в одну ячейку прайс-листа может сломать верстку отчета. На практике применяют два подхода:

  1. Вывод только первого номера: Выводится самая старая по FIFO актуальная декларация. Это быстрее работает и сохраняет компактный вид прайса.
  2. Группировка номеров: Все доступные номера группируются через запятую с помощью функции СоединитьСтроки в языке запросов Системы компоновки данных (СКД). Этот вариант более информативен для покупателя, но значительно замедляет формирование прайс-листа при больших объемах номенклатуры.

Использование расширений и СКД

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

Проверка настроек системы

Перед началом разработки проанализируем настройки самой базы. Убедитесь, что в системе включены функциональные опции:

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

Альтернатива: Стандартные отчеты

Иногда разработка усложненного прайс-листа экономически нецелесообразна, особенно если остатки меняются ежеминутно. В качестве альтернативы предложите пользователям использовать уже готовые типовые отчеты системы:

Если клиент берет много и хочет видеть актуальные данные, можно настроить автоматическую рассылку этих отчетов вместе с классическим прайс-листом.

Кэширование данных для больших баз

Для крупных оптовых компаний формирование прайс-листа с динамическим расчетом ГТД по FIFO в реальном времени может вызывать зависания. В качестве архитектурного решения часто внедряют регламентное задание. Такое задание (например, раз в час) собирает данные об актуальных ГТД в отдельный вспомогательный непериодический регистр сведений. А сам прайс-лист при формировании просто делает элементарное левое соединение с этим регистром, получая данные мгновенно без сложных вычислений.

← На главную