При адаптации типовой конфигурации «1С:Управление торговлей 10.3» под нужды бизнеса часто возникает необходимость вывода дополнительных данных в интерфейс подбора товаров. Например, при работе с габаритными грузами логично видеть Длину, Ширину и Высоту непосредственно в момент выбора номенклатуры в документ. Однако в архитектуре «Обычных форм» добавление реквизита в метаданные — это лишь малая часть задачи. Рассмотрим подробно, почему колонки могут не отображаться и как правильно настроить форму подбора.
Прежде всего, проанализируем структуру данных. Чтобы информация отображалась в подборе, она должна существовать в базе данных. Предположим, мы уже добавили реквизиты Длина, Ширина и Высота в справочник Номенклатура. Однако для того, чтобы эти данные корректно передавались и отображались в самой обработке подбора, нам необходимо убедиться, что соответствующие реквизиты добавлены в табличную часть НоменклатураДляПодбора самой обработки ПодборНоменклатуры.
Важный нюанс: если вы планируете использовать эти данные только для визуального контроля, достаточно добавить их в источник данных списка. Если же данные должны «пробрасываться» дальше в документ, они обязательны в ТЧ обработки.
Одной из главных трудностей для начинающего разработчика в УТ 10.3 является структура формы обработки ПодборНоменклатуры. Выясним причину: при открытии формы в Конфигураторе мы видим далеко не все элементы управления. Это связано с использованием многостраничных панелей.
Разберем по шагам, как найти нужную таблицу:
ПанельНоменклатураДляПодбора и кликните по нему дважды.После этого вы увидите, что панель состоит из нескольких закладок: «По справочнику», «По остаткам», «По остаткам и ценам». В большинстве случаев пользователи работают в режиме «По справочнику». Именно на этой закладке расположено табличное поле, в которое нужно добавить новые колонки.
В обычных формах 1С существует автоматизированный механизм привязки реквизитов к элементам формы. Чтобы не создавать колонки вручную и не прописывать путь к данным (DataPath) для каждой из них, воспользуемся стандартным инструментом:
Щелкните правой кнопкой мыши по табличному полю на нужной закладке панели и выберите пункт Размещение данных. В появившемся списке отметьте галочками ваши новые реквизиты (Длина, Ширина, Высота). Система автоматически создаст колонки и свяжет их с соответствующими полями источника данных (например, СправочникСписок.Длина).
Проанализируем ситуацию: иногда даже после добавления колонок они остаются пустыми. Это происходит, если подбор работает в режиме «По остаткам и ценам». В этом режиме данные в таблицу подбора попадают не напрямую из справочника, а формируются динамическим запросом в модуле обработки.
Посмотрим на пример того, как нужно модифицировать запрос в коде обработки. Нам необходимо найти процедуру, отвечающую за заполнение таблицы (обычно это связано с ПостроителемОтчета или прямым запросом). В текст запроса нужно добавить выборку наших полей:
// В тексте запроса добавляем обращение к реквизитам номенклатуры
ТекстЗапроса = "ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| Номенклатура.Длина КАК Длина,
| Номенклатура.Ширина КАК Ширина,
| Номенклатура.Высота КАК Высота,
| ... ";
После модификации запроса убедитесь, что при обходе результата запроса данные переносятся в строку таблицы значений, которая служит источником для формы:
НоваяСтрока = ТаблицаОстатков.Добавить();
НоваяСтрока.Номенклатура = Выборка.Номенклатура;
НоваяСтрока.Длина = Выборка.Длина;
НоваяСтрока.Ширина = Выборка.Ширина;
НоваяСтрока.Высота = Выборка.Высота;
Часто разработчик выполняет все действия верно, но на рабочей базе колонки так и не появляются, хотя в «чистой» копии всё работает. Проанализируем, почему так происходит. Система 1С сохраняет индивидуальные настройки формы для каждого пользователя (ширину колонок, их порядок и видимость).
Решение проблемы:
Это принудит систему перечитать структуру колонок из Конфигуратора, игнорируя старые сохраненные настройки пользователя. Это критически важный шаг, который часто упускают из виду.
Рассмотрим совет опытных специалистов: иногда добавление габаритов напрямую в карточку номенклатуры — не самое лучшее решение. Если один и тот же товар может продаваться в разных упаковках (штуки, коробки, паллеты), размеры логичнее хранить в справочнике ЕдиницыИзмерения, который подчинен номенклатуре. В типовой УТ 10.3 в единицах измерения уже есть поля для объема и веса. Добавление туда линейных размеров позволит системе более гибко рассчитывать логистические параметры, если это потребуется в будущем.
Для успешного вывода колонок в подборе УТ 10.3 необходимо:
Справочник.Номенклатура и Обработка.ПодборНоменклатуры.ПанелиНоменклатураДляПодбора.