Автор: Рустэм

Вложенные параметрические спецификации

В 1С:УНФ при выпуске продукции используется механизм спецификаций для управления данными о составе изделия. Спецификации могут быть параметрическими, что позволяет задавать формулы для расчета состава изделия и количества. Также есть возможность задавать параметры для вложенных спецификаций полуфабрикатов. Рассмотрим последний случай на конкретном примере, так как он имеет свои особенности.

Предприятие производит готовую продукцию – Куличи. Кулич состоит из Основы для кулича и Посыпки. Основа для кулича в свою очередь является полуфабрикатом, изготовленным на этом же предприятии, и состоит из Муки и Глазури.

В программе используется цепочка документов: Заказ покупателя (Кулич с каким-либо весом) – Заказ на производство (Кулич) – Заказ на производство (Основа для кулича). Требуется осуществить автоматический расчет количества Муки для изготовления Куличей различного веса.

Для активации функционала переходим в Настройки – Еще больше возможностей – Производство – Использовать параметрические спецификации.
Для продукции «Кулич» создаем спецификацию.
В свою очередь полуфабрикат «Основа для кулича» также обладает своей спецификацией. Здесь для материала «Мука» пока установим фиксированное значение.
Для того, чтобы количество Муки рассчитывалось в зависимости от веса Кулича, надо задать свойство «Вес» в карточке категории номенклатуры.
Создаем реквизит «Вес» с типом значения «Число».
Далее при создании характеристик номенклатуры указываем значение этого свойства.
Теперь мы можем выполнить подстановку значения этого свойства в формулу для расчета количества Муки.

В нашем случае особенностью является то, что продукция «Кулич» указывается в документе Заказ покупателя, а «Основа для кулича» – в документе Заказ на производство. Простое создание формулы не сработает, необходимо использовать функцию УправлениеСвойствами.ЗначениеСвойства().

В спецификации полуфабриката «Основа для кулича» для материала «Мука» активируем расчет количества по формуле и запишем нашу функцию.
Таким образом мы установили, что хотим получить значение какого-то свойства какого-либо объекта. Желаемым объектом является Характеристика номенклатуры из Заказа покупателя. Раскрываем группу Заказ покупателя, далее – Товары, работы, услуги, находим параметр Характеристика и с помощью мыши перетаскиваем его внутрь скобок в формуле.
Желаемым свойством является «Вес», оно указывается также внутри круглых скобок через запятую после объекта, при этом заключается в кавычки. Чтобы его найти, возвращаемся в карточку категории номенклатуры, открываем созданное нами свойство «Вес», на вкладке Прочее копируем значение поля «Имя» и вставляем в формулу расчета.
В итоге должна получиться такая запись:
Создаем Заказ покупателя на Кулич весом 200.

На основании Заказа покупателя создаем Заказ на производство Кулича.
На основании Заказа на производство создаем Заказ на производство Основы для кулича.
На вкладке Материалы заполняем значения по спецификации.
Установилось значение 200, так как в формуле мы фактически указали, что количество Муки равно количеству веса Кулича. В эту базовую формулу мы можем добавлять операции сложения, деления и т.д. Но тут снова есть особенность – если мы попытаемся нашу формулу, к примеру, поделить на 2, то программа не даст этого сделать, так как изначально характеристика может не являться числом, и она принимает значение «не определено», а что-то неопределенное поделить или сложить нельзя.

Для обхода этой проблемы в формуле используем логический оператор Если…Иначе…КонецЕсли. С помощью мыши перетаскиваем его в формулу, удаляем лишние записи, в итоге надо получить такую формулу:
#ЕСЛИ ЗначениеЗаполнено([ЗаказПокупателя.Запасы.Характеристика])
#ТОГДА УправлениеСвойствами.ЗначениеСвойства([ЗаказПокупателя.Запасы.Характеристика], "Вес_246e4055424444c482eb6c9ee3aa9d83")
#ИНАЧЕ 0
#КОНЕЦЕСЛИ

После этого можем добавлять математические операции к нашей изначальной формуле. Например, количество Муки должно быть в два раза меньше, чем вес Кулича. Тогда формула примет вид:
А в Заказе на производство установится значение 100 (продукцию надо перевыбрать в документе).
В заключении отметим еще одну особенность работы вложенных параметрических спецификаций – этот функционал работает корректно, когда в Заказе покупателя одна строчка с товаром. Если их две и более, работоспособность может нарушаться.
Была ли эта статья полезной?
ответить
Напишите нам. Мы свяжемся с вами для подбора оптимального решения.
Я даю согласие на обработку моих персональных данных и соглашаюсь с политикой конфиденциальности.