|
Отчет на СКД: интересный запрос | ☑ | ||
---|---|---|---|---|
0
Dmitriy_
Kolesnikov 19.04.18
✎
08:05
|
Есть отчет, использующий такой запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ &ДатаНачала КАК ДатаНачала, &ДатаОкончания КАК ДатаОкончания, Сотрудники.Ссылка КАК Сотрудник ПОМЕСТИТЬ ВТСотрудники ИЗ Справочник.Сотрудники КАК Сотрудники {ГДЕ Сотрудники.Ссылка.* КАК Сотрудник} ; //////////////////////////////////////////////////////////////////////////////// и т. д. и т. п, то есть этот запрос выбирает только пустые значения. Если выполнить его в консоли запросов, результат будет пустым. Тем не менее, он работает. Объясните, как. |
|||
1
craxx
19.04.18
✎
08:08
|
(0) Значит он берет запрос откуда-то из хранилища. В ЗУП 3.1 такое видел.
|
|||
2
Ненавижу 1С
гуру
19.04.18
✎
08:08
|
пустые запросы работают, да
|
|||
3
los_hooliganos
19.04.18
✎
08:30
|
Может отчет программно снимает ограничения
|
|||
4
dvva
19.04.18
✎
08:42
|
запрос выбирает "непустые" данные,
но вы их не видите потому что они лежат во временных таблицах, доступа к которым из консоли нет, а из кода возможно |
|||
5
Dmitriy_
Kolesnikov 19.04.18
✎
08:52
|
(4) где их искать? В ПриКомпоновкеРезультата не вижу.
|
|||
6
dnab
19.04.18
✎
08:59
|
(5) неужели в ПриКомпоновкеРезультата нет вызова ИнициализироватьОтчет() ?
Если есть, то в него и копай |
|||
7
echo77
19.04.18
✎
10:44
|
(0) то есть этот запрос выбирает только пустые значения - это утверждение ЛОЖНО.
Запрос выбирает все записи из Справочник.Сотрудники, помещает их в ВТ. В консоли запросов - да, вы увидите одну строку, с количеством записей в ВТ СКД работает таким образом, что выбирает данные из последней ВТ, если последний пакет запроса не является выборкой |
|||
8
n0ther
19.04.18
✎
10:47
|
(0) в ЗУПе полно такого дермища. В нужном месте запрос в СКД изменяется и выполняется.
|
|||
9
echo77
19.04.18
✎
10:47
|
+ (7) Кажется, приврал - не так работает :-)
|
|||
10
DrShad
19.04.18
✎
10:51
|
(4) множество консолей запросов, которые выводят результаты временных таблиц
|
|||
11
Вафель
19.04.18
✎
10:55
|
в зупе все запросы для отчетов собираются вручную. А в скд только для определения полей
|
|||
12
Dmitriy_
Kolesnikov 19.04.18
✎
11:22
|
Я ща отладчиком вытащил полный текст этого запроса... 4755 строк...
Ну и шо теперь с этим делать... Надо одно поле добавить. Но лезть в эту муть - всё равно что совать голову в петлю. |
|||
13
n0ther
19.04.18
✎
11:29
|
(12) добро пожаловать в дивный новый мир
|
|||
14
Вафель
19.04.18
✎
11:35
|
Хуже только подсистема буджетирования в ЕРП
|
|||
15
n0ther
19.04.18
✎
11:38
|
Ну, к слову, расчет зарплаты в 1С всегда отличался <sarcasm on>простотой и прозрачностью</sarcasm off>
|
|||
16
Dotoshin
19.04.18
✎
11:39
|
(0) А попробуй в консоли дописать Выбрать ДатаНачала, ДатаОкончания, Сотрудник из ВТСотрудники
|
|||
17
los_hooliganos
19.04.18
✎
11:39
|
(11) Это специально сделано, чтобы фикси своими грязными ручонкам не лезли в грациозный ЗУП.
|
|||
18
Вафель
19.04.18
✎
11:40
|
(15) ну а что ты хотел, если кодеры всего сотку в 1с получают
|
|||
19
Dmitriy_
Kolesnikov 20.04.18
✎
06:04
|
Короче, разобрался - последнюю, итоговую таблицу запроса функции-обработчики не трогают: поэтому можно модифицировать запрос, превратив её во временную и накрутив дополнительно всё что угодно. Работать будет корректно.
Но я к этому шел три дня, боялся туда лезть :) Не так страшен черт. |
|||
20
Chameleon1980
20.04.18
✎
07:01
|
(10) а я вот где-то видел (а может приснилось)
что с какой-то из платформ при отладке можно без. доп дописок смотреть вт |
|||
21
Chameleon1980
20.04.18
✎
07:04
|
что-то типа этого
ВременнаяТаблицаЗапроса.ПолучитьДанные (QueryTempTable.GetData) ВременнаяТаблицаЗапроса (QueryTempTable) ПолучитьДанные (GetData) Синтаксис: ПолучитьДанные() Возвращаемое значение: Тип: РезультатЗапроса. Описание: Возвращает содержимое временной таблицы. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
22
Chameleon1980
20.04.18
✎
07:05
|
а. ну это лоя менеджера
|
|||
23
Chameleon1980
20.04.18
✎
07:06
|
да похф. поспать надоть еще, наверное.
|
|||
24
craxx
20.04.18
✎
07:15
|
(12) Норм запрос. Для настоящих мужиков))
|
|||
25
Chameleon1980
20.04.18
✎
09:13
|
+(21)
Запрос.ВыполнитьПакетСПромежуточнымиДанными (Query.ExecuteBatchWithIntermediateData) Запрос (Query) ВыполнитьПакетСПромежуточнымиДанными (ExecuteBatchWithIntermediateData) Синтаксис: ВыполнитьПакетСПромежуточнымиДанными() Возвращаемое значение: Тип: Массив. Описание: Последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета. Результаты помещаются в массив в последовательности расположения запросов в тексте пакета. Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов. Результатом выполнения запроса на создание временной таблицы будет содержимое временной таблицы. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |