helpf.pro
Регистрация

v8:

cherkass
13.04.2017 18:21Прочитано: 1281
Код 1C v 8.х
 Помогите плз.! Есть запрос с группировкой. Из него надо сделать несколько документов 


    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйОстатки.Счет КАК Счет,
        |    ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
        |    ХозрасчетныйОстатки.Субконто2,
        |    ХозрасчетныйОстатки.Субконто3,
        |    ХозрасчетныйОстатки.Организация,
        |    ХозрасчетныйОстатки.НалоговоеНазначение,
        |    ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток,
        |    ХозрасчетныйОстатки.СуммаОстатокДт,
        |    ХозрасчетныйОстатки.СуммаОстатокКт
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет =Счет, , ) КАК ХозрасчетныйОстатки
        |ИТОГИ
        |    СУММА(СуммаОстаток)
        |ПО
        |    Субконто1";
    
    Запрос.УстановитьПараметр("Дата", Параметры.ДатаВводаНО);
    Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.РасчетыСОтечественнымиПокупателями);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    СуммыДолга = Новый ТаблицаЗначений;
    
    
    СуммыДолга.Колонки.Добавить("ВидЗадолженности");
    СуммыДолга.Колонки.Добавить("ДоговорКонтрагента");
    СуммыДолга.Колонки.Добавить("ДокументРасчетовСКонтрагентом");
    СуммыДолга.Колонки.Добавить("НалоговоеНазначение");
    СуммыДолга.Колонки.Добавить("Сделка");
    СуммыДолга.Колонки.Добавить("СтавкаНДС");
    СуммыДолга.Колонки.Добавить("Сумма");
    СуммыДолга.Колонки.Добавить("СуммаВзаиморасчетов");
    СуммыДолга.Колонки.Добавить("СуммаНДС");
    СуммыДолга.Колонки.Добавить("СуммаСебестоимостиНУ");
    //СуммыДолга.Колонки.Добавить("");
    //СуммыДолга.Колонки.Добавить("");
    //СуммыДолга.Колонки.Добавить("");
    //СуммыДолга.Колонки.Добавить("");
    //СуммыДолга.Колонки.Добавить("");
    
    ВыборкаСубконто1 = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаСубконто1.Следующий() Цикл
        // Вставить обработку выборки ВыборкаСубконто1
        СуммыДолга.Очистить();
        
        ИсходящиеДанные = Новый Структура;
        ИсходящиеДанные.Вставить("Дата", Параметры.ДатаВводаНО);
        ИсходящиеДанные.Вставить("КонтрагентДебитор", ВыборкаСубконто1.Субконто1);
        ИсходящиеДанные.Вставить("Комментарий", "Перенос остатков товаров на " + Строка(Параметры.ДатаВводаНО));
        ВыборкаДетальныеЗаписи = ВыборкаСубконто1.Выбрать();
        
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            // Вставить обработку выборки ВыборкаДетальныеЗаписи
            
            НС = СуммыДолга.Добавить();
            
            НС.ВидЗадолженности = ?(ВыборкаДетальныеЗаписи.СуммаОстатокДт > 0, "Дебиторская", "Кредиторская");
            НС.ДоговорКонтрагента = ВыборкаДетальныеЗаписи.Субконто2;
            НС.ДокументРасчетовСКонтрагентом = ВыборкаДетальныеЗаписи.Субконто3;
            НС.НалоговоеНазначение = Неопределено;
            НС.Сделка = ВыборкаДетальныеЗаписи.Субконто3;
            НС.СтавкаНДС = "НДС20";
            НС.Сумма = ВыборкаДетальныеЗаписи.СуммаОстаток;
            НС.СуммаВзаиморасчетов = ВыборкаДетальныеЗаписи.СуммаОстаток;
            НС.СуммаНДС = 0;
            НС.СуммаСебестоимостиНУ = ВыборкаДетальныеЗаписи.СуммаОстаток;
            
            а = 0;
            
            Организация = ВыборкаДетальныеЗаписи.Организация;
        КонецЦикла;
        
        //ИсходящиеДанные.Вставить("НалоговоеНазначениеДоходовИЗатрат", НалоговоеНазначениеДоходовИЗатрат);
        ИсходящиеДанные.Вставить("Организация", Организация);
        //ИсходящиеДанные.Вставить("ТаблицаРегистровНакопления", ТаблицаИменРегистров);
        ИсходящиеДанные.Вставить("СуммыДолга", СуммыДолга);
        
        
        ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "КорректировкаДолга_361");
        
        
        
    КонецЦикла;
    
    
В результате загрузки в базу приемник создается только последний документ. Как правильно сделать?
Yandex
Возможно, вас также заинтересует
Реклама на портале
cherkass
21.04.2017 12:27Ответ № 1
Вопрос закрыт!
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.