Как реализовать складской учет в разрезе заказчиков (сотрудников) в 1С:УПП и предотвратить избыточные закупки

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

В крупных производственных организациях часто возникает задача контроля целевого использования товарно-материальных ценностей (ТМЦ). Типичная ситуация: начальники участков заказывают запчасти под свои нужды, а руководство хочет видеть, сколько было закуплено под конкретного человека и сколько реально израсходовано. В системе 1С:УПП (Управление производственным предприятием) это можно реализовать несколькими способами. Проанализируем каждый из них, чтобы выбрать оптимальный баланс между чистотой учета и удобством пользователей.

Анализ проблемы: почему «простое» решение может быть опасным

Рассмотрим ситуацию, когда разработчик решает пойти по пути наименьшего сопротивления: добавить реквизит Заказчик (ссылка на справочник ФизическиеЛица) в табличные части документов ПриходныйОрдерНаТовары и ПеремещениеТоваров, а также создать отдельный регистр накопления. На первый взгляд, это кажется логичным, но давайте разберем скрытые риски:

  1. Нарушение партионного учета. В 1С:УПП расчет себестоимости и остатков завязан на регистры ПартииТоваровНаСкладах. Если ваш новый регистр «Заказчики» не будет жестко синхронизирован с партионным учетом, в отчетах неизбежно возникнут расхождения. Например, по складу товар есть, а по вашему регистру — минус, потому что кто-то забыл указать сотрудника в одном из документов.
  2. Сложность обновлений. Изменение структуры типовых документов — это всегда «головная боль» при обновлении конфигурации. Каждое изменение табличной части потребует ручного объединения кода.
  3. Отсутствие контроля себестоимости. Если завтра руководство попросит отчет не в штуках, а в деньгах, вам придется связывать свой регистр с регистрами стоимости, что в УПП реализовано крайне сложно (особенно при использовании РАУЗ).

Решение №1: Использование типового механизма «Внутренние заказы»

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

Во-первых, при поступлении товара в документе ПоступлениеТоваровУслуг или ПриходныйОрдерНаТовары указывается ссылка на ВнутреннийЗаказ. Это позволяет системе зарезервировать товар под конкретную потребность сразу «с колес».

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

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

Решение №2: Использование аналитики «Проекты»

Если «Внутренние заказы» кажутся пользователям слишком сложными, мы можем рассмотреть использование механизма проектов. В УПП проект — это сквозная аналитика, которая присутствует практически во всех товарных и денежных документах.

Рассмотрим алгоритм настройки:

  1. Включаем в настройках параметров учета ведение учета по проектам.
  2. В справочнике Проекты создаем элементы, соответствующие нашим заказчикам (например, «Участок 1 (Петров)», «Участок 2 (Сидоров)»).
  3. При оформлении поступления и перемещения выбираем соответствующий проект в шапке или табличной части.

Проанализируем результат: типовой отчет Ведомость по товарам на складах позволяет группировать данные по проектам. Мы увидим: Номенклатура А — Проект: Петров — Остаток: 50 шт. Это не требует программирования и не мешает обновлениям.

Решение №3: Автоматизация для «ленивых» пользователей

Основной аргумент против типовых решений — «кладовщикам некогда заполнять лишние документы». Мы можем решить эту проблему, создав небольшую надстройку (АРМ кладовщика), которая будет скрывать сложность системы. Выясним, как это реализовать программно.

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

Рассмотрим пример кода для упрощенного заполнения аналитики:


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

Такой подход позволяет сохранить «чистоту» типовых регистров, при этом интерфейс остается максимально простым для конечного пользователя.

Решение №4: Лимитно-заборные карты

Если главная задача — «закупать не более чем требуется», стоит обратить внимание на подсистему лимитирования. В УПП можно установить лимиты отпуска материалов. Посмотрим, как это работает: для каждого подразделения или материально ответственного лица устанавливается норма потребления на месяц. При попытке провести ПеремещениеТоваров сверх лимита, система выдаст ошибку и заблокирует документ.

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

Резюме и рекомендации

Подводя итог, проанализируем выбор пути реализации:

  1. Не изобретайте велосипед с новыми регистрами. Это приведет к техническому долгу и ошибкам в остатках.
  2. Если важна жесткая привязка «Закупка — Выдача», используйте Внутренние заказы.
  3. Если нужен простой визуальный контроль в отчетах без жестких резервов, используйте Проекты.
  4. Для борьбы с ленью персонала используйте дополнительные сведения (характеристики) или напишите простую внешнюю обработку для заполнения документов, которая будет сама подставлять нужные аналитики.

Помните, что в 1С:УПП любая «заплатка» в коде со временем может стать препятствием для перехода на более современные системы (например, 1С:ERP). Старайтесь максимально использовать заложенные в программу механизмы управленческого учета.

← На главную