В современных редакциях конфигураций на базе платформы 1С:Предприятие 8.3, таких как «Управление торговлей 11.4», «ERP 2» или «Комплексная автоматизация», пользователи и разработчики часто сталкиваются с изменением привычного поведения справочника Номенклатура. Одной из наиболее острых проблем является невозможность выбора группы (папки) номенклатуры в окне выбора, особенно при работе с внешними инструментами, такими как консоль запросов. Рассмотрим подробно, почему это происходит и как настроить систему для комфортной работы.
Для начала разберем ситуацию, которая сложилась в последних обновлениях. Начиная с версий 11.4.12.х, разработчики 1С внедрили новые стандарты эргономики. В результате стандартная форма выбора, которая раньше позволяла переключаться между иерархией и списком, была заменена специализированной формой подбора. Это было сделано для оптимизации работы менеджеров по продажам: теперь в одном окне можно видеть не только список товаров, но и текущие остатки, цены, а также использовать мощные фильтры по свойствам и категориям.
Однако для технических специалистов и администраторов системы это нововведение создало определенные трудности. Когда мы пытаемся выбрать значение параметра в консоли запросов и указываем тип данных СправочникСсылка.Номенклатура, система автоматически открывает форму, назначенную в метаданных как «Основная форма выбора». В новых релизах эта форма жестко ориентирована на выбор конкретных элементов, и возможность выбора групп в ней часто заблокирована на программном уровне через свойство ВыборГруппИЭлементов.
Прежде чем переходить к сложным манипуляциям, проверим стандартные настройки отображения. Посмотрим, как можно изменить вид окна непосредственно в открытой форме справочника:
Номенклатура.Проанализируем результат: если в левой части окна появилось дерево групп, попробуем нажать на нужную папку правой кнопкой мыши. В некоторых случаях именно контекстное меню позволяет выполнить действие «Выбрать», даже если основная кнопка в нижней части формы недоступна для папок. Если же этот способ не помогает, значит, форма открыта в режиме «Только элементы», и нам потребуются другие методы.
Выясним, существуют ли системные настройки, влияющие на поведение формы номенклатуры. В 1С:УТ 11 существует раздел, управляющий тем, как система взаимодействует с данными справочника. Пройдем по следующему пути:
Здесь мы можем поэкспериментировать с отключением «Расширенного поиска» или изменением параметров полнотекстового поиска. В ряде случаев переключение этих опций заставляет систему использовать более простую («стоковую») форму списка вместо перегруженной формы подбора, что возвращает возможность выбора групп.
Рассмотрим наиболее частый сценарий, когда группа номенклатуры нужна для построения отчета в консоли запросов. Если стандартная форма выбора упорно не дает выбрать папку, воспользуемся профессиональными хитростями.
Использование продвинутых консолей запросов. Стандартные или старые консоли часто имеют ограничения при работе с управляемыми формами. Проанализируем возможности современных консолей (например, с портала Инфостарт или входящих в состав инструментов разработчика). В таких консолях реализована возможность установки типа параметра как Список значений.
Разберем алгоритм действий в продвинутой консоли:
Номенклатура как Список значений.Номенклатура, где включен режим иерархии.Если нам критически важно отобрать данные по иерархии, а выбрать группу никак не получается, мы можем изменить сам подход к написанию запроса. Вместо того чтобы передавать группу в параметр, мы можем временно использовать условие по коду или наименованию (хотя это и не является хорошим тоном в разработке), либо использовать оператор В ИЕРАРХИИ.
Посмотрим на пример запроса, который поможет нам, если мы не можем выбрать параметр:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Товар,
Номенклатура.Код КАК Код
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В ИЕРАРХИИ(&ГруппаНоменклатуры)
Для того чтобы заполнить параметр &ГруппаНоменклатуры, если форма выбора не работает, можно использовать механизм «Получить ссылку». В обычном списке номенклатуры найдем нужную папку, нажмем Shift+Alt+L (или кнопку «Получить ссылку» в меню «Сервис»), скопируем буквенно-цифровой код ссылки и вставим его в поле параметра консоли, если она поддерживает ввод уникальных идентификаторов (UUID).
Проанализируем ситуацию с точки зрения архитектуры. В конфигурациях на управляемых формах существует понятие «Основная форма». Если в конфигураторе для справочника Номенклатура в качестве основной формы выбора назначена сложная форма подбора, то она будет открываться везде: и в документах, и в консоли запросов, и в обработках.
Чтобы вернуть совсем «чистый» вид списка, как это было в ранних версиях, программисту пришлось бы вносить изменения в конфигурацию, создавая свою форму и назначая ее основной, либо вызывая ее программно. Рассмотрим пример того, как это выглядит в коде при вызове формы:
ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.ГруппыИЭлементы);
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыВыбора, Элемент);
Поскольку в консоли запросов мы не можем напрямую изменить код вызова формы выбора, наиболее рациональным решением остается именно смена используемого инструмента (консоли) на более функциональный или использование метода копирования ссылок.
Мы подробно разобрали, почему в 1С:УТ 11.4 окно справочника номенклатуры ведет себя непривычным образом. Подведем итоги нашего исследования:
Таким образом, комбинируя визуальные настройки системы и используя профессиональные инструменты отладки, можно успешно решать задачи любой сложности, несмотря на интерфейсные ограничения современных конфигураций 1С.