Как настроить автоматическую подстановку адреса доставки в реквизиты печати ТОРГ-12 в 1С:Комплексная автоматизация 2

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

В процессе работы с конфигурациями 1С:Комплексная автоматизация 2 или 1С:ERP пользователи часто сталкиваются с тем, что при создании документа Реализация товаров и услуг на основании Заказа клиента адрес доставки в форме «Реквизиты печати» (вкладка ТОРГ-12) остается пустым или требует ручного выбора. Это происходит даже в тех случаях, когда в самом документе реализации или в исходном заказе адрес уже указан.

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

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

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

Способ 1. Настройка через Индивидуальные соглашения

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

  1. Откроем справочник Соглашения с клиентами (индивидуальные или типовые).
  2. Перейдем на вкладку Прочие условия.
  3. Найдем поле, отвечающее за адрес доставки по умолчанию. Если адрес жестко зафиксирован в соглашении, то при создании Заказа клиента и последующей Реализации система будет приоритетно подтягивать данные из условий соглашения.

Этот метод хорош тем, что не требует вмешательства в код, но он неудобен, если у одного клиента множество разных точек доставки.

Способ 2. Использование функционала Складов

Выясним, как логистика склада влияет на печатные формы. В 1С:КА 2 предусмотрен механизм, при котором адрес доставки в ТОРГ-12 может определяться местонахождением склада (актуально для самовывоза или перемещений).

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

Способ 3. Программная доработка через расширение конфигурации

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

Проанализируем техническую часть. Нам необходимо перехватить процедуру заполнения реквизитов печати. Обычно за это отвечает модуль менеджера документа или специализированные процедуры в модуле формы. Рассмотрим пример кода, который можно разместить в расширении для документа РеализацияТоваровУслуг:


&После("ЗаполнитьРеквизитыПечати")
Процедура Расш1_ЗаполнитьРеквизитыПечати(ДанныеЗаполнения)
    
    // Проверяем, заполнено ли основание (Заказ клиента)
    Если ЗначениеЗаполнено(ЭтотОбъект.ЗаказКлиента) Тогда
        
        // Получаем адрес доставки из Заказа
        АдресИзЗаказа = ЭтотОбъект.ЗаказКлиента.АдресДоставки;
        
        // Если в реквизитах печати адрес еще пуст, подставляем его
        Если ПустаяСтрока(ЭтотОбъект.РеквизитыПечати.АдресДоставки) И НЕ ПустаяСтрока(АдресИзЗаказа) Тогда
            ЭтотОбъект.РеквизитыПечати.АдресДоставки = АдресИзЗаказа;
        КонецЕсли;
        
    КонецЕсли;

КонецПроцедуры

Важный момент: в версиях 2.4.x структура реквизитов может отличаться. Проверьте, что вы обращаетесь именно к табличной части или набору реквизитов РеквизитыПечати. Часто требуется также вызвать метод УправлениеКонтактнойИнформацией.СформироватьПредставление, чтобы адрес выглядел корректно в соответствии с требованиями законодательства.

Способ 4. Групповое изменение реквизитов (оперативное решение)

Если документов уже создано много и во всех них адрес не проставился, воспользуемся стандартной обработкой Групповое изменение реквизитов. Рассмотрим алгоритм действий:

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

Способ 5. Редактирование макета печатной формы

Выясним, можно ли решить вопрос без изменения логики заполнения. Если вам нужно, чтобы в ТОРГ-12 всегда выводился, например, фактический адрес контрагента, вы можете изменить сам Макет печатной формы.

Перейдите в раздел Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм. Найдите макет ТОРГ-12 для реализации. В пользовательском режиме вы можете изменить параметры заполнения ячейки «Грузополучатель», указав, что данные нужно брать напрямую из контактной информации контрагента, минуя промежуточный реквизит «Адрес доставки» в форме документа.

Подведем итог: автоматизация адреса в 1С:КА 2 требует понимания того, откуда система черпает данные. Для разовых исправлений подойдет групповая обработка, для постоянной работы лучше всего использовать небольшое Расширение, которое принудительно копирует АдресДоставки из ЗаказаКлиента в структуру реквизитов печати при создании документа.

← На главную