АРМ снабжения и закупок в 1С:ERP — это рабочее место, в котором менеджеры снабжения и закупок видят одни и те же потребности: заказы на внутреннее потребление и ремонт, остатки, резервы, товары в пути, — и прямо оттуда создают заказы поставщикам или на перемещение. Если типовых рабочих мест не хватает, такой АРМ делают внешней обработкой или расширением: база остаётся на поддержке, а процесс перестаёт жить в Excel.

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

Когда типового рабочего места мало

В ERP есть штатные механизмы обеспечения: формирование заказов по потребностям, состояние обеспечения, рабочие места менеджера по закупкам. Свой АРМ нужен, когда:

  • потребности приходят из разных документов (внутреннее потребление, ремонты, производство), а снабженцы сводят их вручную;
  • нужны свои отборы — сегменты номенклатуры, направления деятельности, склады получателей;
  • снабжение и закупки — разные отделы с разными правами, но работают с одними позициями;
  • нужны массовые операции: сдвинуть даты, отменить строки, заменить аналогом, зарезервировать.
АРМ снабжения 1С:ERP: разрозненные таблицы сводятся в одно рабочее место
АРМ снабжения 1С:ERP: разрозненные таблицы сводятся в одно рабочее место

Структура АРМ: что показать в одном окне

Шапка и отборы

  • Период — по дате потребности или документа.
  • Базовые отборы: номенклатура и характеристики, статус заказов, склад отправителя и получателя, наличие связанных поступлений.
  • Пользовательские отборы: сегменты номенклатуры, направления деятельности. Сохраняются для каждого пользователя между сеансами.

Дерево потребностей

Верхний уровень — документ-потребность (заказ на внутреннее потребление, заказ на ремонт), ниже — строки товаров. Дерево удобно тем, что одну строку можно развернуть до связанных заказов поставщикам и поступлений.

Колонки по группам

ГруппаСоставКому важна
СлужебныеФлажок выбора, номерВсем
НоменклатураНоменклатура, характеристика, обособленное обеспечениеВсем
СтатусыСтатус документа, отменённые строки, вариант обеспеченияСнабжение
КоличестваЗаказано, доступно, в резерве, обеспечено, не обеспеченоСнабжение и закупки
ЛогистикаДаты отгрузки и поступления, товары в пути, остатки по складамЗакупки
АналитикаПлан закупок, направление деятельности, сегмент, комментарийРуководитель

Группы колонок пользователь включает и выключает сам — экран не перегружается, а настройка запоминается.

Роли и права

РольЧто делает в АРМ
Менеджер снабженияРаботает с внутренними заказами, резервирует, оформляет перемещения
Менеджер закупокСоздаёт заказы поставщикам, работает с планами закупок
РуководительСмотрит всё, утверждает замены и отмены

Дополнительно: запрет на изменение чужих заказов, разные права на создание документов, скрытие кнопок по ролям. Сами права на документы остаются типовыми — АРМ только не показывает то, что пользователю недоступно.

Код: каркас обработки

Ниже ключевые фрагменты для обработки на управляемой форме в конфигурации на БСП. Имена реквизитов табличных частей ERP сверяйте со своим релизом.

Загрузка дерева потребностей

1С
&НаСервере
Процедура ЗаполнитьДеревоПотребностей()

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Товары.Ссылка КАК Документ,
	|	Товары.Ссылка.Дата КАК Дата,
	|	Товары.Ссылка.Статус КАК Статус,
	|	Товары.Номенклатура КАК Номенклатура,
	|	Товары.Характеристика КАК Характеристика,
	|	Товары.Количество КАК Количество,
	|	Товары.Отменено КАК Отменено
	|ИЗ
	|	Документ.ЗаказНаВнутреннееПотребление.Товары КАК Товары
	|ГДЕ
	|	Товары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	|	И Товары.Ссылка.Проведен
	|	И (&БезОтбораНоменклатуры ИЛИ Товары.Номенклатура В (&Номенклатура))
	|ИТОГИ ПО
	|	Документ";
	Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Период.ДатаНачала));
	Запрос.УстановитьПараметр("КонецПериода", КонецДня(Период.ДатаОкончания));
	Запрос.УстановитьПараметр("БезОтбораНоменклатуры", ОтборНоменклатура.Количество() = 0);
	Запрос.УстановитьПараметр("Номенклатура", ОтборНоменклатура.ВыгрузитьЗначения());

	Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
	ЗначениеВРеквизитФормы(Дерево, "ДеревоПотребностей");

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

Реквизит формы ДеревоПотребностей — типа ДеревоЗначений с колонками под запрос. Остатки, резервы и товары в пути добавляются в тот же запрос соединением с виртуальными таблицами нужных регистров; какие именно регистры брать, зависит от схемы обеспечения в вашей ERP. Заказы на ремонт и другие источники объединяются через ОБЪЕДИНИТЬ ВСЕ.

Сохранение пользовательских отборов

1С
&НаСервере
Процедура СохранитьНастройкиАРМ()

	Настройки = Новый Структура;
	Настройки.Вставить("Сегменты", ОтборСегменты.ВыгрузитьЗначения());
	Настройки.Вставить("Направления", ОтборНаправления.ВыгрузитьЗначения());
	Настройки.Вставить("ВидимыеГруппыКолонок", ВидимыеГруппыКолонок.ВыгрузитьЗначения());

	ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("АРМСнабжения", "НастройкиПользователя", Настройки);

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

Чтение — ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить при создании формы. Настройки хранятся для каждого пользователя отдельно.

Кнопки по ролям

1С
&НаСервере
Процедура НастроитьДоступностьКоманд()

	ЭтоЗакупки = Пользователи.РолиДоступны("ДобавлениеИзменениеЗаказовПоставщикам");
	Элементы.СоздатьЗаказПоставщику.Видимость = ЭтоЗакупки;
	Элементы.СоздатьПеремещение.Видимость = Не ЭтоЗакупки;

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

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

Создание заказа поставщику по отмеченным строкам

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

Внедрение по этапам

ЭтапЧто делаемРезультат
1Обследование, «как есть / как надо», ТЗСогласованные сценарии и роли
2Каркас АРМ: дерево, отборы, колонкиКлючевые пользователи смотрят реальные данные
3Создание заказов и массовые операцииПервые заказы из АРМ
4Аналитика и отчётыОтчёты под задачи руководителей
5Обучение, инструкцияОтдел работает в АРМ
6Опытная эксплуатацияИсправление ошибок, доработки по обратной связи

Типичные ошибки проекта

  • Всё сразу. Попытка автоматизировать все сценарии одним релизом. Начните с формирования потребностей и создания заказов, остальное — следующими этапами.
  • Никто не пользуется. АРМ делали без снабженцев. Подключайте двух-трёх активных сотрудников с первого прототипа — они потом убеждают остальных.
  • Тяжёлый запрос на открытии. АРМ открывается минуту, потому что тянет данные за год. Ставьте период по умолчанию коротким и считайте остатки только по найденной номенклатуре.
  • Своя логика обеспечения. Пересчитывать резервы и статусы в обход механизмов ERP — путь к расхождениям. АРМ должен вызывать типовые механизмы, а не дублировать их.
  • Не те отчёты. Руководителю нужны итоги, линейному сотруднику — детализация. Отчёты делайте на СКД с вариантами под каждую роль.
АРМ снабжения — это не новая логика учёта, а удобное окно к логике ERP. Чем меньше в нём своих расчётов, тем дольше он живёт.

Такие рабочие места я делаю в рамках внедрения 1С:ERP и доработки 1С, а аналитику к ним — через отчёты на СКД.

Коротко

  • АРМ снабжения в 1С:ERP собирает потребности, остатки, резервы и заказы в одном дереве с отборами.
  • Делайте его внешней обработкой или расширением — база остаётся на поддержке.
  • Разделяйте роли снабжения и закупок, сохраняйте настройки каждого пользователя.
  • Используйте типовые механизмы обеспечения ERP, а не свои расчёты.
  • Запускайте по этапам и с участием будущих пользователей.