Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 03:41

Данные в отчете

Автор tserj4, 05 ноя 2013, 11:37

0 Пользователей и 1 гость просматривают эту тему.

tserj4

Добрый день.
Есть отчет по суммам доставки, нужно в этом отчете чтобы учитывалась сумма поступления денежных средств, т.к. оплата по пластиковым картам учитывается этим документом.
Подставлял эту сумму всеми способами, но в отчет она все равно не попадает.
"ВЫБРАТЬ
     |    Доставка.Экипаж КАК Экипаж,
     |    Доставка.Заказ КАК ДокументРезерва,
     |    Доставка.ДокДоставка КАК Доставка,
     |    ТоварыВРезервеНаСкладахОстатки.Номенклатура,
     |    ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры,
     |    ТоварыВРезервеНаСкладахОстатки.Склад,
     |    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
     |    РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток
     |ИЗ
     |    (ВЫБРАТЬ
     |        Доставка.Ссылка КАК ДокДоставка,
     |        Доставка.Заказ КАК Заказ,
     |        Доставка.Экипаж КАК Экипаж
     |    ИЗ
     |        Документ.Доставка КАК Доставка
     |    ГДЕ
     |        Доставка.ДатаДоставки = &ДатаДоставки) КАК Доставка
     |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаОтчета," + ?(ЗначениеЗаполнено(Склад),СтрокаОтбораСклад, "") + " ) КАК ТоварыВРезервеНаСкладахОстатки
     |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКонтрагентами.Остатки КАК РасчетыСКонтрагентамиОстатки
     |            ПО ТоварыВРезервеНаСкладахОстатки.ДокументРезерва = РасчетыСКонтрагентамиОстатки.Сделка
     |        ПО Доставка.Заказ = ТоварыВРезервеНаСкладахОстатки.ДокументРезерва
     |    " + ?(ЗначениеЗаполнено(Экипаж),СтрокаОтбораЭкипаж, "") + "
     |
     |УПОРЯДОЧИТЬ ПО
     |    ТоварыВРезервеНаСкладахОстатки.ДокументРезерва.Номер
     |ИТОГИ
     |    СРЕДНЕЕ(СуммаВзаиморасчетовОстаток)
     |ПО
     |    Экипаж,
     |    Доставка,
     |    ДокументРезерва");
    //|                " + ?(ЗначениеЗаполнено(Склад),СтрокаОтбораСклад, "") + " ) КАК ТоварыВРезервеНаСкладахОстатки
   
   
    Запрос.УстановитьПараметр("ДатаОтчета", КонецДня(ДатаОтчета));
    Запрос.УстановитьПараметр("ДатаДоставки", ДатаОтчета);
    Запрос.УстановитьПараметр("Склад", Склад);
    Запрос.УстановитьПараметр("Экипаж", Экипаж);
   
    ТабДок = Новый ТабличныйДокумент;
    ТабЗаказ = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
    ЭлементыФормы.ПолеТабличногоДокумента.Очистить();
    ОбластьШапка         = Макет.ПолучитьОбласть("Шапка");   
    //ОбластьЗаголовокТаб = Макет.ПолучитьОбласть("ЗаголовокТаб");   
    ОбластьЭкипаж         = Макет.ПолучитьОбласть("Экипаж");
    ОбластьЗаказ         = Макет.ПолучитьОбласть("Заказ");
    ОбластьСтрокаЗаказа = Макет.ПолучитьОбласть("СтрокаЗаказа");
    ОбластьПустаяСтрока    = Макет.ПолучитьОбласть("ПустаяСтрока");
    ОбластьПодвалТаб     = Макет.ПолучитьОбласть("ПодвалТаб");
    ОбластьПодвал         = Макет.ПолучитьОбласть("Подвал");
   
    СтрокаШапки = Формат(ДатаОтчета,"ДФ=dd.MM.yyyy");
    Если ЗначениеЗаполнено(Склад) Тогда
        СтрокаШапки = СтрокаШапки + " по складу : " + Склад;
    КонецЕсли;   
    ОбластьШапка.Параметры.СтрокаШапки = СтрокаШапки;
    ТабДок.Вывести(ОбластьШапка);
    //ТабДок.Вывести(ОбластьЗаголовокТаб);
   
    ВыборкаПоЭкипажам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаПоЭкипажам.Следующий() Цикл
        ОбластьЭкипаж.Параметры.ДанныеЭкипаж = ?(ЗначениеЗаполнено(ВыборкаПоЭкипажам.Экипаж),ВыборкаПоЭкипажам.Экипаж,"НЕ УКАЗАН!");
        ТабДок.Вывести(ОбластьЭкипаж);
       
        ВыборкаПоДоставкам = ВыборкаПоЭкипажам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаПоДоставкам.Следующий() Цикл
            Доставка = ВыборкаПоДоставкам.Доставка;
            ДоставкаПодъем = "";
            ВыборкаПоЗаказам = ВыборкаПоДоставкам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            Пока ВыборкаПоЗаказам.Следующий() Цикл
                ОбластьЗаказ.Параметры.ДатаАкта =  Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy");
                ВыборкаПоНоменклатуре = ВыборкаПоЗаказам.Выбрать();
                //Сообщить("Заказ : " + ВыборкаПоЗаказам.ДокументРезерва);
                // Вывод информации о параметрах заказа
                ЗаказСсылка = ВыборкаПоЗаказам.ДокументРезерва;
               
                ДанныеЗаказа = ПолучениеДанныхЗаказа(ЗаказСсылка);
               
                Если ДанныеЗаказа <> Неопределено Тогда
                    ОбластьЗаказ.Параметры.Заполнить(ДанныеЗаказа);
                КонецЕсли;
                ОбластьЗаказ.Параметры.Доставка = Доставка;
               
                // Формируем строку с данными о доставке
               
                Если Доставка.фл_ДоставкаПоФакту Тогда
                    ДоставкаПодъем = "Стоимость доставки расчитывается по факту";
                Иначе
                    ДоставкаПодъем = "Доставка: " + Доставка.СуммаДоставки + "р. + подъем: ";
                    Если Доставка.фл_Подъема тогда                   
                        ДоставкаПодъем = ДоставкаПодъем + ?(Доставка.СуммаПодъема = 0, "бесплатно. ", "" + Доставка.СуммаПодъема + "р.");
                    Иначе
                        ДоставкаПодъем = ДоставкаПодъем + " 0р.";
                    КонецЕсли;
                КонецЕсли;   
                                         
                ОбластьЗаказ.Параметры.ДоставкаПодъем  = ДоставкаПодъем;
               
                Если
                ОбластьЗаказ.Параметры.ТекстВзаиморасчетов = "Заказ на сумму: " + ЗаказСсылка.СуммаДокумента 
                " руб. Оплачено: " + (ЗаказСсылка.СуммаДокумента - ?(ВыборкаПоЗаказам.СуммаВзаиморасчетовОстаток = NULL  0, ВыборкаПоЗаказам.СуммаВзаиморасчетовОстаток ))
                " руб. Осталось оплатить: " + ?(ВыборкаПоЗаказам.СуммаВзаиморасчетовОстаток = NULL, 0,ВыборкаПоЗаказам.СуммаВзаиморасчетовОстаток) +" руб.";
                КонецЕсли;
                //ТабДок.Вывести(ОбластьЗаказ);
                ТабЗаказ.Вывести(ОбластьЗаказ);
                Пока ВыборкаПоНоменклатуре.Следующий()Цикл
                    //Сообщить("Номенклатура : " + ВыборкаПоНоменклатуре.Номенклатура);
                    // Вывод информации о содержимом заказа
                    ОбластьСтрокаЗаказа.Параметры.Номенклатура     = ВыборкаПоНоменклатуре.Номенклатура;
                    ОбластьСтрокаЗаказа.Параметры.Склад              = ВыборкаПоНоменклатуре.Склад;
                    ОбластьСтрокаЗаказа.Параметры.Количество     = ВыборкаПоНоменклатуре.КоличествоОстаток;
                    ТабЗаказ.Вывести(ОбластьСтрокаЗаказа);
                    //ТабДок.Вывести(ОбластьСтрокаЗаказа);
                КонецЦикла;
                //ТабДок.Вывести(ОбластьПустаяСтрока);
                ТабЗаказ.Вывести(ОбластьПустаяСтрока);
            КонецЦикла;
            ТабДок.Вывести(ТабЗаказ);
            ТабЗаказ.Очистить();
        КонецЦикла;
    КонецЦикла;
   
    ТабДок.ТолькоПросмотр = Истина;
    ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Истина;
    ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ТабДок);

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск