Как реализовать функционал заказов клиента в 1С:Бухгалтерия предприятия 3.0

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

Переход от использования связки «1С:Управление торговлей» (УТ) и «1С:Бухгалтерия предприятия» (БП) к работе в одной информационной базе БП — задача амбициозная, но требующая тщательной проработки архитектуры. Основная сложность заключается в том, что в типовой БП отсутствует документ Заказ клиента с механизмом резервирования и оперативного контроля отгрузок. В этой статье мы подробно разберем, как внедрить аналогичный функционал УТ в среду БП 3.0 КОРП, используя современные инструменты платформы 1С v8.3.

Анализ целесообразности и постановка задачи

Прежде чем приступать к кодингу, проанализируем ситуацию. Зачем это нужно? Основная причина — уход от сложных обменов, которые часто «разваливаются» при обновлении версий, и создание единого информационного пространства для менеджеров и бухгалтеров. Однако стоит помнить, что БП — это система регламентированного учета, и превращение ее в систему оперативного учета (как УТ или ERP) требует создания дополнительных механизмов контроля.

Рассмотрим основные требования к системе «Заказы в БП»:

  1. Регистрация намерений покупателя (аналог документа Заказ клиента).
  2. Контроль состояния оплаты и отгрузки.
  3. Связь заказа с производственным циклом (для производственных предприятий).
  4. Разграничение прав доступа, чтобы менеджеры не могли влиять на бухгалтерские проводки.

Вариант 1: Использование типового документа «Счет покупателю»

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

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

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

Вариант 2: Создание собственной подсистемы через Расширение

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

Рассмотрим структуру объектов, которые необходимо создать в расширении:

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


Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    // Отражаем движение в управленческом регистре
    Если РежимЗаписи = РежимЗаписиДанных.Проведение Тогда
        Движения.ЗаказыКлиентов.Записывать = Истина;
        Для Каждого СтрокаТЧ Из Товары Цикл
            Движение = Движения.ЗаказыКлиентов.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
            Движение.Период = Дата;
            Движение.Заказ = Ссылка;
            Движение.Номенклатура = СтрокаТЧ.Номенклатура;
            Движение.Количество = СтрокаТЧ.Количество;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

Вариант 3: Интеграция заказа с производством

Для компаний с позаказным производством важно связать факт выпуска продукции с конкретным заказом клиента. В БП для этого используется документ Отчет производства за смену (ОПзС). Рассмотрим, как организовать эту связь без глубокой переработки системы.

Выясним причину, почему стандартная связь часто неудобна: в БП основной аналитикой затрат является Номенклатурная группа. Чтобы видеть себестоимость по заказам, проанализируем следующий алгоритм:

  1. Для каждого значимого заказа создаем новую позицию в справочнике Номенклатурные группы.
  2. В документе Заказ клиента (или счете) указываем эту группу.
  3. При оформлении Отчета производства за смену и Реализации выбираем эту же номенклатурную группу.
  4. В конце месяца обработка Закрытие месяца распределит затраты (20 счет) именно по этим группам, что позволит получить детальную себестоимость в разрезе заказов в стандартных бухгалтерских отчетах.

Вариант 4: Реализация взаиморасчетов в разрезе заказов

Одной из самых сложных задач является контроль дебиторской задолженности именно по заказам, а не по договорам в целом. В БП 3.0 на счете 62.01 и 62.02 используется три субконто: Контрагенты, Договоры, Документы расчетов.

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

Разберем фрагмент кода для поиска документа расчетов по номеру заказа из комментария:


// Поиск заказа в тексте назначения платежа
ТекстНазначения = Объект.НазначениеПлатежа;
НомерЗаказа = НайтиНомерВТексте(ТекстНазначения); // Собственная функция парсинга
Если ЗначениеЗаполнено(НомерЗаказа) Тогда
    ЗаказСсылка = Документы.СчетНаОплатуПокупателю.НайтиПоНомеру(НомерЗаказа, Объект.Дата);
    Если Не ЗаказСсылка.Пустая() Тогда
        СтрокаПлатежа = Объект.Оплата[0];
        СтрокаПлатежа.СпособПрямогоЗачета = Перечисления.СпособыЗачетаАвансов.ПоДокументу;
        СтрокаПлатежа.ДокументРасчетов = ЗаказСсылка;
    КонецЕсли;
КонецЕсли;

Организация рабочего места менеджера (АРМ)

Чтобы менеджеры не «заблудились» в бухгалтерском интерфейсе, необходимо создать специализированное рабочее место. Это может быть обработка, которая выводит:

Важным моментом является настройка прав. Используйте Профили групп доступа, чтобы ограничить видимость счетов 90, 91, 68, 69. Менеджер должен видеть только справочники ТМЦ, Контрагентов и свои торговые документы. Это обеспечит чистоту учета и безопасность финансовых данных компании.

Выводы и рекомендации

Подводя итог, можно сказать, что реализация заказов в БП — это рабочий вариант для малого и среднего бизнеса, которому тесно в рамках стандартного обмена с УТ.

Рассмотрим основные тезисы:

  1. Если задачи простые (выставить счет и проконтролировать отгрузку) — используйте типовые Счета покупателям с минимальными доработками интерфейса.
  2. Если нужно жесткое резервирование — внедряйте Регистры накопления через расширение.
  3. Если нужно производство — используйте Номенклатурные группы как связующее звено аналитики.
  4. Если же объем доработок начинает превышать разумные пределы (логистика, сложные скидки, CRM), проанализируйте возможность перехода на 1С:Комплексная автоматизация, где этот функционал уже реализован штатно — для миграции накопленного учёта можно использовать обработку переноса данных из БП 3.0 в КА 2.

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

← На главную