Как настроить или убрать автоматическое заполнение адреса доставки в 1С:УТ 11?

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

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

Как работает механизм выбора адреса

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

При нажатии на кнопку выбора в поле адреса, вызывается процедура АдресДоставкиНачалоВыбора (на клиенте), которая в свою очередь инициирует открытие формы через ДоставкаТоваровКлиент.ОткрытьФормуВыбораАдресаИОбработатьРезультат. Система открывает специализированную модальную форму «ВводАдреса», которая собирает список доступных вариантов.

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

Почему адреса «фантомно» появляются в документах

Частая проблема, когда удаление адреса в карточке партнера не помогает, заключается в кэшировании данных и истории документов. Если вы создаете новый документ на основании старого (копированием), система может наследовать старый адрес. Также, если включена функциональная опция ИспользоватьУправлениеДоставкой, логика подбора адреса может меняться. Если эта опция отключена, адрес извлекается напрямую из контактной информации партнера через ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации.

Как управлять автозаполнением и корректировать адреса

Разберем основные методы решения задачи по очистке или настройке адресов:

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

Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьУправлениеДоставкой") Тогда
    АдресДоставки = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(Партнер);
КонецЕсли;

Вы можете переопределить эту логику в процедуре ПриЗаполнении или ПриСозданииНаСервере. Например, принудительно очистить поле, если документ создается новым, добавив проверку на копирование:


Если Параметры.Свойство("Копирование") Тогда
    Объект.АдресДоставки = "";
КонецЕсли;

Отображение адресов в печатных формах и отчетах

Если ваша задача — вывести актуальный адрес в акты сверки или отчеты, помните: отчеты чаще всего обращаются к данным контактной информации, а не к «реквизиту доставки» документа. Если адрес не отображается, убедитесь, что в настройках отчета или макете печатной формы используется вывод контактной информации партнера с соответствующим типом. Редактирование макета через «Изменить вариант отчета» позволяет вывести именно тот адрес, который хранится в базе как основной, а не строковое значение из «шапки» старого документа.

Резюме

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

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

← На главную