Понадобилось мне разобрать один весьма немаленький запрос, возвращавший выборку в 40 полей. Почему он был таков — вопрос к автору, а мне довелось исследовать результаты его работы. И вот чтобы понять происхождение некоего поля, стал я запрос копать. И в этом объединении несколько раз сбивался, считая нолики по порядку, т.к. нужное мне значение должно было быть нулевым не во всех участниках объединения. Когда озверение достигло максимума, я написал эту обработку.
Как применять: с помощью конструктора запроса или ещё как получить текст объединения, вставить в текстовое поле и нажать волшебную кнопку. Запрос будет разложен по полям в виде таблицы. В ячейках будут поля, в колонках — запросы. сам текст запросов будет в подвале. При двойном щелчке по ячейке открывается многострочный просмотр.
Использует схему запроса, поэтому рекомендуется к использованию на той же конфигурации, откуда родом изучаемый запрос, т.к. интерпретатор схемы обрабатывает предопределённые значения при разборе запроса, и если их нет, фатально обижается.
Надеюсь, эта простая штуковина кому-нибудь пригодится. Думал её доработать до полноценного показа, «откуда есть пошло это значение», но руки не дошли, выкладываю так.
Если пользуетесь ИР, то в консоле запросов можно построить дерево запроса и тыкнуть в нужнуый запрос объединения. Псевдонимы полей будут вида Поле1, Поле2, Поле3… что тоже позвоит решить эту задачу.
(1) Не знал. Ну, я ёж-птица-гордая, фактически свои ИР себе делаю) Значит, потребность и правда была не у меня одного)
А если пересобрать текст запроса конструктором запроса ИР, то у каждой части объединения появятся псевдонимы полей. Но надо понимать, что они могут и запутать в некоторых случаях, если после ручного изменения порядка полей в тексте не пересобрать запрос снова. И кстати, конструктор запроса ИР не требует родных метаданных, т.е. может перестраивать запросы с использованием чужих метаданных, но конечно с некоторыми ограничениями.
Да, приписка синонимов полезная штука, с ними эта проблема не существует.
Сергей, кстати, а в ИР как делали — через схему запроса, или парсили текст своими силами? Насколько знаю, ИР появился до этой фичи платформы.
(4) Кажется ответ напрашивается сам собой при «конструктор запроса ИР не требует родных метаданных». Действительно, конструктор запроса ИР появился задолго до схемы запроса в платформе и благодаря собственной гибридной грамматике поддерживает не только язык запросов 1С, но и большинство существующих диалектов TSQL (полезно для ADO запросов). Он работает и на 1С 8.2.13+. Он позволяет менять диалект и вариант английский/русский для диалекта 1С на входе и выходе конструктора. Также он сохраняет комментарии в отличие от штатных конструкторов и схемы запроса. Сама грамматика давно публикуется на основном сайте подсистемы. Сначала она использовалась только для режима «дерево запроса» в консоли запросов.
Уважаемые коллеги. Как совершенно верно заметила моя жена, я триумфально изобрёл велосипед. Все эти возможности есть в стандартном конструкторе запроса на закладке «Объединения/Псевдонимы». Так что полезность этой публикации разве только в том, чтобы запустить под УФ, или если нет под рукой консолей запросов, или посмотреть, как работают со схемами запроса средствами встроенного языка. Увы мне.
(6)
вышли в свет ИР Портативный Расширение, с каждым релизом всё юзабельнее и юзабельнее.
(7)
Уточню. ИР бывает либо Портативный либо Расширение. Это — разные варианты.