Как исключить пустые строки материалов в параметрической спецификации 1С:ERP при незаполненных свойствах продукции

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Промышленность, строительство и АПК
← На главную

При работе с параметрическими ресурсными спецификациями в 1С:ERP Управление предприятием часто возникает ситуация, когда определенный материал должен входить в состав изделия только при выборе конкретной характеристики (свойства). Например, если у продукции выбрана «Насадка 1», материал должен списаться, а если насадка не предусмотрена — строка в Заказе на производство и Этапе производства появляться не должна. Однако стандартная настройка часто приводит к тому, что система создает «пустую» строку с количеством 1, что вносит путаницу в производственный учет. Рассмотрим подробно, как решить эту задачу с помощью встроенных инструментов параметризации.

Анализ проблемы: почему появляется лишняя строка

В системе 1С:ERP ресурсная спецификация является основным «шаблоном» для производства. Когда мы используем автоподбор материала, система пытается сопоставить свойства продукции с номенклатурой из справочника. Если в спецификации указано фиксированное количество (например, 1 шт.), но не задано жесткое условие на использование этой строки, система считает, что материал нужен всегда, просто его конкретный «вид» определится позже. Если свойство в заказе не заполнено, механизм автоподбора не находит соответствия, но сама строка материала остается в документе с пустым значением номенклатуры и количеством по умолчанию.

Решение 1: Использование поля «Условие» для строки материала

Проанализируем наиболее эффективный способ — настройку логического условия для всей строки материала. В ресурсной спецификации на вкладке «Материалы и работы» для каждой позиции предусмотрена возможность настройки параметров. Разберем по шагам, как это сделать:

  1. Откроем нужную ресурсную спецификацию и перейдем на вкладку материалов.
  2. Выделим строку с материалом (например, ту самую «Насадку») и нажмем на кнопку настройки параметризации (обычно это иконка с формулой рядом с количеством или выбором материала).
  3. Найдем поле «Условие». Это важнейший реквизит, который определяет, попадет ли строка в производственные документы вообще.
  4. В редакторе выражений нам необходимо прописать логику. Если мы хотим, чтобы строка появлялась только при заполненном свойстве «Насадка», воспользуемся проверкой на заполнение.

Посмотрим на пример логического выражения в поле «Условие»:

ЗначениеЗаполнено(Свойство.Насадка)

Если результатом этого выражения будет Истина, строка включится в этап производства. Если Ложь (свойство не выбрано) — строка будет полностью исключена, и «пустая» позиция с количеством 1 не появится.

Решение 2: Настройка формулы количества через тернарный оператор

Если по каким-то причинам использование поля «Условие» неудобно, мы можем управлять количеством материала. Проанализируем ситуацию: если насадка не выбрана, количество должно быть равно нулю. Для этого в поле «Количество» выберем вариант «Расчет по формуле».

В конструкторе формул можно использовать тернарный оператор ?(). Рассмотрим структуру формулы:

?(ЗначениеЗаполнено(Свойство.Насадка), 1, 0)

Разберем, как работает эта формула:

Важный нюанс: в некоторых релизах 1С:ERP, если формула возвращает 0, система может выдать предупреждение или все равно оставить строку с нулевым количеством. Именно поэтому использование «Условия» (Решение 1) является более приоритетным и «чистым» методом с точки зрения корректности данных в Этапе производства.

Почему в формулах не видны свойства (реквизиты) изделия?

Выясним причину распространенной ошибки, когда программист или аналитик открывает редактор формул, но во вкладке «Реквизиты изделия» видит только стандартное Количество. Чтобы ваши дополнительные реквизиты (характеристики) стали доступны для расчетов, необходимо проверить следующие настройки:

  1. Вид номенклатуры: Перейдем в настройки вида номенклатуры выпускаемой продукции. Убедимся, что дополнительные реквизиты добавлены именно в раздел «Характеристики», и для них включено использование в формулах.
  2. Привязка спецификации: Спецификация должна быть создана для конкретной номенклатуры или вида номенклатуры, у которого эти свойства определены. Если спецификация «общая» и не привязана к контексту изделия, система не «знает», какие свойства ей предлагать.
  3. Назначение свойств: Проверьте, чтобы у свойства стояла галочка «Доступно при настройке спецификации».

Решение 3: Метод «Фиктивного значения»

Иногда возникают сложности с логикой NULL или пустыми значениями в базе данных. В таком случае мы рекомендуем административный метод обхода проблемы. Разберем его:

В справочник значений свойства «Насадка» добавим явный элемент «Не требуется». В таблице настройки автоподбора материала в спецификации для значения «Не требуется» мы просто не указываем номенклатуру (оставляем поле пустым) или указываем условие, при котором количество будет равно 0. Это заставляет пользователя в Заказе на производство явно указывать отсутствие элемента, что минимизирует риск того, что система «забудет» рассчитать строку или рассчитает её неверно.

Технические тонкости использования функции ЗначениеЗаполнено()

При написании формул в последних версиях 1С:ERP следует учитывать, что синтаксис может отличаться в зависимости от того, используете ли вы стандартный конструктор или пишете код вручную. Если система выдает ошибку «Поле значение не заполнено» при сравнении с пустой строкой, всегда используйте встроенную функцию ЗначениеЗаполнено(), так как она корректно обрабатывает и пустые ссылки, и неопределенные значения.

Посмотрим на более сложный пример, если количество насадок зависит от другого параметра изделия:


Если ЗначениеЗаполнено(Свойство.Насадка) Тогда
    Результат = Свойство.КоличествоГнезд * 1;
Иначе
    Результат = 0;
КонецЕсли;

В данном случае мы используем многострочный расчет (доступен в некоторых версиях расширенного редактора формул), что позволяет гибко управлять потребностью в материалах.

Резюме по настройке

Подводя итог, для корректного исключения пустых строк материалов в 1С:ERP следует придерживаться следующего алгоритма:

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

← На главную