Оформление кода модулей с помощью областей

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

Модуль формы

Код модуля формы должен быть разграничен на следующие области:

Модуль объекта и менеджера

Общий модуль

Модуль команды

 

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

Разработчик может объединять код и в другие дополнительные блоки-области, например «Проведение», «РаботаСЭЦП» и пр.

Дополнительную информацию про оформление кода областями можно получить в этом разделе стандартов на ИТС.

Использование класса «ПостроительЗапроса» для динамического формирования теста запроса

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

Разберём, как его можно использовать для динамического формирования текста запроса.

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

К сожалению, мне не удалось применить «Построитель запроса» для добавления полей выборки.

Для того, чтобы добавить новую секцию «ГДЕ» или дополнительные условия фильтрации, можно использовать следующий пример кода:

В итоге, текст нового запроса приобрёл следующий вид:

Таблица значений в качестве параметра запроса

Рассмотрим следующую ситуацию:

Имеется запрос, принимающий в качестве параметра таблицу значений.

Колонки таблицы значений имеют ссылочный тип. Требуется в запросе выбирать вложенные реквизиты колонок.

metadannye

Проблема:

При выборе поля таблицы значений

конструктор запроса не открывается, выдавая ошибку:

error

Решение:

  1. Выбирать поле свойства в самом первом запросе пакета:
  2. Использовать функцию языка запросов «ВЫРАЗИТЬ»: