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