Запросник с отладкой СКД

01.03.12

Разработка - Работа с интерфейсом

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

Скачать исходный код

Наименование Файл Версия Размер
Запросник+СКД.epf
.epf 163,42Kb
447
.epf 163,42Kb 447 Скачать

Предлагаю вашему вниманию модификацию консоли запросов. В нее добавлена возможность отладки отчетов на СКД.

Для отладки необходимо:

1) указать схему КД (можно выбрать из файла xml, макета внешнего отчета/обработки или набросать в конструкторе)

2) настроить схему (стандартные настройки, из файла xml или в конструкторе)

3) нажать кнопку "Отладить".

Обработка построит дерево запросов, заполнить параметры и передаст их в привычную консоль запросов, где можно выполнить отдельные запросы, смотреть результаты, модифицировать тексты и делать выводы (обычная отладка).

Оптимизированный запрос подразумевает: установленные отборы в условиях и виртуальных таблицах, откинутые лишние поля, источники данных и временные таблицы. Такой запрос можно получить с помощью объекта платформы "КомпоновщикМакетаКомпоновкиДанных".

 

Также отлаживать отчет на СКД можно прям из формы отчета ( пример):

ВнешниеОбработки.Создать("\\server\1cv8$\Запросник+СКД.epf").ОтладитьСКД(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки);

 

PS: Спасибо tezin за его консоль запросов

 

UPD 29.02.2012. Обновление оригинальной консоли до последней версии + возможность редактирования параметра с типом ТаблицаЗначений (интерфейс не дружественный, юзабилити на нуле, но если сильно понадобится, то редактируется).

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61969    43    59    

81

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54598    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    16847    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    11032    757    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    9806    153    acces969    31    

119

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3867    kalyaka    4    

29

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12226    1    5    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Serj1C 483 11.11.11 15:56 Сейчас в теме
Очень помогает в ситуациях, которые по-началу не поддаются объяснению )
+
2. Armando 1399 11.11.11 16:19 Сейчас в теме
3. Boroda 90 11.11.11 20:19 Сейчас в теме
К СКД ещё только приступил, поэтому не могу вполне оценить нужность этого механизма, но нутром чую, что он очень и очень пригодится. Попробую его понять и ипользовать. Спасибо!
+
6. Serj1C 483 11.11.11 23:50 Сейчас в теме
(3) Boroda, идея обработки пришла в голову при просмотре курса http://www.spec8.ru/kurs-po-skd-besplatno
Если только начал разбор СКД, то рекомендую начать с этого материала.
+
8. Boroda 90 12.11.11 20:56 Сейчас в теме
(6) Спасибо и за обработку, и за ссылку на курс по СКД.
+
4. Serj1C 483 11.11.11 23:43 Сейчас в теме
В дерево отчетов попадают используемые наборы данных типа Запрос
Объединения содержат вложенные наборы данных
Наборы данных типа Объект представляются как простой запрос описания таблицы (перечислены поля)
Также платформа добавляет системные наборы данных (для построения иерархии и т.п.)

Далее идет отдельная ветка "Схема", в которой находится исходная схема КД
+
5. Serj1C 483 11.11.11 23:46 Сейчас в теме
В самой консоли появилась дополнительная фишка - отладка запросов с передачей параметров типа "Таблица значений". Есть, конечно, ряд ограничений (на типизацию колонок), но в целом может пригодиться.
+
7. zaoproxy 36 12.11.11 16:55 Сейчас в теме
Хорошая идея и хорошая реализация. Молодец.
+
9. vec435 15 16.11.11 09:17 Сейчас в теме
10. dkprim 5 17.11.11 06:22 Сейчас в теме
отлично, будем пробовать :)
+
11. mlv84 36 18.11.11 05:45 Сейчас в теме
Спасибо. Давно искала что-то подобное :)
+
12. mlv84 36 18.11.11 05:53 Сейчас в теме
Пытаюсь добавить параметры из запроса, выдает ошибку {Форма.Форма.Форма(1560)}: Ошибка при вызове метода контекста (НайтиПараметры): {(56, 1)}: Синтаксическая ошибка
+
14. Serj1C 483 18.11.11 07:24 Сейчас в теме
(12) mlv84, Синтаксическая ошибка в вашем запросе. Напишите корректный запрос - получите параметры (НайтиПараметры встроенный метод объекта Запрос)
+
16. mlv84 36 18.11.11 07:51 Сейчас в теме
Serj1C пишет:

(12) mlv84, Синтаксическая ошибка в вашем запросе. Напишите корректный запрос - получите параметры (НайтиПараметры встроенный метод объекта Запрос)

Это да, прошу прощения. Запрос просто был большой. Кусочек потерялся при копировании. А таблицу значений придумала как обойти. Спасибо.
+
17. Serj1C 483 18.11.11 11:01 Сейчас в теме
(16) mlv84, Поделись, плиз, как придумала
+
13. mlv84 36 18.11.11 06:14 Сейчас в теме
на форме "Параметры" есть кнопка "Список" она в общем-то и не нужна, ведь когда выбираем значение параметра, то можем там указать, что это список значений и заполнить его. А вот если бы там была кнопка "Таблица значений" и она бы добавляла в параметр значение "Таблица значений" было бы классно.
+
15. Serj1C 483 18.11.11 07:28 Сейчас в теме
(13) mlv84, Таблицу значений я добавил для отладочных целей. Самостоятельный ее ввод мне, например, не очень нужен (даже ее редактирование). Это создаст кучу проблем (интерфейс, юзабилити, типизация колонок и т.д.) Но если вам это необходимо и думаете что это будет интересно сообществу - дерзайте! Выкладывайте. или напишите tezin, он может добавить этот функционал в следующих версиях.
+
18. mlv84 36 18.11.11 12:33 Сейчас в теме
ничего сверх сложного. В моём случае в таблице значений была только одна строка. Я просто посмотрела в отладчике какие там значения. А потом в запросе их явно указала.
У меня было так:
"ВЫБРАТЬ
| ТаблицаПериодов.ДатаНачала КАК ДатаНачала,
| ТаблицаПериодов.ДатаОкончания КАК ДатаОкончания,
| ТаблицаПериодов.ГруппаНачислений
|ПОМЕСТИТЬ ИсходныеДанные
|ИЗ
| &ТаблицаПериодов КАК ТаблицаПериодов
....................

а сделала так:
"ВЫБРАТЬ
| ДАТАВРЕМЯ(2011, 04, 01, 0,0,0) КАК ДатаНачала,
| ДАТАВРЕМЯ(2011, 04, 30, 23,59,59) КАК ДатаОкончания,
| "%ДопНачисление%" как ГруппаНасилений //У меня здесь строковое значение передавалось

КАК ТаблицаПериодов
+
19. Serj1C 483 18.11.11 12:36 Сейчас в теме
(18) mlv84, Да, я тоже так делаю:
Выбрать &Контрагент1 Контрагент, 15000 Сумма Поместить ТЗ
Объединить все Выбрать &Контрагент2, 20000
Объединить все Выбрать &Контрагент3, NULL

и т.д.
+
20. tormozit 7140 15.12.11 20:41 Сейчас в теме
Описанные функции (отладки запросов из компоновки) реализованы также в подсистеме "Инструменты разработчика" (функция Отладить, консоль компоновки данных) http://infostart.ru/public/15126/ . Там же там вы найдете много исследовательских инструментов в консоли компоновки данных, которые позволяет вам лучше понять, как устроен макет компоновки и расшифровка.
Serj1C; +1
21. Serj1C 483 15.12.11 20:53 Сейчас в теме
(20) tormozit, да, ваша подсистема выше всех похвал
+
22. Serj1C 483 01.03.12 09:54 Сейчас в теме
UPD 29.02.2012
Обновление оригинальной консоли до последней версии + возможность редактирования параметра с типом ТаблицаЗначений (интерфейс не дружественный, юзабилити на нуле, но если сильно понадобится, то редактируется).
+
23. leraks 22.03.12 11:45 Сейчас в теме
Очень помогает как раз разбираюсь с СКД
+
24. RanisNetMan 6 25.06.12 12:23 Сейчас в теме
Функционал отличный. Интерфейс хотелось бы по компактнее.
+
25. alex_shkut 62 20.07.12 13:55 Сейчас в теме
{Форма.ФормаОтладкаСКД.Форма(47)}: Ошибка при вызове метода контекста (Инициализировать)
ПроцессорКД.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);
по причине: Ошибка компоновки данных
по причине: Ошибка инициализации
по причине: Ошибка в выражении
по причине: Синтаксическая ошибка "Справочники.ТехнологическиеОперации.НайтиПоКоду"

Стандартная СКД принимает выражение Параметра в таком виде. Если элемент справочника не предопределенный, его можно найти позже - ПоКоду, ну или ПоНаименованию, что хуже в случае редактирования Наименования ;)
При вызове Отладка СКД и нажатии Сформировать обработка не понимает такого выражения для Параметра.
laisa2; Serj1C; +2
26. Serj1C 483 20.07.12 14:12 Сейчас в теме
(25) alex_shkut, Любопытно, никогда не замечал. Баг платформы. Могу отписать на 1c@1c.ru, но не думаю, что скоро исправят.
+
30. alex_shkut 62 06.08.12 17:48 Сейчас в теме
Вот сам и отвечаю на свой пост (25)
В Запроснике надо найти нечто похожее (не вскрывал его :))
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки,Истина);

А вот описание значения Истина в конце функции:
<ВозможностьИспользованияВнешнихФункций> (необязательный)
Тип: Булево. Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь
В моей текущей ситуации это была именно внешняя функция, но думаю, что это касается и прочих "СКД недвижковых" функций типа Справочники.НайтиПоКоду().
Мне помогло, думаю что в Запроснике этого будет достаточно, чтобы ошибка исчезла.

Нашел, где это: ФормаОтладкаСКД строка 47
имеем: ПроцессорКД.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);
надо: ПроцессорКД.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,,истина);
Pawlick; Serj1C; +2
31. Serj1C 483 07.08.12 09:45 Сейчас в теме
(30) alex_shkut, мда, не тривиально... Ок, мотаем на ус!
+
27. Рамзес 29 26.07.12 16:12 Сейчас в теме
Возможность отлаживать отчет на СКД из формы отчета - это очень удобно. Спасибо. Имя файла в пути поправьте.
+
28. Рамзес 29 27.07.12 13:20 Сейчас в теме
При использовании набора данных "Объект":
{Форма.Форма.Форма(791)}: Ошибка при вызове метода контекста (Выполнить): {(9, 2)}: Таблица не найдена "РезультатОсновногоЗапроса"
<<?>>РезультатОсновногоЗапроса КАК Таблица

РезультатОсновногоЗапроса - это имя объекта (внешнего набора данных).
+
29. Serj1C 483 30.07.12 12:20 Сейчас в теме
(28) Рамзес, по внешнему набору данных нет смысла отлаживать запрос.
рекомендую для построения отчета по ТЗ использовать http://infostart.ru/public/120528/
+
32. birusik 8 08.10.19 12:10 Сейчас в теме
Почему Вы не пишите вначале, что это для обычных форм, я получается зря потратила стартмани!
user682398_paul_candle; +1
33. Serj1C 483 08.10.19 15:30 Сейчас в теме
(32) Публикация 2011 года, на сриншотах обычное приложение...
Давайте я вам вышлю инструменты, которые использую сейчас в работе
+
Оставьте свое сообщение