Я раньше боялся схемы запросов. Для меня это какая-то неведомая технология, где обычный текст запихивается в сложный объект и с ним там работаешь. Я старательно избегал его и для редактирования запросов использовал СтрЗаменить и конкантенацию строк.

Но редактирование текста ошибкоемко - легко можно развалить запрос, особенно когда используются сложные условия. Да и редактировать текст не всегда может быть удобно удобно. Конечно, нужно использовать параметры в запросе, а не просто менять текст, например, так неправильно:


"ВЫБРАТЬ
| Номенклатура.Наименование  КАК Наименование ,
| Номенклатура. " + ИмяПоляКод + " КАК КодАртикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";

а вот так правильно:


ТекстЗапроса =
"ВЫБРАТЬ
| Номенклатура.Наименование  КАК Наименование,
| &ИмяПоляКод  КАК КодАртикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";

ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПоляКод", "Номенклатура." + ИмяПоляКод);

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

Я с легкой завистью смотрел на коллег, которые используют Схему запросов. Но самому было как-то страшновато это пробовать. Да и зачем - если через замену строк все так же будет работать, да и выглядит понятнее. Так я себя оправдывал.

И вот на текущем проекте настало время. Нужно редактировать запрос так, что через СтрЗаменить и параметры работает и выглядит плохо. И я начал использовать СхемаЗапросов. Было страшно…

Причем я использовал только замену условий сортировки и параметров, а сам текст запроса заполнил изначально как обычно. И вот тут мне прям понравилось - это гораздо проще для редактирования и программной обработки запроса. Сначала, кажется, сложно и непонятно, но уже относишься к этому проще.

Может быть неправильный термин - боюсь технологию, но я за собой такое замечал, что не хочу что-то использовать, чтобы не тратить силы на изучение или не бороться с последствиями, если что-то пойдет не так. Думаешь, что вот сейчас разбираться в этом, а потом если что-то пойдет не так, но ошибку очень долго искать. Гораздо проще использовать свой Золотой молоток.

И вот такие моменты, где я выбирал инструмент попроще вместо сложного - у меня остаются в памяти. Я к ним иногда примеряюсь - смогу ли я сейчас его применить?

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

Стандарт: Оформление текстов запросов Статья: Объектная модель запроса Схема запросов Антипаттерн: Золотой молоток

#Разработка