8.х Использование РезультатЗапроса.Выбрать()

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Akiv, 22 сен 2006.

  1. TopicStarter Overlay
    Akiv
    Offline

    Akiv

    Регистрация:
    18 сен 2006
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    В понедельник сдавать отчет. Вообщем дали задание переделать расчетную ведомость Т-51.
    Есть запрос вида
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Данные.Организация КАК Организация,
    Данные.Организация.КодПоОКПО КАК ОрганизацияКодПоОКПО,
    Данные.ФизЛицо КАК ФизЛицо,
    Данные.Организация.Представление КАК ОрганизацияПредставление,
    Данные.ФизЛицо.Наименование КАК ФизЛицоНаименование,
    Данные.Группа,
    Данные.ВидаРасчета,
    Данные.ИмяВидаРасчета,
    Данные.ПриоритетВидаРасчета КАК ПриоритетВидаРасчета,
    СУММА(Данные.Результат) КАК Результат,
    Данные.Должность КАК Должность,
    Данные.ТабельныйНомер КАК ТабельныйНомер
    ИЗ Данные
    ИТОГИ СУММА(Результат) ПО
    Организация, Физлицо, Группа, ВидаРасчета


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

    Проблема в том что в этом случае Выборка2 содержит те ВидаРасчета которые есть у текущего Физлицо а должна содержать все ВидаРасчета которые есть у Группа = "Всего начислено". Если Выборка2 записать как Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ВидаРасчета", "Все"); то в ней будут все ВидаРасчета содержащиеся как в Группа = "Всего начислено" так и в остальных Группа.
    Пример того что нужно:
    Физлицо Группа ВидаРасчета Результат
    ИвановИванИванович Всего начислено оклад по дням 10000

    Физлицо Группа ВидаРасчета Результат
    ИвановИванИванович Всего начислено начисление null
    вот такого вид нужна выборка

Поделиться этой страницей