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