Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Отчет на СКД: интересный запрос

Отчет на СКД: интересный запрос
Я
   Dmitriy_ Kolesnikov
 
19.04.18 - 08:05
Есть отчет, использующий такой запрос:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    &ДатаНачала КАК ДатаНачала,
    &ДатаОкончания КАК ДатаОкончания,
    Сотрудники.Ссылка КАК Сотрудник
ПОМЕСТИТЬ ВТСотрудники
ИЗ
    Справочник.Сотрудники КАК Сотрудники
{ГДЕ
    Сотрудники.Ссылка.* КАК Сотрудник}
;

////////////////////////////////////////////////////////////////////////////////


и т. д. и т. п, то есть этот запрос выбирает только пустые значения. Если выполнить его в консоли запросов, результат будет пустым.

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

ВременнаяТаблицаЗапроса.ПолучитьДанные (QueryTempTable.GetData)
ВременнаяТаблицаЗапроса (QueryTempTable)
ПолучитьДанные (GetData)
Синтаксис:

ПолучитьДанные()
Возвращаемое значение:

Тип: РезультатЗапроса.

Описание:

Возвращает содержимое временной таблицы.

Доступность:

Сервер, толстый клиент, внешнее соединение.
   Chameleon1980
 
22 - 20.04.18 - 07:05
а. ну это лоя менеджера
   Chameleon1980
 
23 - 20.04.18 - 07:06
да похф. поспать надоть еще, наверное.
   craxx
 
24 - 20.04.18 - 07:15
(12) Норм запрос. Для настоящих мужиков))
   Chameleon1980
 
25 - 20.04.18 - 09:13
+(21)
Запрос.ВыполнитьПакетСПромежуточнымиДанными (Query.ExecuteBatchWithIntermediateData)
Запрос (Query)
ВыполнитьПакетСПромежуточнымиДанными (ExecuteBatchWithIntermediateData)
Синтаксис:

ВыполнитьПакетСПромежуточнымиДанными()
Возвращаемое значение:

Тип: Массив.

Описание:

Последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета. Результаты помещаются в массив в последовательности расположения запросов в тексте пакета.
Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов.
Результатом выполнения запроса на создание временной таблицы будет содержимое временной таблицы.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует