Яким чином можна розібратися в великих запитах і як подивитися, чим заповнені тимчасові

Досить часто в типових конфігураціях 1С зустрічаються дуже великі і складні для сприйняття запити. Наприклад, запит автозаповнення документа «Нарахування зарплати» може містити в собі більше 3000 рядків. Не дивлячись на те, що завдяки використанню великої кількості тимчасових таблиць він досить структурований і прозорий логічно, розбиратися в ньому досить складно через дуже великої кількості рядків.

Існують 2 принципово різних методу розбору таких запитів.

Метод перший - використання консолі запитів

Стандартну консоль запитів можна взяти на диску ІТС. На різних сторонніх сайтах зустрічаються більш зручні версії.

Консоль запитів дозволяє створювати і налагоджувати запити в режимі 1С: Підприємства, без запуску 1С: Конфігуратора. Викачуємо файл, разархивируем його і відкриваємо через меню 1С: Підприємства "Файл - Відкрити».

Для того щоб розібратися у великій запиті за допомогою консолі запитів, розбийте запит на частини. Це дозволить відразу відстежувати результат виконання кожної частини. Найпростіше розбиратися в запиті, якщо дотримуватися деревоподібну структуру, відповідну структурі самого запиту і давати імена цим підзапитів за найменуваннями вкладених таблиць, розбираємо в цій частині запиту. Великий мінус консолі запитів: потрібна передача параметрів запиту, при цьому іноді параметром запиту може виявитися список значень або таблицю значень.

Метод другий - для читання проміжних результатів запиту

Використовується функція виду:

Функція ПолучітьДанние (Запит, ІмяТабліци)
ДанниеТабліци = Новий Запит;
ДанниеТабліци.МенеджерВременнихТабліц = Запрос.МенеджерВременнихТабліц;
ДанниеТабліци.Текст =
"Вибрати *
| З "+ ІмяТабліци +"
| ";
Повернення ДанниеТабліци.Виполніть (). Вивантажити ();
КонецФункціі

Її рекомендують розміщувати в зовнішньому модулі. Таким чином до неї можна буде звертатися з будь-якого отлаживаемого запиту, вмонтувавши в потрібне місце модуля рядок виду:

втІмя = ДанниеЗапроса (Запит, "втІмя");

Тепер, якщо в табло повідомлень ввести це втІмя і натиснути F2, то відкриється вікно зі значеннями цієї тимчасової таблиці.

Можна так само не вбудовувати в модуль рядок виклику функції, а прямо в табло налагодження написати звернення виду:

Знову натискаємо F2, позиційований в табло на цьому зверненні, відкриється вміст таблиці.

PS
Консоль запитів для 8.1 в файлі.