Досить часто в типових конфігураціях 1С зустрічаються дуже великі і складні для сприйняття запити. Наприклад, запит автозаповнення документа «Нарахування зарплати» може містити в собі більше 3000 рядків. Не дивлячись на те, що завдяки використанню великої кількості тимчасових таблиць він досить структурований і прозорий логічно, розбиратися в ньому досить складно через дуже великої кількості рядків.
Існують 2 принципово різних методу розбору таких запитів.
Метод перший - використання консолі запитів
Стандартну консоль запитів можна взяти на диску ІТС. На різних сторонніх сайтах зустрічаються більш зручні версії.
Консоль запитів дозволяє створювати і налагоджувати запити в режимі 1С: Підприємства, без запуску 1С: Конфігуратора. Викачуємо файл, разархивируем його і відкриваємо через меню 1С: Підприємства "Файл - Відкрити».
Для того щоб розібратися у великій запиті за допомогою консолі запитів, розбийте запит на частини. Це дозволить відразу відстежувати результат виконання кожної частини. Найпростіше розбиратися в запиті, якщо дотримуватися деревоподібну структуру, відповідну структурі самого запиту і давати імена цим підзапитів за найменуваннями вкладених таблиць, розбираємо в цій частині запиту. Великий мінус консолі запитів: потрібна передача параметрів запиту, при цьому іноді параметром запиту може виявитися список значень або таблицю значень.
Метод другий - для читання проміжних результатів запиту
Використовується функція виду:
Функція ПолучітьДанние (Запит, ІмяТабліци)
ДанниеТабліци = Новий Запит;
ДанниеТабліци.МенеджерВременнихТабліц = Запрос.МенеджерВременнихТабліц;
ДанниеТабліци.Текст =
"Вибрати *
| З "+ ІмяТабліци +"
| ";
Повернення ДанниеТабліци.Виполніть (). Вивантажити ();
КонецФункціі
Її рекомендують розміщувати в зовнішньому модулі. Таким чином до неї можна буде звертатися з будь-якого отлаживаемого запиту, вмонтувавши в потрібне місце модуля рядок виду:
втІмя = ДанниеЗапроса (Запит, "втІмя");
Тепер, якщо в табло повідомлень ввести це втІмя і натиснути F2, то відкриється вікно зі значеннями цієї тимчасової таблиці.
Можна так само не вбудовувати в модуль рядок виклику функції, а прямо в табло налагодження написати звернення виду:
Знову натискаємо F2, позиційований в табло на цьому зверненні, відкриється вміст таблиці.
PS
Консоль запитів для 8.1 в файлі.