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