Как оформить передачу материалов в производство с разных складов в 1С:ERP

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

При работе в 1С:ERP (редакции 2.2, 2.4, 2.5) пользователи часто сталкиваются с ситуацией, когда в рамках одного Этапа производства на закладке Обеспечение материалами и работами указаны ТМЦ, находящиеся на разных физических складах. Попытка создать документ Передача материалов в производство непосредственно «на основании» этапа в таких случаях приводит к ошибке: «У выбранных распоряжений разные отправители». Разберем детально причины этого поведения системы и рассмотрим правильные алгоритмы работы.

Анализ причины возникновения ошибки

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

Когда мы пытаемся создать документ «на основании» распоряжения (Этапа), в котором указано несколько складов, система не может определить, какой именно склад поставить в шапку. Поскольку механизм «создания на основании» стандартно пытается сформировать один документ на одно распоряжение, возникает конфликт данных. Система блокирует создание, выдавая сообщение о «разных отправителях».

Решение 1: Использование рабочего места «Накладные к оформлению»

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

Разберем этот процесс по шагам:

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

Этот метод позволяет избежать ручного разделения строк и гарантирует корректное заполнение всех реквизитов.

Решение 2: Методология «Кладовые цеха»

Рассмотрим более продвинутый подход к управлению запасами в производстве. Начиная с версии 2.2, в 1С:ERP активно продвигается концепция Кладовых цеха. Кладовая — это складской объект, который функционально привязан к конкретному производственному подразделению.

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

Выясним, как настроить такую схему: в карточке склада (раздел НСИ и администрирование — НСИ — Склады и магазины) необходимо установить тип склада Кладовая цеха и указать подразделение, которому она принадлежит. Это позволит системе автоматически подставлять этот склад в производственные документы.

Решение 3: Ручная фильтрация через действие «Отгрузить»

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

  1. Откроем Этап производства на закладке Обеспечение материалами и работами.
  2. Для всех строк, относящихся ко Складу №1, установим действие Отгрузить. Для строк всех остальных складов установим действие К обеспечению или Резервировать на складе.
  3. Нажмем Создать на основании — Передача материалов в производство. Система подтянет только строки со статусом «Отгрузить» и создаст документ для первого склада.
  4. Вернемся в этап. Снимем «Отгрузить» с первого склада и установим его для строк Склада №2.
  5. Снова нажмем Создать на основании.

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

Решение 4: Программная автоматизация формирования документов

Для программистов 1С существует возможность автоматизировать процесс «своза» материалов на один промежуточный склад, как предложил автор темы на форуме. Рассмотрим пример логики, которую можно реализовать в расширении для упрощения жизни кладовщиков.

Суть задачи: по кнопке в этапе найти все материалы, требующие отгрузки, и сформировать документы Перемещение товаров с разных складов на один целевой склад (например, цеховую кладовую).

Пример фрагмента кода для реализации подобной логики:


// Фрагмент процедуры формирования перемещений по данным этапа
Процедура СоздатьПеремещенияНаОснованииЭтапа(ЭтапОбъект)
    
    // Получаем таблицу материалов, которые нужно отгрузить
    ТаблицаМатериалов = ЭтапОбъект.Обеспечение.Выгрузить();
    
    // Группируем по складу-отправителю
    СкладыОтправители = ТаблицаМатериалов.Скопировать();
    СкладыОтправители.Свернуть("Склад");
    
    ЦелевойСклад = ЭтапОбъект.Подразделение.Кладовая; // Получаем кладовую подразделения
    
    Для Каждого СтрСклад Из СкладыОтправители Цикл
        
        Если СтрСклад.Склад = ЦелевойСклад Тогда Продолжить; КонецЕсли;
        
        НовоеПеремещение = Документы.ПеремещениеТоваров.СоздатьДокумент();
        НовоеПеремещение.Дата = ТекущаяДата();
        НовоеПеремещение.СкладОтправитель = СтрСклад.Склад;
        НовоеПеремещение.СкладПолучатель = ЦелевойСклад;
        НовоеПеремещение.Организация = ЭтапОбъект.Организация;
        
        // Заполняем товары по фильтру склада
        Отбор = Новый Структура("Склад", СтрСклад.Склад);
        СтрокиМатериалов = ТаблицаМатериалов.НайтиСтроки(Отбор);
        
        Для Каждого ТекСтрока Из СтрокиМатериалов Цикл
            НоваяСтрокаТовары = НовоеПеремещение.Товары.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрокаТовары, ТекСтрока);
            НоваяСтрокаТовары.Количество = ТекСтрока.КОтгрузке; // Логика зависит от версии ERP
        КонецЦикла;
        
        НовоеПеремещение.Записать(РежимЗаписиДокумента.Проведение);
        Сообщить("Сформирован документ: " + НовоеПеремещение.Ссылка);
        
    КонецЦикла;

КонецПроцедуры

Проанализируем этот код: мы группируем потребности этапа по складам и для каждого склада (отличного от целевого) создаем отдельный документ Перемещение товаров. Это позволяет автоматизировать «подвоз» материалов к производственному участку.

Рекомендации по настройке системы

Для оптимизации процессов передачи материалов рекомендуем обратить внимание на настройки в разделе НСИ и администрирование — Настройка НСИ и разделов — Производство — Производственные затраты. Здесь можно выбрать Вариант оформления накладных:

Использование рабочего места Накладные к оформлению совместно с правильно настроенными Кладовыми цехов полностью снимает проблему «разных отправителей» и позволяет вести учет в строгом соответствии с методологией 1С:ERP.

← На главную