В практике розничной и оптовой торговли одеждой или сувенирной продукцией часто возникает задача: товар может отгружаться как в стандартной бесплатной упаковке, так и в платной подарочной коробке. При этом заказчик выдвигает жесткие требования к учету:
На складе одежда и подарочные коробки хранятся и учитываются раздельно.
В документах для покупателя (печатных формах) должна фигурировать одна строка: «Кофточка в подарочной коробке» с единой суммарной стоимостью (цена товара плюс фиксированная наценка за коробку).
Не допускается дублирование номенклатурных позиций (не создавать отдельные карточки «Товар» и «Товар в коробке») и ручное переназначение цен на каждый комплект.
Товар ведется в разрезе характеристик (размеров), что усложняет применение типовых статических механизмов.
Разберем, почему стандартные инструменты не всегда подходят под эти требования, и рассмотрим практические варианты решения задачи в конфигурации «1С:Управление нашей фирмой».
Ограничения типового механизма наборов и комплектации
Проанализируем типовые средства, которые первыми приходят на ум при постановке такой задачи:
Документ «Производство» с видом операции «Сборка» (комплектация). Предлагается предварительно собирать готовую продукцию из единицы одежды и коробки. Однако такой подход требует обязательного создания отдельной позиции номенклатуры (например, «Кофточка в коробке»). Если у товара десятки моделей и по 5–6 размеров у каждой, номенклатурный справочник раздувается вдвое. Кроме того, на сборку необходимо оформлять постоянные складские документы, что создает избыточную нагрузку на персонал.
Спецификации номенклатуры. Спецификация позволяет описать состав изделия, однако при ведении учета по характеристикам (размерам) потребуется создавать либо спецификацию под каждую характеристику, либо дублировать номенклатуру, что заказчик делать отказывается.
Штатный механизм «Наборы и комплекты». В 1С:УНФ присутствует типовая опция наборов. Она позволяет рассчитывать цену динамически («Складывается из цен комплектующих») и выводить в печатную форму только набор без детализации строк. Главная проблема заключается в том, что состав типового набора жестко фиксирован. Если товар имеет характеристики, набор привязывается к конкретной характеристике. Создать универсальный набор «Одежда произвольного размера + Коробка» штатными средствами без дублирования карточек невозможно.
Вариант 1. Учет отдельными строками с модификацией печатной формы (наименее затратный путь)
Рассмотрим самый безопасный с точки зрения учета вариант, не требующий вмешательства в типовые механизмы проведения документов и расчета себестоимости.
Разберем реализацию по шагам:
Заполнение документов: Менеджер при оформлении документа ЗаказПокупателя или РасходнаяНакладная добавляет одежду штатным образом (с выбором характеристики и цены), а следующей строкой добавляет номенклатуру «Подарочная коробка» с фиксированной ценой 50 рублей.
Складской учет: Проведение документов осуществляется полностью стандартным кодом конфигурации. Списываются нужные размеры одежды и точное количество коробок, себестоимость рассчитывается корректно по регистру Запасы.
Доработка печатных форм: Создаем внешнюю печатную форму (ВПФ) или расширение для печатных документов (УПД, ТОРГ-12, Счет покупателю). В алгоритме формирования таблицы печати программно находим строки с упаковкой, присоединяем их стоимость к предшествующей строке с товаром и дополняем наименование текстом «(в подарочной коробке)», а саму сервисную строку с коробкой скрываем.
Преимущество этого метода: нулевой риск поломки партионного учета, резервирования и взаиморасчетов при обновлениях конфигурации.
Вариант 2. Добавление реквизита упаковки через расширение
Если заказчик категорически против наличия второй строки в документе даже на этапе экранного ввода менеджером, реализуем доработку через механизм расширений конфигурации без снятия конфигурации с поддержки.
Разберем логику доработки:
Добавление реквизита: В табличную часть Запасы документов ЗаказПокупателя и РасходнаяНакладная добавляем реквизит Упаковка с типом ссылки на справочник Номенклатура (с отбором по категории или группе «Тара и упаковка»).
Пересчет цены: В модуле формы в обработчике события ПриИзменении для нового поля пишем алгоритм, корректирующий итоговую цену и сумму строки при выборе платной коробки.
Доработка движений регистра: В расширении переопределяем процедуру проведения документа ОбработкаПроведения для регистра накопления Запасы. При формировании записей расхода проверяем заполненность реквизита Упаковка. Если коробка указана, формируем дополнительную запись расхода по номенклатуре упаковки на складе списания.
Посмотрим на пример формирования дополнительного движения по упаковке в расширении расходной накладной:
// В обработке проведения Расходной накладной (после типовых движений)
Для Каждого СтрТаблицы Из ТабличнаяЧастьЗапасы Цикл
Если ЗначениеЗаполнено(СтрТаблицы.Упаковка) Тогда
Движение = Движения.Запасы.ДобавитьРасход();
Движение.Период = Дата;
Движение.Организация = Организация;
Движение.СтруктурнаяЕдиница = СтрТаблицы.СтруктурнаяЕдиница; // Склад списания
Движение.Номенклатура = СтрТаблицы.Упаковка;
Движение.Количество = СтрТаблицы.Количество;
КонецЕсли;
КонецЦикла;
При использовании этого варианта важно помнить, что аналогичные движения потребуется учесть в механизме резервирования заказов, а также при проведении документов возврата товаров от покупателя.