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