В процессе работы с конфигурациями 1С:Комплексная автоматизация 2 или 1С:ERP пользователи часто сталкиваются с тем, что при создании документа Реализация товаров и услуг на основании Заказа клиента адрес доставки в форме «Реквизиты печати» (вкладка ТОРГ-12) остается пустым или требует ручного выбора. Это происходит даже в тех случаях, когда в самом документе реализации или в исходном заказе адрес уже указан.
Разберем подробно, почему так происходит, и рассмотрим несколько способов решения этой задачи: от стандартных настроек системы до написания небольшого расширения.
Проанализируем ситуацию: в документах 1С адрес доставки может храниться в разных структурах данных. В самом документе Реализация товаров и услуг адрес обычно хранится как контактная информация (строка или структура), привязанная к партнеру или контрагенту. Однако в блоке Реквизиты печати адрес доставки — это отдельное поле, которое система пытается заполнить по определенным алгоритмам. Если адрес в Заказе клиента был введен вручную (как произвольный текст), а не выбран из классификатора или справочника, типовой механизм переноса данных часто игнорирует его, считая данные «неформатными» для печати ТОРГ-12.
Посмотрим на возможности типового функционала без привлечения программиста. Если вы работаете с постоянными клиентами, у которых адрес доставки не меняется от отгрузки к отгрузке, мы можем автоматизировать процесс через Соглашения с клиентами.
Соглашения с клиентами (индивидуальные или типовые).Заказа клиента и последующей Реализации система будет приоритетно подтягивать данные из условий соглашения.Этот метод хорош тем, что не требует вмешательства в код, но он неудобен, если у одного клиента множество разных точек доставки.
Выясним, как логистика склада влияет на печатные формы. В 1С:КА 2 предусмотрен механизм, при котором адрес доставки в ТОРГ-12 может определяться местонахождением склада (актуально для самовывоза или перемещений).
Если ваша бизнес-модель позволяет, вы можете привязать конкретные адреса к складам. В этом случае при выборе склада в Реализации товаров и услуг адрес доставки для печатных форм будет заполняться автоматически на основании данных склада. Рассмотрим этот вариант только в том случае, если складская структура компании совпадает с точками отгрузки.
Если стандартные настройки не помогают, наиболее эффективным решением будет использование механизма Расширений. Это позволит сохранить конфигурацию на поддержке и автоматизировать заполнение поля АдресДоставки в реквизитах печати.
Проанализируем техническую часть. Нам необходимо перехватить процедуру заполнения реквизитов печати. Обычно за это отвечает модуль менеджера документа или специализированные процедуры в модуле формы. Рассмотрим пример кода, который можно разместить в расширении для документа РеализацияТоваровУслуг:
&После("ЗаполнитьРеквизитыПечати")
Процедура Расш1_ЗаполнитьРеквизитыПечати(ДанныеЗаполнения)
// Проверяем, заполнено ли основание (Заказ клиента)
Если ЗначениеЗаполнено(ЭтотОбъект.ЗаказКлиента) Тогда
// Получаем адрес доставки из Заказа
АдресИзЗаказа = ЭтотОбъект.ЗаказКлиента.АдресДоставки;
// Если в реквизитах печати адрес еще пуст, подставляем его
Если ПустаяСтрока(ЭтотОбъект.РеквизитыПечати.АдресДоставки) И НЕ ПустаяСтрока(АдресИзЗаказа) Тогда
ЭтотОбъект.РеквизитыПечати.АдресДоставки = АдресИзЗаказа;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Важный момент: в версиях 2.4.x структура реквизитов может отличаться. Проверьте, что вы обращаетесь именно к табличной части или набору реквизитов РеквизитыПечати. Часто требуется также вызвать метод УправлениеКонтактнойИнформацией.СформироватьПредставление, чтобы адрес выглядел корректно в соответствии с требованиями законодательства.
Если документов уже создано много и во всех них адрес не проставился, воспользуемся стандартной обработкой Групповое изменение реквизитов. Рассмотрим алгоритм действий:
Реализация товаров и услуг.Адрес доставки (Реквизиты печати). Внимание: не перепутайте с основным адресом доставки документа!Выясним, можно ли решить вопрос без изменения логики заполнения. Если вам нужно, чтобы в ТОРГ-12 всегда выводился, например, фактический адрес контрагента, вы можете изменить сам Макет печатной формы.
Перейдите в раздел Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм. Найдите макет ТОРГ-12 для реализации. В пользовательском режиме вы можете изменить параметры заполнения ячейки «Грузополучатель», указав, что данные нужно брать напрямую из контактной информации контрагента, минуя промежуточный реквизит «Адрес доставки» в форме документа.
Подведем итог: автоматизация адреса в 1С:КА 2 требует понимания того, откуда система черпает данные. Для разовых исправлений подойдет групповая обработка, для постоянной работы лучше всего использовать небольшое Расширение, которое принудительно копирует АдресДоставки из ЗаказаКлиента в структуру реквизитов печати при создании документа.