Отладка запросов с представлениями

1. user950703 24.09.24 09:39 Сейчас в теме
Доброе время суток, уважаемые.

Прошу просветить на тему отладки запросов с представлениями.

Столкнулся с этой проблемой при работе над пользовательскими отчетами в конфигурации ЗКГУ 3.1.

Заранее признателен.
По теме из базы знаний
Найденные решения
10. Vinzor 110 24.09.24 22:28 Сейчас в теме
(4) Как я писал, надо смотреть отчеты
По ШР - тот же "СостояниеШтатногоРасписания"
Там 2 запроса (2 набора данных), первый как раз посвящён штатке. Его можно брать и "изучать синтаксис под микроскопом"
ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 0
	ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
	ЗНАЧЕНИЕ(Справочник.ШтатноеРасписание.ПустаяСсылка) КАК ПозицияШтатногоРасписания,
	ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение,
	ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка) КАК Должность,
	ЗНАЧЕНИЕ(Справочник.РазрядыКатегорииДолжностей.ПустаяСсылка) КАК РазрядКатегория,
	ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) КАК ГрафикРаботыСотрудников,
	ЗНАЧЕНИЕ(Справочник.СтатьиФинансированияЗарплата.ПустаяСсылка) КАК СтатьяФинансирования,
	0 КАК КоличествоСтавок,
	0 КАК ФОТ,
	0 КАК ФОТМин,
	0 КАК ФОТМакс,
	0 КАК ФОТПозиции,
	0 КАК ФОТПозицииМин,
	0 КАК ФОТПозицииМакс,
	0 КАК ОкладТариф,
	0 КАК ОкладТарифМин,
	0 КАК ОкладТарифМакс,
	0 КАК ЗанятаПостоянно,
	0 КАК ЗанятаВременно,
	0 КАК ПодработкаПостоянно,
	0 КАК ПодработкаВременно,
	0 КАК СовмещенаПостоянно,
	0 КАК СовмещенаВременно,
	0 КАК Забронирована,
	0 КАК ВременноОсвобождена
ПОМЕСТИТЬ Представления_ШтатноеРасписание
ГДЕ
	"ТолькоРазрешенные" = ИСТИНА
	И "ДатаАктуальности" = &ДатаАктуальности
	И "ВключатьНачисления" = ЛОЖЬ
	И "ВключаяЗакрытые" = ИСТИНА
Показать
11. romulanin 25.09.24 07:09 Сейчас в теме
Берешь таблицы из типовых отчетов и прогоняешь через
ЗарплатаКадрыОбщиеНаборыДанных.ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц(ТекстЗапроса);
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Vinzor 110 24.09.24 10:20 Сейчас в теме
(1) Я применяю 2 инструмента.
Консоль запросов 9000.
Обработка конвертации "представлений" в "нормальный" запрос. Взял с ИТС, и под себя "подпилил".

Там самая большая проблема в том, что в этой обработке можно получить не все возможные выражения представлений.
По части работы со штатным расписанием, там вообще нет ничего. И по зарплате тоже.
Да и по кадрам там не всё.

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

В общем тема - огонь, только влезь.
5. user950703 24.09.24 11:46 Сейчас в теме
7. Vinzor 110 24.09.24 15:36 Сейчас в теме
(5) Не приценялся. Я привык к "9000", скорее её доработаю на "представления"
9. user950703 24.09.24 15:42 Сейчас в теме
(7)
(7) В этой ссылке есть отсылка к аналогичной консоли с программным кодом. При беглом просмотре не обнаружил ограничений по представлениям в силу принципа построения. Вариант для доработки.
6. user950703 24.09.24 13:12 Сейчас в теме
(3) Еще вопрос. То есть Вы не прибегаете к методике преобразования запроса с представлениями в реальный? А действуете модификацией аналогичных отчетов с представлениями?
8. Vinzor 110 24.09.24 15:40 Сейчас в теме
(6) По разному.
Бывает, в отчетах данные получаю в модуле, и в компоновку отдаю таблицу значений.
Здесь запрос на представлениях, перекручиваю в исполняемый и т.д.

А бывает, запрос на представлениях в "схеме компоновки", и всё остальное там.
И даже модуль не делаю.

Зависит от сложности отчета.
С модулем работаю, если к отчету идёт несколько вариантов, для которых надо исполнять части запроса.
Тогда запрос (в т.ч. на представлениях) бью на логические куски, и в модуле в зависимости от варианта беру куски и "склеиваю", и далее.
Это позволяет поднять быстродействие.
Если в варианте отчета не надо выводить среднесписочную численность, тогда зачем мне это гонять в запросе ?
2. Vladimir-R 170 24.09.24 09:45 Сейчас в теме
(1) посмотрите https://its.1c.ru/db/metod81/content/7329/hdoc (Представления, используемые в запросах наборов данных СКД отчетов)
можно сформировать реальный запрос, получаемый по представлениям, возможно это поможет
4. user950703 24.09.24 11:42 Сейчас в теме
(2) Большое спасибо, к сожалению тем нет представлений штатного расписания. Забыл уточнить в (1). Извините.
10. Vinzor 110 24.09.24 22:28 Сейчас в теме
(4) Как я писал, надо смотреть отчеты
По ШР - тот же "СостояниеШтатногоРасписания"
Там 2 запроса (2 набора данных), первый как раз посвящён штатке. Его можно брать и "изучать синтаксис под микроскопом"
ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 0
	ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
	ЗНАЧЕНИЕ(Справочник.ШтатноеРасписание.ПустаяСсылка) КАК ПозицияШтатногоРасписания,
	ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение,
	ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка) КАК Должность,
	ЗНАЧЕНИЕ(Справочник.РазрядыКатегорииДолжностей.ПустаяСсылка) КАК РазрядКатегория,
	ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) КАК ГрафикРаботыСотрудников,
	ЗНАЧЕНИЕ(Справочник.СтатьиФинансированияЗарплата.ПустаяСсылка) КАК СтатьяФинансирования,
	0 КАК КоличествоСтавок,
	0 КАК ФОТ,
	0 КАК ФОТМин,
	0 КАК ФОТМакс,
	0 КАК ФОТПозиции,
	0 КАК ФОТПозицииМин,
	0 КАК ФОТПозицииМакс,
	0 КАК ОкладТариф,
	0 КАК ОкладТарифМин,
	0 КАК ОкладТарифМакс,
	0 КАК ЗанятаПостоянно,
	0 КАК ЗанятаВременно,
	0 КАК ПодработкаПостоянно,
	0 КАК ПодработкаВременно,
	0 КАК СовмещенаПостоянно,
	0 КАК СовмещенаВременно,
	0 КАК Забронирована,
	0 КАК ВременноОсвобождена
ПОМЕСТИТЬ Представления_ШтатноеРасписание
ГДЕ
	"ТолькоРазрешенные" = ИСТИНА
	И "ДатаАктуальности" = &ДатаАктуальности
	И "ВключатьНачисления" = ЛОЖЬ
	И "ВключаяЗакрытые" = ИСТИНА
Показать
11. romulanin 25.09.24 07:09 Сейчас в теме
Берешь таблицы из типовых отчетов и прогоняешь через
ЗарплатаКадрыОбщиеНаборыДанных.ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц(ТекстЗапроса);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот