Саму завдання можна сформулювати наступним чином: потрібна можливість з відладчика (Конфігуратора) відкрити Консоль запитів в "1С: Підприємство" так, щоб в цій Консолі запитів та внесіть необхідні були заповнені текстом і параметрами цікавить нас запиту.
Для вирішення цього завдання будемо використовувати саму звичайну Консоль запитів (НЕ-геномодифіковану, без подвійного дна).
Опис рішення (для цікавих; нецікаві можуть пропустити цей розділ).
І нарешті, останнє - це параметри запиту типу ТабліцаЗначеній. Штатним чином в Консолі запитів можна задати таблицю значень в якості значення параметра. Але в реальних запитах таблиці значень в якості параметрів нехай не часто, але все-таки трапляються (наприклад, Запрос.Текст = "ВИБРАТИ * З ТЗ ЯК ТЗ "). Вирішуючи це завдання, я дізнався, що означає загадковий прапорець" В "в формі параметрів запиту в Консолі запитів (до цього мені якось особливо не було до нього справи). Виявляється, якщо встановити цей прапорець (на насправді називається він "ЕтоВираженіе"), то Консоль запитів в якості значення параметра буде використовувати результат обчислення виразу, заданого в "значення параметра" (тобто вона візьме текст з "значення параметра" і застосує до нього функцію Обчислити (). а отриманий результат буде використовувати як значення параметра запит а). Ось так сервіс! Ну що ж - тоді провернём ще раз нашу махінацію з тимчасовими файлами. Всі параметри запиту, які мають тип ТабліцаЗначеній, за допомогою звичайного ЗначеніеВФайл () будемо зберігати в тимчасові файли, а в якості значень таких параметрів в Консолі запитів будемо вказувати "ЗначеніеІзФайла (ІмяВременногоФайла)" і встановлювати це чарівний прапорець "В".
Код модуля обробки
Обробка складається всього з однієї експортної функції ОткритьКонсольЗапросов (Запит, ФайлКонсоліЗапросов = "", Модально = Істина).
Параметри цієї функції:
- Запит - це об'єкт запит, який потрібно відкрити в Консолі запитів.
- ФайлКонсоліЗапросов - це повне ім'я файлу Консолі запитів. Параметр необов'язковий. Якщо не вказано, то обробка вважає, що консоль запитів має ім'я "КонсольЗапросов.epf" і знаходиться в тому ж каталозі, що і сама обробка.
- Модально - вказує чи потрібно відкривати Консоль запитів в модальному режимі (Істина) чи ні. Параметр також необов'язковий. За замовчуванням - Істина (тобто Консоль запитів відкривається в модальному режимі).
Тепер про те, як використовувати цю обробку.
У режимі налагодження викликаємо діалог "Обчислити вираз." (Shift + F9), пишемо вираз виду
- ВнешніеОбработкі.Создать ( "КаталогЕтойОбработкі \ ОткривашкаКонсоліЗапросов.epf"). ОткритьКонсольЗапросов (Запит, "КаталогКонсоліЗапросов \ КонсольЗапросов.epf", Істина)
і натискаємо кнопку "Розрахувати". Якщо останній параметр Істина (або не заданий), то Консоль запитів відкриється в модальному режимі, і ми можемо відразу перейти в "1С: Підприємство" і працювати з відкрилися запитом. Якщо останній параметр Брехня, то Консоль запитів відкриється в "1С: Підприємство" ПІСЛЯ того, як ми натиснемо F5 ( "Продовжити налагодження").
- КаталогЕтойОбработкі \ ОткривашкаКонсоліЗапросов.epf - це повне ім'я файлу цієї обробки.
Ще приклади запуску:
- ВнешніеОбработкі.Создать ( "КаталогЕтойОбработкі \ ОткривашкаКонсоліЗапросов.epf"). ОткритьКонсольЗапросов (Запит) - відкриє Консоль запитів, яка має ім'я "КонсольЗапросов.epf" і знаходиться в каталозі "КаталогЕтойОбработкі".
- ВнешніеОбработкі.Создать ( "КаталогЕтойОбработкі \ ОткривашкаКонсоліЗапросов.epf"). ОткритьКонсольЗапросов (Запит. Брехня) - те ж саме, але Консоль запитів відкриється в немодальному режимі.
Власне і все. Побажання і зауваження по справі вітаються!