Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Виснет запрос при выполнении

Штука такая , стандартный отчет СЗВ-Стаж в ЗКБУ 1 виснет при выполнении запроса , база файловая
непонятно как отладить его , проблема в том что в параметрах массив из 1000 физлиц , в консоли подобрать их не представляется возможным
непойму как понять суть ошибки
Ответ: () на управляемых в отладке можно записать в файл структуру с параметрами запроса
а в консоль потом загрузить их
Вопрос: Как протестировать выполнение запроса на возврат определенных данных?

Здравствуйте,
Есть шаблон договора с клиентом. В шаблоне есть переменные, значение которых возвращается в результате выполнения запроса, например:

Запрос = Новый Запрос; Запрос.УстановитьПараметр("Клиент", Клиент); Запрос.Текст = "ВЫБРАТЬ ПаспортныеДанныеСрезПоследних.ДокументСерия, ПаспортныеДанныеСрезПоследних.ДокументНомер, ПаспортныеДанныеСрезПоследних.ДокументКемВыдан ИЗ РегистрСведений.ПаспортныеДанные.СрезПоследних КАК ПаспортныеДанныеСрезПоследних ГДЕ ПаспортныеДанныеСрезПоследних.ФизЛицо = &Клиент"; Выгрузка = Запрос.Выполнить().Выгрузить(); Для каждого Строка Из Выгрузка Цикл Результат = Строка.ДокументСерия; КонецЦикла;


В результате выполнения этого запроса вернется значение Строка.ДокументСерия.

Мне нужно составить аналогичный запрос, на возврат других данных, но так как я не владею синтаксисом этого языка, то мне нужен инструмент для моментального тестирования, как в mssql или msaccess можно создать запрос и тут же его выполнить, типо командной строки. Где взять этот инструмент?
Ответ:
Это называется консоль запросов. Поищите либо на форуме, либо в инете
Вопрос: Вопрос по группировкам в запросе

При написании запроса возникла проблема с обходом по группировкам...после выполнения запроса видна только одна группировка, подскажите плз кто знает или помнит с чем это связано..может это просто глюк 7-ки при работе с запросами

сам запрос, сделанный через конструктор...
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)

    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Без итогов;
    |ПродажаСоСклада = Документ.ПродажаСоСклада.ТекущийДокумент;
    |Покупатель = Документ.ПродажаСоСклада.Покупатель;
    |Товар = Документ.ПродажаСоСклада.Товар;
    |Колво = Документ.ПродажаСоСклада.Колво;
    |СуммаСоСкидкой = Документ.ПродажаСоСклада.СуммаСоСкидкой;
    |Функция КолвоСумма = Сумма(Колво);
    |Функция ВсегоСумма = Сумма(СуммаСоСкидкой);
    |Группировка Покупатель;
    |Группировка Товар без упорядочивания без групп;        
    |"//}}ЗАПРОС

    ;
    // Если ошибка в запросе, то выход из процедуры

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;    
    
    Пока Запрос.Группировка() = 1 Цикл
        Таб.ВывестиСекцию("Покуп");
         Пока Запрос.Группировка() = 1 Цикл            
            Таб.ВывестиСекцию("Товар");    
        КонецЦикла;
    КонецЦикла;

так вот при выполнении не происходит обход по группировкам, хотя данные выбраны, но почему то 1с-ка видит только одну группировку по "Товар". Т.е. если я пишу Пока Запрос.Группировка() = 1 Цикл тогда все работает но у меня группировка идет только по товарам. При чем пытался другие виды группировок указать, например по документу, все равно видит только одну группировку по товару и все.
Помню давно еще возникала такая проблема, а вот как ее решали уже не помню:)..может выгружали запрос в таблицу и потом делали обход, а может есть какой нюанс.
Заранее благодарен
Ответ: () Спасибо большое, я уже и сам допер, посмотрев что может быть лишним в запросе и почитав что это может значить:)
Просто когда постоянно с чем то работаешь, то концентрация внимания выше на всякие мелочи и нюансы, а так забывается...
Вопрос: + MS SQL Server: Загрузка сервера при выполнении запроса

Как можно выполнить запрос таким образом, чтобы это минимально отражалось на скорости работы других пользователей? Лабаю сложный аналитический отчёт на рабочей базе (не спрашивайте, так надо), и при выполнении сложного запроса сильно тормозится работа пользователей. Можно ли как-то снизить приоритет выполнения моего запроса? Пусть он работает дольше, но не тормозит работу пользователей. Реально такое?
Ответ: Кстати, интересная тема - управления ресурсами скуля из 1С. Запросы действительно *могут* быть долгими и ресурсоемкими. Пусть это будет не отчет, а рег. задание. Тот же расчет себестоимости, например. ЕМНИП, в последних версиях платформы появилась возможность прикрепить юзера к рабочему процессу. А значит, теоретически можно задействовать Resource Governor для всех соединений этого процесса. Если разработчики платформы подсуетятся и добавят поддержку. А может, уже? Есть кто в теме? (Особенно к ежикам вопрос :)
Вопрос: Неоптимальный запрос в динамическом списке

В допиленой есть динамический список. Где три раза используется конструкция:

Если запрос содержит соединения с подзапросами, то это может привести к следующим негативным последствиям:

Код:
ВЫБРАТЬ ...
ИЗ Документ.РеализацияТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ (
ВЫБРАТЬ ИЗ РегистрСведений.Лимиты
ГДЕ ...
СГРУППИРОВАТЬ ПО ...
) ПО ...
Как пишет ИТС:

Так и есть. Тормозит через раз. Переместить подзапросы во временные таблицы не получается так как стоит режим совместимости с 8.2. Там такого сделать нельзя?

Какой костыль можно приделать чтобы быстрей работало?
Ответ:
Да там вообще запрос веселый.
Вопрос: Запрос. Оператор В. Временная таблица

Доброго времени суток!
Почему следующий запрос ничего не возвращает?
"ВЫБРАТЬ
                   |    Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
                   |ПОМЕСТИТЬ ФизЛица
                   |ИЗ
                   |    Справочник.Сотрудники КАК Сотрудники
                   |ГДЕ
                   |    Сотрудники.Ссылка В(&МассивОбъектов)
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    ФизическоеЛицо
                   |;
                   |
                   ////////////////////////////////////////////////////////////////////////////////

                   |ВЫБРАТЬ
                   |    ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ФизическоеЛицо.ФИО КАК ФИОРаботника,
                   |    ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ЗарплатныйПроект.Банк.Наименование КАК НаименованиеБанка,
                   |    ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
                   |    ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.Период КАК ДатаОткрытияСчета,
                   |    ЕСТЬNULL(СклоненияПредставленийОбъектов.РодительныйПадеж, """") КАК НаименованиеСотрудникаВРодПадеже,
                   |    ВЫБОР
                   |        КОГДА ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ФизическоеЛицо.Пол = ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.Мужской)
                   |            ТОГДА 1
                   |        ИНАЧЕ 2
                   |    КОНЕЦ КАК Пол
                   |ИЗ
                   |    РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.СрезПоследних(
                   |            ,
                   |            ФизическоеЛицо В (""ВЫБРАТЬ
                   |                                  ФизЛица.ФизическоеЛицо КАК ФизическоеЛицо
                   |                              ИЗ
                   |                                  ФизЛица КАК ФизЛица"")) КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов
                   |        ПО ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ФизическоеЛицо = СклоненияПредставленийОбъектов.Объект";
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);

Запрос создаю в типовой ЗУП редакция 3.1. Платформа 8.3.10.2580. Создаю временную таблицу, так как тип переменной МассивОбъектов массив из элементов типа СправочникСсылка.Сотрудники, а регистр содержит измерение типа СправочникСсылка.ФизическиеЛица.

Если в переменную поместить массив из элементов типа СправочникСсылка.ФизическиеЛица, то оператор В срабатывает и запрос возвращает не пустой результат. Конечно в этом случае не использую временную таблицу и вместо
ФизическоеЛицо В (""ВЫБРАТЬ
                   |                                  ФизЛица.ФизическоеЛицо КАК ФизическоеЛицо
                   |                              ИЗ
                   |                                  ФизЛица КАК ФизЛица"")

пишу
 
ФизическоеЛицо В (&МассивОбъектов)

В консоле запросов при выполнении запроса с временными таблицами, консоль показывает, что во временной таблице есть записи, а конечный результат пустой.

Подскажите, что я не так делаю?
Ответ: Ошибки в запросах платформы бывают, и они исправляются:

Запрос с операторами В и НЕ
Код ошибки: 10186500
Код(ы) обращения: SW1207545
Статус: Исправлена в тестовой версии Зарегистрирована: 27.10.2017
Исправлена: "Технологическая платформа", версия 8.3.12.1159 (для тестирования)

Описание:
При выполнении запроса с оператором В, используемом совместно с отрицанием (оператор НЕ), может быть получен неправильный результат, если в операторе В для сравнения используется тип ссылки.


Код ошибки: 10168730 
Код(ы) обращения: SW1082149
Статус: Исправлена в выпущенной версии Зарегистрирована: 18.10.2016
Исправлена: "Технологическая платформа", версия 8.3.8.2322

Описание:
Результат запроса может быть неверным, если запрос содержит операцию ВЫБОР с большим количеством вариантов, а результат этой операции сравнивается с константой или параметром.
Вопрос: В условиях соединения запроса не допускается обращение к табличным частям. 1C 8.3

Здравствуйте! При выполнении запроса выбивает ошибку. Помогите пожалуйста найти решение.


Ошибка:
{Документ.ИнвентаризацияТоваровНаСкладе.МодульМенеджера(1935)}: Ошибка при вызове метода контекста (Выполнить)
Возврат Запрос.Выполнить().Выбрать();
по причине:
Ошибка выполнения запроса
по причине:
Запрос невозможно исполнить
В условиях соединения запроса не допускается обращение к табличным частям. (1)


Запрос:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
ВЫБРАТЬ
    ИнвентаризацияТоваровНаСкладе.Ссылка КАК Ссылка,
    ИнвентаризацияТоваровНаСкладе.Номер,
    ИнвентаризацияТоваровНаСкладе.Дата,
    ИнвентаризацияТоваровНаСкладе.Дата КАК ДатаСнятияОстатков,
    ИнвентаризацияТоваровНаСкладе.ДатаНачалаИнвентаризации КАК ДатаНачалаИнвентаризации,
    ИнвентаризацияТоваровНаСкладе.ДатаОкончанияИнвентаризации КАК ДатаОкончанияИнвентаризации,
    ИнвентаризацияТоваровНаСкладе.ДокументОснованиеВид КАК ДокументОснованиеВид,
    ИнвентаризацияТоваровНаСкладе.ДокументОснованиеДата КАК ДокументОснованиеДата,
    ИнвентаризацияТоваровНаСкладе.ДокументОснованиеНомер КАК ДокументОснованиеНомер,
    ИнвентаризацияТоваровНаСкладе.ОтветственноеЛицо КАК ОтветственноеЛицо,
    ИнвентаризацияТоваровНаСкладе.Организация,
    ИнвентаризацияТоваровНаСкладе.Склад.Представление КАК ПредставлениеСклада,
    ИнвентаризацияТоваровНаСкладе.Организация КАК Организация1,
    ИнвентаризацияТоваровНаСкладе.СчетУчетаБУ,
    ИнвентаризацияТоваровНаСкладе.Склад,
    ИнвентаризацияТоваровНаСкладе.Товары.(
        НомерСтроки,
        Номенклатура,
        Номенклатура.НаименованиеПолное КАК Товар,
        Номенклатура.Наименование КАК ТоварКратко,
        ВЫБОР
            КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
                ТОГДА ИнвентаризацияТоваровНаСкладе.Товары.Номенклатура.Артикул
            ИНАЧЕ ИнвентаризацияТоваровНаСкладе.Товары.Номенклатура.Код
        КОНЕЦ КАК КодАртикул,
        СчетУчета КАК СубСчет,
        Количество КАК Количество,
        КоличествоУчет КАК КоличествоПоУчету,
        Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
        Номенклатура.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
        Цена,
        Сумма,
        СуммаУчет КАК СуммаПоУчету,
        Номенклатура.Код
    ),
    ИнвентаризацияТоваровНаСкладе.ИнвентаризационнаяКомиссия.(
        НомерСтроки,
        ФизЛицо,
        Председатель КАК Председатель
    ),
    ИнвентаризацияТоваровНаСкладе.ПричинаПроведенияИнвентаризации,
    ХозрасчетныйОборотыДтКт.СубконтоДт3.КодПартии
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт КАК ХозрасчетныйОборотыДтКт
        ПО ИнвентаризацияТоваровНаСкладе.Товары.Номенклатура.Ссылка = ХозрасчетныйОборотыДтКт.СубконтоДт3.Ссылка
ГДЕ
    ИнвентаризацияТоваровНаСкладе.Ссылка В(&МассивОбъектов)
Ответ: Я бы сделал как-то так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Док.Ссылка                          КАК Ссылка,
    Док.Номер                           КАК Номер,
    Док.Дата                            КАК Дата,
    Док.Дата                            КАК ДатаСнятияОстатков,
    Док.ДатаНачалаИнвентаризации        КАК ДатаНачалаИнвентаризации,
    Док.ДатаОкончанияИнвентаризации     КАК ДатаОкончанияИнвентаризации,
    Док.ДокументОснованиеВид            КАК ДокументОснованиеВид,
    Док.ДокументОснованиеДата           КАК ДокументОснованиеДата,
    Док.ДокументОснованиеНомер          КАК ДокументОснованиеНомер,
    Док.ОтветственноеЛицо               КАК ОтветственноеЛицо,
    Док.Организация                     КАК Организация,
    Док.Склад.Представление             КАК ПредставлениеСклада,
    Док.СчетУчетаБУ                     КАК СчетУчетаБУ,
    Док.Склад                           КАК Склад,
    Док.ПричинаПроведенияИнвентаризации КАК ПричинаПроведенияИнвентаризации
ПОМЕСТИТЬ втДанныеДокументов
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе КАК Док
ГДЕ
    Док.Ссылка В(&МассивОбъектов)
;
ВЫБРАТЬ
    Шапка.Ссылка                          КАК Ссылка,
    Шапка.Номер                           КАК Номер,
    Шапка.Дата                            КАК Дата,
    Шапка.Дата                            КАК ДатаСнятияОстатков,
    Шапка.ДатаНачалаИнвентаризации        КАК ДатаНачалаИнвентаризации,
    Шапка.ДатаОкончанияИнвентаризации     КАК ДатаОкончанияИнвентаризации,
    Шапка.ДокументОснованиеВид            КАК втДанныеДокументовументОснованиеВид,
    Шапка.ДокументОснованиеДата           КАК втДанныеДокументовументОснованиеДата,
    Шапка.ДокументОснованиеНомер          КАК втДанныеДокументовументОснованиеНомер,
    Шапка.ОтветственноеЛицо               КАК ОтветственноеЛицо,
    Шапка.Организация                     КАК Организация,
    Шапка.Склад.Представление             КАК ПредставлениеСклада,
    Шапка.СчетУчетаБУ                     КАК СчетУчетаБУ,
    Шапка.Склад                           КАК Склад,
    Шапка.ПричинаПроведенияИнвентаризации КАК ПричинаПроведенияИнвентаризации
ИЗ
    втДанныеДокументов КАК Шапка
;
ВЫБРАТЬ
    Товары.Ссылка                   КАК Ссылка,
    Товары.НомерСтроки              КАК НомерСтроки,
    Товары.Номенклатура             КАК Номенклатура,
    Товары.СчетУчета                КАК СубСчет,
    Товары.Количество               КАК Количество,
    Товары.КоличествоУчет           КАК КоличествоПоУчету,
    Товары.Цена                     КАК Цена,
    Товары.Сумма                    КАК Сумма,
    Товары.СуммаУчет                КАК СуммаПоУчету,
    Номенклатура.НаименованиеПолное КАК Товар,
    Номенклатура.Наименование       КАК ТоварКратко,
    Номенклатура.Код                КАК Код,
    Номенклатура.КодПартии          КАК КодПартии,
    ВЫБОР КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул) ТОГДА
        Номенклатура.Артикул
    ИНАЧЕ
        Номенклатура.Код
    КОНЕЦ                           КАК КодАртикул,
    ЕдиницыИзмерения.Код            КАК ЕдиницаИзмеренияКодПоОКЕИ,
    ЕдиницыИзмерения.Наименование   КАК ЕдиницаИзмеренияНаименование
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК Товары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    втДанныеДокументов КАК втДанныеДокументов ПО Товары.Ссылка = втДанныеДокументов.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    Справочник.Номенклатура КАК Номенклатура 
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ
            Справочник.КлассификаторЕдиницИзмерения КАК ЕдиницыИзмерения ПО Номенклатура.ЕдиницаИзмерения = ЕдиницыИзмерения.Ссылка
    ПО Товары.Номенклатура = Номенклатура.Ссылка
;
ВЫБРАТЬ
    Комиссия.Ссылка       КАК Ссылка,
    Комиссия.НомерСтроки  КАК НомерСтроки,
    Комиссия.ФизЛицо      КАК ФизЛицо,
    Комиссия.Председатель КАК Председатель
ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе.ИнвентаризационнаяКомиссия КАК Комиссия
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    втДанныеДокументов КАК втДанныеДокументов ПО Комиссия.Ссылка = втДанныеДокументов.Ссылка
Потом что-то вроде Пакет = Запрос.ВыполнитьПакет(); Шапка = Пакет[1].Выбрать(); ТЧ_Товары = Пакет[1].Выгрузить(); ТЧ_Комиссия = Пакет[2].Выгрузить(); Ну или через итоги и обход группировок, как больше нравится.

И, хоть убейте, но не понимаю, зачем вам вытаскивать значение реквизита "КодПартии" из СубконтоДт3, если его можно получить из самой номенклатуры. Либо я не понял смысла соединения с регистром бухгалтерии.
Вопрос: Ошибка выполнения запроса (не допускается обращение к табличным частям)

Добрый день, уважаемые ГУРУ.
Просьба помочь разобраться с кодом. Загвоздка в следующем:
Под полными правами формируется без вопросов.
Код:
    ДатаКонца = ДатаНачала;
    // Определим дату конца
    Выборка = ГруппировкиСтрок1.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, мНазваниеПериода);
    Пока Выборка.Следующий() цикл
        ТекДата = Выборка[мНазваниеПериода];
        Если ТекДата >= ДатаНачала тогда
            Если ТекДата > ДатаКонца тогда
                ДатаКонца = ТекДата; // Дата конца как максимальная дата в запросе
            КонецЕсли;
            // На остаток влияют только размещенные заявки
            Остатки[ТекДата] = Выборка.Сумма;
        КонецЕсли;
    КонецЦикла;
    Выборка = ГруппировкиСтрок2.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, мНазваниеПериода);
    Пока Выборка.Следующий() цикл
        ТекДата = Выборка[мНазваниеПериода];
        Если ТекДата >= ДатаНачала тогда
            Если ТекДата > ДатаКонца тогда
                ДатаКонца = ТекДата; // Дата конца как максимальная дата в запросе
            КонецЕсли;
            Если Остатки[ТекДата] = Неопределено тогда
                Остатки[ТекДата] = 0;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
Ответ:
Просто если файловая то можно было в привелигерованом запускать и без проблем.
А вы можете отладчиком пройтись и посмтреть какой в коне запрос то получается уВас у посроителя и его прикрепить а не весь код
Вопрос: Долгое выполнение запроса.

Здравствуйте.

Есть запрос из типового отчета "Статистика чеков" из Розницы 2.2

Код:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЧекиИПозицииПродажиВозврата.Чек КАК ЧекККМ,
    ЧекиИПозицииПродажиВозврата.Позиция КАК КоличествоПозиций,
    ВЫБОР
        КОГДА ЧекиИПозицииПродажиВозврата.Чек.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
            ТОГДА ЧекиИПозицииПродажиВозврата.Позиция
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоПозицийПродажи,
    ВЫБОР
        КОГДА ЧекиИПозицииПродажиВозврата.Чек.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
            ТОГДА ЧекиИПозицииПродажиВозврата.Позиция
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоПозицийВозврата
ПОМЕСТИТЬ ЧекиИКоличествоПозиций
ИЗ
    (ВЫБРАТЬ
        ЧекиИПозиции.Чек КАК Чек,
        СУММА(ЧекиИПозиции.Позиция) КАК Позиция
    ИЗ
        (ВЫБРАТЬ РАЗЛИЧНЫЕ
            ЧекККМТовары.Ссылка КАК Чек,
            ЧекККМТовары.Номенклатура КАК Номенклатура,
            ЧекККМТовары.Характеристика КАК Характеристика,
            1 КАК Позиция
        ИЗ
            Документ.ЧекККМ.Товары КАК ЧекККМТовары
        ГДЕ
            ЧекККМТовары.Ссылка.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный)
            И ЧекККМТовары.Ссылка.Дата >= &НачалоПериода
            И (ЧекККМТовары.Ссылка.Дата <= &КонецПериода
                    ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
            И НЕ ЧекККМТовары.Номенклатура В(&Номенклатура)) КАК ЧекиИПозиции
   
    СГРУППИРОВАТЬ ПО
        ЧекиИПозиции.Чек) КАК ЧекиИПозицииПродажиВозврата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЧекККМ.Ссылка КАК ЧекККМ,
    ВЫБОР
        КОГДА ЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
            ТОГДА ЧекККМ.СуммаДокумента
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаПродажи,
    ВЫБОР
        КОГДА ЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
            ТОГДА ЧекККМ.СуммаДокумента
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаВозврата,
    1 КАК КоличчествоЧеков,
    ВЫБОР
        КОГДА ЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоЧековПродажи,
    ВЫБОР
        КОГДА ЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоЧековВозврата
ПОМЕСТИТЬ ЧекиИСумма
ИЗ
    Документ.ЧекККМ КАК ЧекККМ
ГДЕ
    ЧекККМ.СтатусЧекаККМ = ЗНАЧЕНИЕ(Перечисление.СтатусыЧековККМ.Архивный)
    И ЧекККМ.Дата >= &НачалоПериода
    И (ЧекККМ.Дата <= &КонецПериода
            ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
    И ЧекККМ.Магазин = &Магазин
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЧекиИСумма.ЧекККМ.КассаККМ КАК КассаККМ,
    ЧекиИСумма.ЧекККМ.Ответственный КАК Кассир,
    ЧекиИСумма.ЧекККМ.Магазин КАК Магазин,
    ЧекиИСумма.ЧекККМ,
    ЧекиИСумма.СуммаПродажи,
    ЧекиИСумма.СуммаВозврата,
    ЧекиИСумма.КоличчествоЧеков,
    ЧекиИСумма.КоличествоЧековПродажи,
    ЧекиИСумма.КоличествоЧековВозврата,
    ЧекиИКоличествоПозиций.КоличествоПозиций,
    ЧекиИКоличествоПозиций.КоличествоПозицийПродажи,
    ЧекиИКоличествоПозиций.КоличествоПозицийВозврата
ИЗ
    ЧекиИСумма КАК ЧекиИСумма
        ЛЕВОЕ СОЕДИНЕНИЕ ЧекиИКоличествоПозиций КАК ЧекиИКоличествоПозиций
        ПО ЧекиИСумма.ЧекККМ = ЧекиИКоличествоПозиций.ЧекККМ
Запрос из СКД. И я в него вставил только условия в ГДЕ на магазин и на номенклатуру не в списке.
В отчёте этот запрос выполняется по всем магазинам быстрее чем у меня по одному.
Время выполнения по одному магазину 350 сек. Это при том что я выбираю данные за 7 дней. И в результате выборки всего 660 строк.
Ответ:
я бы начал с того, что
а) рассказал - какие поля выводятся в типовом отчете
б) получил актуальный текст запроса который выводится с полями из а)
Вопрос: v7: 1C++ :: Сбрасывание замера производительности при выполнении прямого запроса

Кто-нибудь обращал внимание, что при выполнении прямого запроса 1С++, при включенном замере производительности сбрасывается накопленное время. Вчера случайно заметили, что отладчик не показывает время исполнения кода до прямого запроса. Кто-нибудь сталкивался с таким?
Ответ: Похоже проблема с замером возникает все же не из-за запроса, а из-за вызова класса в классе.