Как в 1С:Управление торговлей 11 определить, ведется ли учет номенклатуры по характеристикам?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Архитектура хранения настроек характеристик

В конфигурациях на базе типовой архитектуры признак использования характеристик не является булевым значением. Это связано с тем, что система поддерживает несколько различных вариантов детализации учета. Настройка хранится в реквизите ИспользованиеХарактеристик справочника Номенклатура (или справочника ВидыНоменклатуры).

Реквизит имеет тип ПеречислениеСсылка.ВариантыИспользованияХарактеристикНоменклатуры и может принимать следующие значения:

  1. НеИспользовать — для данной номенклатуры (или вида номенклатуры) учет по характеристикам полностью отключен;
  2. ОбщиеДляВидаНоменклатуры — характеристики являются общими для всех номенклатурных позиций одного вида;
  3. ИндивидуальныеДляНоменклатуры — характеристики уникальны и задаются отдельно для каждой конкретной позиции номенклатуры;
  4. ОбщиеСДругимВидомНоменклатуры — список характеристик наследуется из другого вида номенклатуры (указывается в реквизите ВладелецХарактеристик).

Таким образом, чтобы выяснить, ведется ли учет по характеристикам, нам необходимо убедиться, что значение реквизита ИспользованиеХарактеристик не равно значению НеИспользовать.

Проверка использования характеристик в запросах

Проанализируем пример запроса, с помощью которого можно отобрать всю номенклатуру, для которой включен учет по характеристикам. Это решение удобно использовать в динамических списках, отчетах на СКД или процедурах заполнения документов.


ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ИспользованиеХарактеристик <> ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
    И НЕ Номенклатура.ЭтоГруппа

В некоторых редакциях или частных случаях настройки могут определяться на уровне вида номенклатуры без прямого дублирования в карточке товара. В таком случае обращение в условии запроса строится через связь с видом номенклатуры:


ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик <> ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
    И НЕ Номенклатура.ЭтоГруппа

Проверка значения во встроенном языке 1С

Если нам требуется проверить конкретную ссылку на номенклатуру в программном коде модуля формы или объекта, достаточно выполнить прямое сравнение со значением перечисления:


ИспользуютсяХарактеристики = (НоменклатураСсылка.ИспользованиеХарактеристик <> Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать);

Если ИспользуютсяХарактеристики Тогда
    // Выполняем алгоритм для позиций с характеристиками
Иначе
    // Характеристики не используются
КонецЕсли;

Важные системные особенности и ограничения

При реализации проверки обязательно учитываем несколько важных нюансов конфигурации:

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