Как в 1С:УТ 11.5 реализовать выбор адреса погрузки из списка вместо постоянного ввода через ФИАС

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

При оформлении логистических документов, таких как Транспортная накладная (ТН), пользователи часто сталкиваются с необходимостью многократного ввода одних и тех же адресов погрузки. Стандартный механизм 1С предполагает использование классификатора ФИАС/ГАР, что при каждом заполнении требует времени на поиск и выбор элементов. В этой статье мы разберем, как ускорить этот процесс, используя стандартные возможности конфигурации 1С:Управление торговлей 11.5, и какие программные доработки помогут реализовать выбор из списка ранее введенных адресов.

Проанализируем ситуацию: почему кнопка выбора может не работать?

Часто пользователи замечают, что в поле адреса присутствует кнопка выбора (три точки или лупа), но при нажатии на неё ничего не происходит или снова открывается пустая форма ФИАС. Разберем причины этого поведения. В типовых решениях на базе Библиотеки стандартных подсистем (БСП) поле адреса часто является составным строковым полем. Если система не находит связанных объектов (например, адресов, уже привязанных к конкретному складу или контрагенту), она не может предложить список для выбора. Кроме того, программный код формы может ограничивать выбор, если не заполнены ключевые реквизиты, такие как Грузоотправитель или Склад.

Решение 1: Использование справочника «Адреса доставки»

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

  1. Перейдем в карточку партнера (раздел Продажи или Закупки — Контрагенты/Партнеры).
  2. Откроем вкладку Адреса, телефоны.
  3. Посмотрим на возможность добавления дополнительных полей. Однако более правильным будет использование связанного справочника АдресаДоставки.
  4. Заполнив этот справочник один раз, мы получим возможность выбирать данные в документах через стандартную форму выбора, не обращаясь к классификатору повторно.

Решение 2: Подстановка адреса из карточки Склада

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

В конфигурации УТ 11.5 адрес погрузки в транспортной накладной по умолчанию пытается инициализироваться из данных склада, указанного в документе-основании (например, в Реализации товаров и услуг). Чтобы это работало, выполним следующие шаги:

  1. Зайдем в раздел НСИ и администрирование — Склады и магазины.
  2. В карточке нужного склада найдем раздел Контактная информация.
  3. Убедимся, что адрес заполнен строго по классификатору (с индексом, регионом и городом). Если адрес введен в свободной форме, система может «не узнать» его при заполнении ТН.

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

Решение 3: Использование истории ввода адресов (БСП)

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

История сохраняется только в том случае, если адрес был признан валидным. Если пользователь просто вписал текст, не выбрав элементы из ФИАС, такой адрес в историю не попадет. Чтобы включить сохранение истории, нужно проверить настройки Видов контактной информации в разделе НСИ и администрирование. Найдем там тип «Адрес» для соответствующих объектов и проверим, разрешено ли хранение истории изменений.

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

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

Алгоритм реализации будет следующим:

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

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


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

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


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

Решение 5: Работа с «Пунктами погрузки и разгрузки»

В продвинутых сценариях использования логистики в 1С:УТ 11.5 (когда включено управление доставкой) существует справочник ПунктыПоМаршруту. Разберем, как его задействовать:

Вместо того чтобы работать с адресом как с текстом, система позволяет оперировать объектами этого справочника. В документе Задание на перевозку или в связанных транспортных накладных выбор происходит мгновенно, так как вы выбираете конкретный элемент справочника, к которому уже «привязан» адрес ФИАС. Это самый надежный способ для крупных компаний, у которых есть фиксированный перечень логистических точек.

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

← На главную