|
|
Пособите с переводом Запроса 7.7 на прямой запрос
Бертыш, Олдж, Доминошник, ДемьянТ, Builder, laeg, Franchiser, Наивный, kubik_live, АгентБезопаснойНацио, vicof, maxab72, Sserj, VladZ, Chameleon1980, Михаил_, who respawn, Злопчинский, arsik, ads55, Hawk_1c, Timon1405, trdm, vladko, Amra, Zamestas, ДенисСмирнов, CepeLLlka, Мультук
| ☑ |
|
0
Бертыш
06.04.26
✎
17:31
|
В унаследованном коде есть запрос к данным
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса="//{{Запрос(СформироватьПоГрафику)
|ЭлементГрафика = Справочник.Графики.ТекущийЭлемент;
|Сотрудник = Справочник.Графики.Владелец;
|Подразделение = Справочник.Графики.Подразделение;
|Отделение = Справочник.Графики.Отделение;
|ДатаРаб = Справочник.Графики.ДатаРаб;
|ВремяРаб = Справочник.Графики.Время;
|Группировка Сотрудник;
|Группировка ЭлементГрафика;
|Группировка ДатаРаб;
|Группировка ВремяРаб;
|Условие(Подразделение в спПодразделение);
|Условие(Отделение в _Отделение);
|Условие(Сотрудник в спСотрудник);
|Условие(ДатаРаб >= _ДатаНач);
|Условие(ДатаРаб <= _ДатаКон);
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
Возврат;
КонецЕсли;
и далее обход группировок Запроса
Пока Запрос.Группировка(1)=1 Цикл
n_Сотрудник = Запрос.Сотрудник;
Пока Запрос.Группировка(2)=1 Цикл
Как то в оны времена практически прошли мимо меня прямые запросы на 7.7. Простенькие запросы писать доводилось, но тут что то я туплю
По части перевода самого запроса понятно до группировки. Так думаю что вместо группировки я должен задать итоги а-ля запросы 1С 8, но далее мне как то непонятно как эти итоги обходить. Может подскажет кто из коллег как перевести такой код 7.7 на прямой запрос? Я кажется с 2005 го года практически не сталкивался с 7.7 перейдя на восьмёрку. В общем не знал, да ещё и забыл :)
|
|
|
1
Злопчинский
06.04.26
✎
18:23
|
Я когда не знаю/туплю - пишу просто.
напиши простой линейный запрос без группировок
выгрузи в индексированную таблицу и сгруппируй уже ИТЗ
|
|
|
2
Злопчинский
06.04.26
✎
18:25
|
База скульная или файловая?
|
|
|
3
Злопчинский
06.04.26
✎
18:30
|
Меня группировка по ВремяРаб сильно смущает...
Время раб - это количество времени, поработанное в ДатуРаб?
Или отметка времени?
|
|
|
4
АгентБезопасной Нацио
06.04.26
✎
19:08
|
скажи человечьим языком, что ты хочешь получить...
|
|
|
5
Бертыш
06.04.26
✎
19:11
|
(2) Скульная.
(4) Там далее есть унаследованный код обработки по выборке из родного запроса. Вот и хочу с минимальными изменениями чтобы он отрабатывал при прямом запросе как и при Запросе обычном
|
|
|
6
Бертыш
06.04.26
✎
19:13
|
(3) Количество времени которое должно быть отработанно в дату
|
|
|
7
Наивный
06.04.26
✎
19:29
|
А что функций нет - так задумано?
|
|
|
8
АгентБезопасной Нацио
06.04.26
✎
19:35
|
(5) я за 15 лет таки не изчил черные запросы.
Но будет что-то типа
|select
|ЭлементГрафика = Графики.id [ТекущийЭлемент $Справочник.Графики],
|Графики.ParentId [Сотрудник $Справочник.Графики],
|$Графики.ПодразделениеПодразделение [Подразделение $Справочник.Подразделения],
|$Графики.Отделение [Отделение $Справочник.Отделения ],
|$Графики.ДатаРаб [ДатаРаб $Дата ],
|$Графики.Время [ВремяРаб ]
| from $Справочник.Графики как Графики
|where
| $Графики.Подразделение in (select id from #tab_podr)
|and $Графики.ДатаРаб > :ДатаНач
в параметрах
УложитьСписокОбъектов(#tab_podr, спПодразделение)
и типа того
затем
ИТЗ = ВыполнитьЗапрос(ТекстЗапроса)
Ну и в конце
ИТЗ.Сгруппировать("Сотрудник, ЭлементГрафика, ДатаРаб, ВремяРаб")
|
|
|
9
Бертыш
06.04.26
✎
20:59
|
Спасибо
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший