Как объединить заказы поставщику по разным назначениям и направлениям деятельности в 1С:ERP 2.5?

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

В процессе работы с 1С:ERP 2.5 пользователи часто сталкиваются с ситуацией, когда система при автоматическом формировании заказов поставщикам «дробит» закупку одной и той же номенклатуры на несколько документов. Это происходит, если потребности возникли под разные назначения (например, под разные заказы клиентов или направления деятельности) или из-за настройки кратности упаковки. В результате вместо одного консолидированного заказа поставщику менеджер получает три, пять или даже десять документов, в каждом из которых нужно отдельно согласовывать цены и условия поставки. Для облегчения анализа стоимости при согласовании условий можно использовать расширение для отображения цен предыдущих поставок в документах закупки.

Рассмотрим подробнее, почему возникает такая ситуация, и разберем по шагам штатные и технические способы решения этой задачи, чтобы упростить взаимодействие с поставщиками и сократить объем рутинной работы.

Почему система разделяет заказы: анализируем причины

Прежде всего, выясним причину такого поведения программы. В системе 1С:ERP механизм обеспечения потребностей тесно связан с понятием обособленного обеспечения. Если для материала или товара установлено обособленное обеспечение, система жестко связывает закупку с конкретным источником спроса. По умолчанию в старых версиях или при определенных настройках поле Назначение находится в «шапке» документа Заказ поставщику. Поскольку в одном документе в шапке может быть только одно значение, программа вынуждена создавать отдельный документ на каждое новое назначение.

Ситуация осложняется при использовании упаковок. Проанализируем пример: если нам нужно 3 штуки материала под «Направление 1», а минимальная партия закупки составляет упаковку из 10 штук, система создаст:

  1. Заказ на 3 штуки (0.3 упаковки) под конкретное назначение.
  2. Заказ на оставшиеся 7 штук (0.7 упаковки) под пустое назначение, так как эти единицы являются свободным остатком, который поставщик обязан отгрузить из-за кратности, но на который нет прямого спроса.

Решение 1: Использование назначений в строках заказов

Это самый эффективный и современный способ решения проблемы без программирования. Начиная с версий 2.5, в 1С:ERP реализована возможность перенести аналитику обеспечения из заголовка документа в его табличную часть.

Разберем, как активировать этот механизм:

  1. Перейдем в раздел НСИ и администрирование — Настройка НСИ и разделов — Закупки.
  2. В блоке Документы закупок найдем и установим флаг Разрешить назначение в строках заказов.

После включения этой опции поле Назначение в документе Заказ поставщику переместится в таблицу Товары. Теперь мы можем в рамках одного документа указать одну и ту же номенклатуру несколькими строками, где для каждой строки будет свое назначение («Направление 1», «Направление 2», «Склад» и т.д.). Поставщик увидит общий итог по количеству, а мы сохраним прозрачность обеспечения в учете.

Решение 2: Настройка группировки в обработке «Формирование заказов по потребностям»

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

При формировании заказов на четвертом шаге (Настройка параметров заказов) обратим внимание на поле Способ группировки. Чтобы система объединяла потребности по разным назначениям в один документ, необходимо выбрать вариант Группировать по поставщику. При такой настройке система просканирует все потребности, относящиеся к одному контрагенту, и попытается «упаковать» их в один Заказ поставщику, распределив разные назначения по строкам табличной части.

Решение 3: Ручное объединение через подбор из потребностей

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

  1. Создадим новый пустой документ Заказ поставщику и укажем в нем организацию, склад и поставщика.
  2. На вкладке Товары воспользуемся кнопкой Заполнить — Подобрать из потребностей.
  3. В открывшемся рабочем месте мы увидим список всех необеспеченных нужд предприятия. Здесь можно применить фильтры по конкретной номенклатуре или направлениям деятельности.
  4. Выделим все нужные строки (включая те, что возникли из-за кратности упаковок) и перенесем их в документ.

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

Решение 4: Учет финансового результата и Направления деятельности

Необходимо различать техническое Назначение (объект обеспечения) и финансовое Направление деятельности (НД). Если в вашей базе включена опция Обособление товаров по направлениям деятельности (в настройках финансового результата), система может требовать разделения заказов, если у них разные НД в шапке документа. Это критично для корректного формирования проводок по счету 41 или 10 в разрезе НД.

Если ваша задача — просто закупить товар вместе, но при этом сохранить разный финансовый учет, убедитесь, что в настройках НД разрешено использование общего запаса или настройте схему обеспечения так, чтобы закупка велась на «общий склад» с последующим резервированием под направления.

Технические нюансы и доработки

Если штатные средства (назначение в строках) по каким-то причинам не могут быть использованы (например, в сильно кастомизированных базах старых релизов), программисты часто прибегают к доработке обработки ФормированиеЗаказовПоПотребностям.

Проанализируем ситуацию с точки зрения кода. Основная сложность заключается в том, что алгоритм распределения потребностей зашит глубоко в модули менеджера обработки. При попытке «склеить» заказы программно, необходимо следить за тем, чтобы структура данных в регистре накопления ЗапасыИПотребности не нарушилась.

Пример логики, которую можно внедрить через расширение (метод ПередЗаписью или подписка на событие):


// Псевдокод логики объединения
Если ДокументОбъект.Тип = "ЗаказПоставщику" Тогда
    // Проверка наличия аналогичного открытого заказа тому же поставщику
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ЗаказПоставщику ГДЕ Поставщик = &Поставщик И Статус = &Статус";
    // ... логика поиска и добавления строк в существующий документ
КонецЕсли;

Однако, как отмечают эксперты, доработка проведения таких документов — это «путь самурая», так как направление деятельности может наследоваться в движениях регистров через обращение к реквизитам документа-основания. Поэтому рекомендуется максимально использовать штатный механизм назначений в строках.

Работа с ценами в нескольких документах

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

  1. Используйте рабочее место Цены номенклатуры поставщиков (прайс-листы). При регулярном получении файлов от поставщиков этот процесс можно автоматизировать, настроив автоматический сбор прайс-листов с почты, FTP или HTTP.
  2. Внесите актуальную цену один раз для связки Поставщик + Номенклатура.
  3. В списке документов Заказы поставщикам выделите нужные документы, нажмите Изменить выделенные (или воспользуйтесь групповой обработкой) и вызовите команду обновления цен по прайс-листу. В современных версиях ERP также доступна команда Заполнить — Цены по прайс-листу непосредственно из формы списка или из формы самого документа, что значительно ускоряет процесс.

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

← На главную