При переходе на 1С:ERP 2.4 со старых систем (например, 1С:УПП или 1С:УТ 10.3) пользователи часто сталкиваются с фундаментальным отличием в архитектуре: в современных конфигурациях склад и подразделение — это разные аналитические измерения, которые не всегда пересекаются напрямую. В типовой логике ERP товары хранятся на складах, а подразделения отвечают за процессы (закупки, продажи, производство). Однако часто бизнес требует жесткого разделения прав владения запасами. Рассмотрим подробнее, как реализовать учет по подразделениям на одном или нескольких складах.
В старых версиях программ подразделение часто являлось измерением регистра остатков. В 1С:ERP оперативный контур (регистр ТоварыНаСкладах) хранит информацию только в разрезе склада, номенклатуры, характеристик, серий и назначений. Подразделения там нет. Если мы хотим, чтобы Подразделение А не могло забрать товар Подразделения Б, даже если они лежат на одном физическом адресе, нам придется задействовать дополнительные механизмы. Разберем основные варианты решения этой задачи.
Это самый «легкий» способ с точки зрения изменения структуры данных, но он влияет в первую очередь на финансовый учет и расчет себестоимости. Проанализируем, как его включить:
Что это дает: Система начнет фиксировать подразделение в регистре ТоварыОрганизаций. Это позволит формировать отчет «Ведомость по товарам организаций» с группировкой по подразделениям. Однако важно понимать, что этот механизм работает для финансового контура. В оперативном управлении складом (при отгрузке, отборе в ячейках) подразделение все равно не будет являться «жестким» разделителем остатка, если не настроены дополнительные правила обеспечения.
Если требуется, чтобы товар одного подразделения был физически «невидим» для другого при расчете обеспечения заказов, рассмотрим механизм Направлений деятельности (НД). Это наиболее мощный инструмент в 1С:ERP для обособления ресурсов.
Проанализируем алгоритм настройки:
При такой схеме товар на складе будет числиться под конкретным назначением. Если Подразделение А сформирует Заказ клиента, система при расчете обеспечения увидит только тот товар, который либо свободен, либо закуплен под направление деятельности этого подразделения. Товар, обособленный под Подразделение Б, не будет предложен к отгрузке, что исключает возможность «кражи» чужих запасов.
Рассмотрим вариант, который часто кажется самым простым пользователям — создание отдельной карточки в справочнике Склады и магазины для каждого подразделения. Выясним преимущества и недостатки этого пути.
Преимущества:
RLS (Record Level Security). Пользователи одного подразделения просто не увидят склад другого в подборах.Недостатки:
Если у вас уже включено использование адресного склада (WMS), проанализируем возможность использования Помещений. Помещение в 1С:ERP — это балансовая единица внутри склада, которая имеет свои настройки адресного хранения и свои остатки.
Разберем логику настройки:
Этот вариант хорош тем, что он позволяет вести детальный учет в ячейках, при этом для системы это все еще один склад, но с жестким разделением остатков по зонам ответственности. Вы сможете четко видеть, сколько товара Подразделения 1 лежит в Помещении 1.
Выясним, как сделать так, чтобы каждое подразделение закупало товар только под себя, даже если на складе есть остатки. Для этого рассмотрим настройку Схем обеспечения.
В ERP можно настроить схему обеспечения таким образом, что при возникновении потребности у конкретного подразделения (или по конкретному направлению деятельности), система не будет пытаться зарезервировать свободный остаток на общем складе, а сразу сформирует рекомендацию к заказу (закупке). Это достигается путем установки способа обеспечения «Покупка» с высокой приоритетностью и отключением контроля остатков в определенных сценариях.
Проанализируем, где именно хранятся данные при использовании разных методов. Для программиста 1С важно понимать структуру движения:
ЗапасыИПотребности. В нем измерение Назначение позволяет разделять остатки и ожидания.ВедомостьПоТоварамНаСкладах.Рассмотрим пример кода для программного анализа остатков в разрезе подразделения (если включено обособление по НД):
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
| ТоварыНаСкладахОстатки.Назначение.НаправлениеДеятельности КАК ПодразделениеНД
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.Назначение.НаправлениеДеятельности = &ВыбПодразделение";
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("ВыбПодразделение", СсылкаНаНаправлениеДеятельности);
РезультатЗапроса = Запрос.Выполнить();
Выясним, какой метод выбрать в зависимости от ваших задач:
Помните, что 1С:ERP — гибкая система, и часто оптимальным решением является комбинация нескольких методов, например, использование назначений вместе с грамотно настроенными правами доступа RLS.