Как правильно реализовать контроль исполнения заказов в 1С:УНФ без создания лишних регистров?

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

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

Почему создание дополнительного регистра — это не лучший путь?

Когда мы планируем дублировать данные документа ЗаказПокупателя в отдельный регистр, мы сталкиваемся с рядом проблем:

  1. Избыточность данных: Система уже содержит всю необходимую информацию о составе заказа и его статусе в типовых регистрах накопления. Дополнительный регистр увеличивает объем базы данных и нагрузку на сервер при проведении документа.
  2. Сложность поддержки: При обновлении конфигурации или изменении бизнес-процесса ваш кастомный регистр станет «черным ящиком», который придется постоянно дорабатывать вручную.
  3. Риск рассинхронизации: Если движения по типовым регистрам и вашему новому регистру по какой-то причине разойдутся (например, при отмене проведения или сбое), отчеты будут показывать неверные данные.

Методологические ошибки: почему важно разделять заказы

Идея вносить несколько независимых «заказов» в один документ ЗаказПокупателя, используя Характеристику, нарушает принципы учета в 1С. Для системы такой подход означает:

Штатные инструменты для контроля исполнения заказов

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

Использование статусов и состояний

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

Использование механизма Сделок

Если клиенту требуется оформить несколько заказов в рамках одной договоренности, используйте Сделки. Сделка — это «зонтичный» объект, который объединяет несколько документов ЗаказПокупателя. Это позволяет:

Рабочее место для кладовщика

Если вам нужно «рабочее место» для кладовщика, где он будет отмечать выполнение заказов, не обязательно писать сложную обработку с нуля. Вы можете:

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

Пример логики для поиска заказа в обработке:


// Пример получения данных о заказе
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |    ЗаказыПокупателейОстатки.ЗаказПокупателя КАК Заказ,
    |    ЗаказыПокупателейОстатки.КоличествоОстаток КАК Остаток
    |ИЗ
    |    РегистрНакопления.ЗаказыПокупателей.Остатки(&Период, ) КАК ЗаказыПокупателейОстатки";
    
Результат = Запрос.Выполнить();

Итоги и рекомендации

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

← На главную