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

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

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

Почему система ограничивает ввод времени доставки для покупателей

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

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

Как настроить доставку, чтобы автоматизировать работу менеджеров

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

Вариант 1: Использование способов доставки

Самый простой и правильный путь — использование справочника Способы доставки. Мы можем создать предопределенные способы (например, «Утренняя доставка», «Вечерняя доставка»), для которых в логистической системе задаются свои правила. Когда менеджер выбирает соответствующий способ в Заказе клиента, система автоматически подтягивает необходимые параметры. Это избавляет от необходимости заполнять каждое поле вручную.

Вариант 2: Использование дополнительных реквизитов

Если специфика вашего бизнеса требует, чтобы у каждого клиента было свое «излюбленное» время, вы можете добавить это поле в карточку Партнера или Контрагента через механизм Дополнительные реквизиты и сведения.
Чтобы данные автоматически переносились в Заказ клиента, нам потребуется выполнить небольшую доработку (расширение):

  1. Создаем дополнительный реквизит «Желаемое время доставки» для справочника Партнеры.
  2. Создаем Расширение конфигурации, в котором подписываемся на событие ПриИзменении реквизита Партнер в форме Заказа клиента.
  3. В процедуре обработчика пишем код, который считывает значение из доп. реквизита партнера и записывает его в реквизиты объекта Заказ клиента или в структуру Доставка.

Примерная логика обработки данных в коде может выглядеть следующим образом:


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

Итог совместной работы

Мы выяснили, что типовой функционал 1С намеренно ограничивает заполнение времени доставки в договорах клиентов, так как считает этот параметр переменным. Если вашим менеджерам критично иметь автозаполнение:

Использование таких подходов обеспечит стабильность учета и сохранит чистоту обновления вашей конфигурации 1С.

← На главную