Имя: Пароль:
1C
1С v8
Хитрый запрос с временной таблицей
0 Dmitriy_
Kolesnikov
 
19.12.19
05:15
Вопрос по платформе. Есть такой запрос.

        "ВЫБРАТЬ
        |    СтраховыеВзносыСведенияОДоходах.ФизическоеЛицо КАК ФизическоеЛицо,
        |    СтраховыеВзносыСведенияОДоходах.ВидДохода КАК ВидДохода,
        |    СтраховыеВзносыСведенияОДоходах.ДатаПолученияДохода КАК ДатаПолученияДохода,
        |    СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиНаДоплатуЛетчикам КАК ОблагаетсяВзносамиНаДоплатуЛетчикам,
        |    СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиНаДоплатуШахтерам КАК ОблагаетсяВзносамиНаДоплатуШахтерам,
        |    СтраховыеВзносыСведенияОДоходах.ЯвляетсяДоходомФармацевта КАК ЯвляетсяДоходомФармацевта,
        |    ВЫБОР
        |        КОГДА СтраховыеВзносыСведенияОДоходах.ЯвляетсяДоходомЧленаЭкипажаСуднаПодФлагомРФ
        |            ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыТарифовСтраховыхВзносов.ДляЧленовЭкипажейМорскихСудовПодФлагомРФ)
        |        ИНАЧЕ СтраховыеВзносыСведенияОДоходах.ЛьготныйТерриториальныйТариф
        |    КОНЕЦ КАК ЛьготныйТерриториальныйТариф,
        |    СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиЗаЗанятыхНаРаботахСДосрочнойПенсией КАК ОблагаетсяВзносамиЗаЗанятыхНаРаботахСДосрочнойПенсией,
        |    СтраховыеВзносыСведенияОДоходах.КлассУсловийТруда КАК КлассУсловийТруда,
        |    СУММА(СтраховыеВзносыСведенияОДоходах.Сумма) КАК Сумма,
        |    СУММА(СтраховыеВзносыСведенияОДоходах.Скидка) КАК Скидка,
        |    СтраховыеВзносыСведенияОДоходах.Начисление КАК Начисление,
        |    СтраховыеВзносыСведенияОДоходах.Сотрудник КАК Сотрудник,
        |    СтраховыеВзносыСведенияОДоходах.Подразделение КАК Подразделение,
        |    СтраховыеВзносыСведенияОДоходах.ДатаНачала КАК ДатаНачала,
        |    СтраховыеВзносыСведенияОДоходах.ОблагаетсяЕНВД КАК ОблагаетсяЕНВД
        |ПОМЕСТИТЬ ВТЗаписиЗаПрошлыйПериод
        |ИЗ
        |    РегистрНакопления.СведенияОДоходахСтраховыеВзносы КАК СтраховыеВзносыСведенияОДоходах
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыЗаПериод КАК ДоходыЗаПериод
        |        ПО СтраховыеВзносыСведенияОДоходах.ФизическоеЛицо = ДоходыЗаПериод.ФизическоеЛицо
        |            И СтраховыеВзносыСведенияОДоходах.ВидДохода.ВходитВБазуПФР = ДоходыЗаПериод.ОблагаетсяВзносамиВПФР
        |            И СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиНаДоплатуЛетчикам = ДоходыЗаПериод.ОблагаетсяВзносамиНаДоплатуЛетчикам
        |            И СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиНаДоплатуШахтерам = ДоходыЗаПериод.ОблагаетсяВзносамиНаДоплатуШахтерам
        |            И СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиЗаЗанятыхНаРаботахСДосрочнойПенсией = ДоходыЗаПериод.ОблагаетсяВзносамиЗаЗанятыхНаРаботахСДосрочнойПенсией
        |            И СтраховыеВзносыСведенияОДоходах.КлассУсловийТруда = ДоходыЗаПериод.КлассУсловийТруда
        |ГДЕ
        |    СтраховыеВзносыСведенияОДоходах.Регистратор <> &ИсключаемыйРегистратор
        |    И СтраховыеВзносыСведенияОДоходах.ГоловнаяОрганизация = &ГоловнаяОрганизация
        |    И СтраховыеВзносыСведенияОДоходах.Организация = &Организация
        |    И ДоходыЗаПериод.Результат >= 0
        |    И НЕ СтраховыеВзносыСведенияОДоходах.ПоАктуПроверки
        |    И СтраховыеВзносыСведенияОДоходах.ДатаПолученияДохода < &Начало
        |    И СтраховыеВзносыСведенияОДоходах.Период МЕЖДУ &Начало И &Окончание
        |
        |СГРУППИРОВАТЬ ПО
        |    СтраховыеВзносыСведенияОДоходах.ФизическоеЛицо,
        |    СтраховыеВзносыСведенияОДоходах.ВидДохода,
        |    СтраховыеВзносыСведенияОДоходах.ДатаПолученияДохода,
        |    СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиНаДоплатуЛетчикам,
        |    СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиНаДоплатуШахтерам,
        |    СтраховыеВзносыСведенияОДоходах.ЯвляетсяДоходомФармацевта,
        |    ВЫБОР
        |        КОГДА СтраховыеВзносыСведенияОДоходах.ЯвляетсяДоходомЧленаЭкипажаСуднаПодФлагомРФ
        |            ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыТарифовСтраховыхВзносов.ДляЧленовЭкипажейМорскихСудовПодФлагомРФ)
        |        ИНАЧЕ СтраховыеВзносыСведенияОДоходах.ЛьготныйТерриториальныйТариф
        |    КОНЕЦ,
        |    СтраховыеВзносыСведенияОДоходах.ОблагаетсяВзносамиЗаЗанятыхНаРаботахСДосрочнойПенсией,
        |    СтраховыеВзносыСведенияОДоходах.КлассУсловийТруда,
        |    СтраховыеВзносыСведенияОДоходах.Начисление,
        |    СтраховыеВзносыСведенияОДоходах.Сотрудник,
        |    СтраховыеВзносыСведенияОДоходах.Подразделение,
        |    СтраховыеВзносыСведенияОДоходах.ДатаНачала,
        |    СтраховыеВзносыСведенияОДоходах.ОблагаетсяЕНВД
        |
        |ИМЕЮЩИЕ
        |    СУММА(СтраховыеВзносыСведенияОДоходах.Сумма) < 0";

Вроде бы результат помещается во временную таблицу.
Но! Если сделать Запрос.Выполнить().Выгрузить(), то результатом будет одна строка с полем "Количество". Хотя в запросе такого поля нет.
Почему? Где это документировано?
1 ДенисЧ
 
19.12.19
05:16
Он тебе возвращает количество строк в последнем запросе.
А последний запрос возвращает количество строк, помещённых в ВТ.
Так что ничего странного
2 Dmitriy_
Kolesnikov
 
19.12.19
05:26
Попробуй в консоли выполнить запрос:
выбрать 0 как Сумма поместить ВТЗаписиЗаПрошлыйПериод
Никакого количества не вернется.
3 Галахад
 
гуру
19.12.19
05:47
(2) Наверное от консоли запросов зависит. У меня "Количество" 1.
4 Dmitriy_
Kolesnikov
 
19.12.19
05:53
То есть если в запросе ничего не выбирается, кроме как во временные таблицы, то Запрос.Выполнить().Выгрузить() всегда покажет количество строк в последней временной таблице?
5 Галахад
 
гуру
19.12.19
06:17
Ну да.
6 Сияющий в темноте
 
19.12.19
09:02
есть ввполнить пакет и т.п.,которые возвращают то,что нужно с подробным описанием в справке.
7 pasha_d
 
19.12.19
10:08
Убери "Поместить" и конструкция Запрос.Выполнить().Выгрузить() вернет тебе ТЗ.
8 Cyberhawk
 
19.12.19
10:25
ВыполнитьПакет
9 Cyberhawk
 
19.12.19
10:25
Точнее ВыполнитьПакетСПромежуточнымиДанными - тогда вернет саму ВТ
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.