Как в 1С:ERP 2.4 привязать конкретные адреса доставки к зонам доставки

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

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

Анализ стандартного функционала зон доставки

Для начала проанализируем, как система 1С:ERP видит зоны доставки в типовом варианте. Объект Зоны доставки — это простой справочник, который используется в качестве аналитики в документах Заказ клиента, Заявка на возврат товаров от клиента и Реализация товаров и услуг.

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

  1. В договоре с клиентом: На вкладке «Доставка» можно указать зону по умолчанию. Важно помнить: эта вкладка появляется только в том случае, если в договоре выбран способ доставки «Нами до клиента» или «Перевозчиком».
  2. В заказе клиента: На вкладке «Доставка» поле «Зона доставки» заполняется либо из договора, либо вручную.

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

Почему адрес доставки — это не «сущность»?

Выясним причину, по которой нельзя просто зайти в справочник адресов и проставить там зоны. В платформе 1С:Предприятие 8.3 адрес является частью Контактной информации. Технически это запись в табличной части справочника Партнеры или Контрагенты, хранящаяся в виде строки или XML-структуры (XDTO).

Поскольку адрес не является ссылочным объектом (справочником), мы не можем добавить ему реквизит «Зона доставки» обычным способом. Это ключевое ограничение, которое нам предстоит обойти.

Решение №1: Использование дополнительных реквизитов для контактной информации

Проанализируем наиболее изящный способ без серьезного изменения структуры метаданных. В 1С:ERP существует механизм дополнительных реквизитов не только для справочников, но и для видов контактной информации. Рассмотрим шаги по реализации:

  1. Перейдем в раздел Администрирование — Общие настройки — Дополнительные реквизиты и сведения.
  2. Найдем в списке тип объекта Адрес (относящийся к справочнику Партнеры).
  3. Добавим новый дополнительный реквизит «Зона доставки» с типом значения «Ссылка на справочник Зоны доставки».

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


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

Решение №2: Создание справочника «Точки доставки»

Если бизнес-процесс требует жесткого контроля и хранения множества параметров для каждой точки (например, время работы, наличие пропуска, ФИО контактного лица на месте), лучше реализовать полноценный справочник. Рассмотрим структуру такого решения:

Создадим справочник ТочкиДоставки, подчиненный справочнику Партнеры. В нем определим следующие реквизиты:

В документе Заказ клиента добавим поле выбора из этого справочника. При выборе «Точки доставки» система должна автоматически заполнять стандартное текстовое поле адреса и стандартный реквизит Зона доставки. Это обеспечит совместимость с типовым рабочим местом логиста.

Решение №3: Использование Бизнес-регионов (для версий 2.5+)

Посмотрим, как эта задача решается в более современных версиях ERP. Начиная с версии 2.5, архитектура учета территориального распределения была расширена. Появился справочник Бизнес-регионы.

Хотя бизнес-регион часто привязывается к партнеру в целом, его можно использовать как альтернативу зонам. Однако стоит помнить, что функционал Управления доставкой по-прежнему жестко завязан на справочник Зоны доставки. Поэтому использование бизнес-регионов оправдано только в том случае, если вы не планируете использовать типовое рабочее место логиста для формирования рейсов, а используете сторонние системы маршрутизации.

Автоматизация через рабочее место «Доставка»

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

  1. Все заказы с незаполненной зоной попадают в группу «Зона не указана».
  2. Логист, видя адрес в строке заказа, может выделить группу заказов и правой кнопкой мыши (или перетаскиванием) назначить им зону.
  3. Система позволяет массово изменять зону доставки для распоряжений непосредственно в интерфейсе логистики.

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

Подведем итоги

Для реализации полноценной привязки адреса к зоне в 1С:ERP 2.4 мы рекомендуем использовать Решение №1 (Дополнительные реквизиты контактной информации) с небольшим программным расширением. Это позволит:

Проанализировав ситуацию, можно сделать вывод: несмотря на отсутствие прямой связи «Адрес — Зона» в метаданных, гибкость механизмов 1С:ERP позволяет настроить эту связь с минимальными усилиями, обеспечивая эффективную работу службы доставки.

← На главную