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