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

Счет на оплату по старой и новой ставке

Автор sali, 30 окт 2024, 10:53

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

sali

Максим75, ага, да получил...
ВЫБРАТЬ
    НачисленияПоПриборамУчета.Контрагент КАК Контрагент,
    НачисленияПоПриборамУчета.Период КАК Период,
    НачисленияПоПриборамУчета.Регистратор КАК Регистратор,
    НачисленияПоПриборамУчета.НомерСтроки КАК НомерСтроки,
    НачисленияПоПриборамУчета.Активность КАК Активность,
    НачисленияПоПриборамУчета.ВидДвижения КАК ВидДвижения,
    НачисленияПоПриборамУчета.ДоговорАренды КАК ДоговорАренды,
    НачисленияПоПриборамУчета.ОбъектНедвижимости КАК ОбъектНедвижимости,
    НачисленияПоПриборамУчета.Услуга КАК Услуга,
    НачисленияПоПриборамУчета.Сумма КАК Сумма,
    НачисленияПоПриборамУчета.ДоговорКонтрагента КАК ДоговорКонтрагента,
    НачисленияПоПриборамУчета.ВидЦены КАК ВидЦены,
    НачисленияПоПриборамУчета.ФактическаяДатаРегистрации КАК ФактическаяДатаРегистрации,
    НачисленияПоПриборамУчета.ПриборУчета КАК ПриборУчета,
    НачисленияПоПриборамУчета.Цена КАК Цена,
    НачисленияПоПриборамУчета.Кубы КАК Кубы,
    НачисленияПоПриборамУчета.МоментВремени КАК МоментВремени
ИЗ
    РегистрНакопления.НачисленияПоПриборамУчета КАК НачисленияПоПриборамУчета
ГДЕ
    НачисленияПоПриборамУчета.Услуга.Наименование ПОДОБНО "%электроэнергию%"
    И НачисленияПоПриборамУчета.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
ИТОГИ ПО
    Контрагент
[КОПИЯ] АврораГрупп 31.10.2024 17_24_32.png

sali

Максим75, alexandr_ll,  а нужно соединить запрос который есть с новыми данными(выборка с регистра накопления), или соединить регистр накопления с одним из регистров сведений? так как запрос из одного места вынимает недостаточную информацию

Максим75

sali, ну если вынимает недостаточно - то конечно надо соединять. Вам же виднее.

sali

Максим75, так вот соединяю, причем по-разному: если вложенным запросом (регистр накопления) то не выдает, а если Временной Таблицей то выдает 10+ данных одни и те же (копированные)

Максим75

sali, знаете, я ванговать не умею, поэтому не могу знать, что Вам необходимо сделать.
Вы спрашивали за цену, Вам посоветовали где ее взять.
Четко опишите что необходимо получить, приведите весь запрос, чтобы было хоть что-то для препарирования.

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

sali

Максим75, хорошо постараюсь лучше объяснить суть задачи

sali

&НаСервере
Процедура ЗаполнитьТабличныйДокумент() 
   
    Запрос1 = Новый Запрос;
    Запрос1.Текст =  "ВЫБРАТЬ
    |    НачисленияПоПриборамУчета.ДоговорАренды.Организация.ИНН КАК ИНН,
    |    НачисленияПоПриборамУчета.ДоговорАренды.Организация.НаименованиеПолное КАК Организация,
    |    НачисленияПоПриборамУчета.Услуга КАК Услуга
    |ИЗ
    |    РегистрНакопления.НачисленияПоПриборамУчета КАК НачисленияПоПриборамУчета
    |ГДЕ
    |    НачисленияПоПриборамУчета.ДоговорАренды.Контрагент = &Контрагент
    |    И НачисленияПоПриборамУчета.Период >= &Период
    |    И НачисленияПоПриборамУчета.Период <= &ПериодК
    |    И НачисленияПоПриборамУчета.Услуга.Наименование ПОДОБНО ""%электроэнергию%""" ;
   
    ЗапросНач = Новый Запрос;
    ЗапросНач.Текст =  "ВЫБРАТЬ
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.Контрагент.НаименованиеПолное КАК Контрагент,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.Документ КАК Документ,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.Номенклатура КАК Номенклатура,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.ОбъектНедвижимости КАК Объект,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.СуммаБезУчетаНалогов КАК Всего,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.СуммаНДС КАК НДС,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.СуммаНСП КАК НСП,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.СуммаВсего КАК ВсегоСУчетомНалогов,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.БезНаличныйРасчет КАК БезНаличныйРасчет,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.ДоговорАренды.Организация.ИНН КАК ДоговорАрендыОрганизацияИНН,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.ДоговорАренды.Организация.Наименование КАК ДоговорАрендыОрганизацияНаименование,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.ДоговорАренды КАК ДоговорАренды,
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.ПриборУчета КАК ПриборУчета
    |ПОМЕСТИТЬ ВременнаяТаблица
    |ИЗ
    |    РегистрСведений.НачисленияПоКонтрагентам_Извещения.СрезПоследних(&Период, Регистратор = &Регистратор) КАК НачисленияПоКонтрагентам_ИзвещенияСрезПоследних
    |ГДЕ
    |    НачисленияПоКонтрагентам_ИзвещенияСрезПоследних.Номенклатура.Наименование ПОДОБНО ""%электроэнергию%""
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.Регистратор КАК Регистратор,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.ПриборУчета КАК ПриборУчета,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.Услуга КАК Услуга,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.ДоговорАренды КАК ДоговорАренды,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.ФактическоеОкончание КАК ФактическоеОкончание,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.ФактическоеНачало КАК ФактическоеНачало,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.РазницаПоказаний КАК Разница,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.РазницаФакт КАК РазницаФакт,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.Цена КАК Цена,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.Показание КАК ПоказаниеНаКонецПериода,
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.Показание - ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.РазницаПоказаний КАК ПоказаниеНаНачалоПериода
    |ПОМЕСТИТЬ ВременнаяТаблицаПоказ
    |ИЗ
    |    РегистрСведений.ПоказанияСчетчиковОбъектовНедвижимости.СрезПоследних(&Период, Регистратор ССЫЛКА Документ.АктСнятияПоказанийПриборовУчетаИБиллинга) КАК ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних
    |ГДЕ
    |    ПоказанияСчетчиковОбъектовНедвижимостиСрезПоследних.Услуга.Наименование ПОДОБНО ""%электроэнергию%""
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВременнаяТаблица.Контрагент КАК Контрагент,
    |    ВременнаяТаблица.Документ КАК Документ,
    |    ВременнаяТаблица.Номенклатура КАК Номенклатура,
    |    ВременнаяТаблица.Объект КАК Объект,
    |    ВременнаяТаблица.Всего КАК Всего,
    |    ВременнаяТаблица.НДС КАК НДС,
    |    ВременнаяТаблица.НСП КАК НСП,
    |    ВременнаяТаблица.ВсегоСУчетомНалогов КАК ВсегоСУчетомНалогов,
    |    ВременнаяТаблица.БезНаличныйРасчет КАК БезНаличныйРасчет,
    |    ВременнаяТаблица.ДоговорАрендыОрганизацияИНН КАК ДоговорАрендыОрганизацияИНН,
    |    ВременнаяТаблица.ДоговорАрендыОрганизацияНаименование КАК ДоговорАрендыОрганизацияНаименование,
    |    ВременнаяТаблица.ДоговорАренды КАК ДоговорАренды,
    |    ВременнаяТаблица.ПриборУчета КАК ПриборУчета,
    |    ВременнаяТаблицаПоказ.Регистратор КАК Регистратор,
    |    ВременнаяТаблицаПоказ.ПриборУчета КАК ПриборУчетаИБиллинг,
    |    ВременнаяТаблицаПоказ.ФактическоеОкончание КАК ФактическоеОкончание,
    |    ВременнаяТаблицаПоказ.ФактическоеНачало КАК ФактическоеНачало,
    |    ВременнаяТаблицаПоказ.Разница КАК Разница,
    |    ВременнаяТаблицаПоказ.РазницаФакт КАК РазницаФакт,
    |    ВременнаяТаблицаПоказ.ПоказаниеНаКонецПериода КАК ПоказаниеНаКонецПериода,
    |    ВременнаяТаблицаПоказ.ПоказаниеНаНачалоПериода КАК ПоказаниеНаНачалоПериода,
    |    ВременнаяТаблицаПоказ.Цена КАК Тариф,
    |    ВременнаяТаблица.Объект.ПолезнаяПлощадьОбъектаНедвижимости КАК Метры
    |ИЗ
    |    ВременнаяТаблица КАК ВременнаяТаблица
    |        ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаПоказ КАК ВременнаяТаблицаПоказ
    |        ПО ВременнаяТаблица.ПриборУчета = ВременнаяТаблицаПоказ.ПриборУчета
    |ИТОГИ ПО
    |    Контрагент";
    ЗапросНач.УстановитьПараметр("Период", КонецМесяца(Объект.Период));
    ЗапросНач.УстановитьПараметр("Регистратор", Объект.Документ);
   
   
    //
    //Запрос2.УстановитьПараметр("Контрагент", Объект.Контрагент);
    //Запрос2.УстановитьПараметр("Период", Объект.Период);
    //Запрос2.УстановитьПараметр("Документ",Объект.Документ);
    //Запрос2.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));
   
    Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
    Запрос.УстановитьПараметр("Период", Объект.Период);
    Запрос.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));
   
    //Запрос.УстановитьПараметр("Услуга", Объект.Услуга);
    Запрос1.УстановитьПараметр("Контрагент", Объект.Контрагент);
    Запрос1.УстановитьПараметр("Период", Объект.Период);
    Запрос1.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));
   
    //    Запрос5.УстановитьПараметр("Контрагент", Объект.Контрагент);
    //    Запрос5.УстановитьПараметр("Период", НачалоМесяца(Объект.Период));
    //    Запрос5.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));
   
    //Запрос6.УстановитьПараметр("Контрагент", Объект.Контрагент);
    //Запрос6.УстановитьПараметр("Период", Объект.Период);
    //Запрос6.УстановитьПараметр("ПериодК", КонецМесяца(Объект.Период));
   
    //Запрос1.УстановитьПараметр("Услуга", Объект.Услуга);
   
    ДанныеОрганизации = Запрос1.Выполнить();
    ДанныеНачисления = ЗапросНач.Выполнить();
    //    ДанныеНачмсления2 = Запрос6.Выполнить();
    //    Результат = Запрос.Выполнить();
    //Результат2 = Запрос5.Выполнить();
    Если НЕ ДанныеНачисления.Пустой() Тогда 
        ТабличныйДокумент = Новый ТабличныйДокумент;
       
        ТабличныйДокумент.Очистить();
       
        ТабличныйДокумент.НачатьАвтогруппировкуСтрок();
        Организация = ДанныеОрганизации.Выбрать();
        Организация.Следующий();
        //Начисления = ДанныеНачисления.Выбрать();
       
        //    Начисления2 = ДанныеНачмсления2.Выбрать();
        ВыборкаКонтрагент = ДанныеНачисления.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        //ВыборкаКонтрагентОБЩ = Результат2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаКонтрагент.Следующий() Цикл
            // ВыборкаКонтрагентОБЩ.Следующий();
            ОбластьЗаголовокОбщЭлектро = Макет3.ПолучитьОбласть("Заголовок");
            ОбластьЗаголовокОбщЭлектро.Параметры.Заполнить(Организация);
            ОбластьЗаголовокОбщЭлектро.Параметры.Период = Формат(Объект.Период,"ДФ='MMMM.yyyy'");
           
            ОбластьЗаголовокОбщЭлектро.Параметры.Контрагент = ВыборкаКонтрагент.Контрагент;
            ТабличныйДокумент.Вывести(ОбластьЗаголовокОбщЭлектро);
            ВыборкаДетальныеЗаписи = ВыборкаКонтрагент.Выбрать();
           
            //    ВыброкаДетальныеЗаписиОбщ = ВыборкаКонтрагентОБЩ.Выбрать();
            ОбластьШапкаОбщЭлектро = Макет3.ПолучитьОбласть("Шапка");
            ТабличныйДокумент.Вывести(ОбластьШапкаОбщЭлектро);
            НомерСтроки = 0;
            КонИтогоСумма = 0;
            КонИтого = 0;
            КонИтогоНДС = 0;
            КонИтогоНСП = 0;
           
           
            Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                // Начисления.Следующий();         
                НомерСтроки = НомерСтроки + 1;
                ОбластьСтрокаОбщЭлектро = Макет3.ПолучитьОбласть("Строка");
                ОбластьСтрокаОбщЭлектро.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
                //ОбластьСтрокаОбщЭлектро.Параметры.НДС = Начисления.НДС;
                //ОбластьСтрокаОбщЭлектро.Параметры.НСП = Начисления.НСП;
                //ОбластьСтрокаОбщЭлектро.Параметры.ВсегоСУчетомНалогов = Начисления.ВсегоСУчетомНалогов;
                ОбластьСтрокаОбщЭлектро.Параметры.НомерСтроки = НомерСтроки;
                //ИтогоСумма = ИтогоСумма + ВыборкаДетальныеЗаписи.Всего;
                //Итого = Итого + Начисления.ВсегоСУчетомНалогов;
                //ИтогоНСП = ИтогоНСП + Начисления.НСП;
                //ИтогоНДС = ИтогоНДС + Начисления.НДС;
               
                //ОбластьСтрокаОбщЭлектро.Параметры.Заполнить(ВыброкаДетальныеЗаписиОбщ);
                // ИтогоСумма = ИтогоСумма + ВыброкаДетальныеЗаписиОбщ.Всего;
                КонИтогоСумма = КонИтогоСумма +  ВыборкаДетальныеЗаписи.Всего;
                КонИтого =  КонИтого + ВыборкаДетальныеЗаписи.ВсегоСУчетомНалогов;
                КонИтогоНДС = КонИтогоНДС + ВыборкаДетальныеЗаписи.НДС;
                КонИтогоНСП = КонИтогоНСП + ВыборкаДетальныеЗаписи.НСП;
               
                ТабличныйДокумент.Вывести(ОбластьСтрокаОбщЭлектро);
            КонецЦикла;
           
            НомерСтроки3 = 0;
            ИтогоСумма3 = 0;
            Итого3 = 0;
            ИтогоНСП3 = 0;
            ИтогоНДС3 = 0;
            НомерСтроки3 = НомерСтроки;
           
           
            ОбластьПодвалОбщЭлектро = Макет3.ПолучитьОбласть("Подвал");
            ОбластьПодвалОбщЭлектро.Параметры.Заполнить(Организация);
            ОбластьПодвалОбщЭлектро.Параметры.ИтогоСумма = Формат(КонИтогоСумма, "ЧДЦ='2'");
            ОбластьПодвалОбщЭлектро.Параметры.Итого = Формат(КонИтого, "ЧДЦ='2'");
            ОбластьПодвалОбщЭлектро.Параметры.ИтогоНДС = Формат(КонИтогоНДС , "ЧДЦ='2'");
            ОбластьПодвалОбщЭлектро.Параметры.ИтогоНСП = Формат(КонИтогоНСП , "ЧДЦ='2'");
            ОбластьПодвалОбщЭлектро.Параметры.Директор = Директор;
            ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
            ТабличныйДокумент.АвтоМасштаб = Истина;
            ТабличныйДокумент.Вывести(ОбластьПодвалОбщЭлектро);
           
            ОбластьОтрывОбщЭлектро = Макет3.ПолучитьОбласть("Отрыв");
            ТабличныйДокумент.Вывести(ОбластьОтрывОбщЭлектро);
            //ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           
        КонецЦикла;
       
       
    Иначе
        Сообщить("Данных за элетроэнергию не обнаружено!");
    КонецЕсли;
   
.
.
.
КонецПроцедуры
[/codeо]
это часть кода/запроса отвечающая за данные по электроэнергии, дальше идет код по отоплению или водоснабжению. если нам нужно сделать извещение то [attach id=45492][КОПИЯ] АврораГрупп 01.11.2024 17_34_02.png[/attach] здесь есть 2 оплаты по электроэнергии, которые как и говорил раньше оплачены по двум разным тарифам и по половине месяца. так как в начале месяца тариф за электричество был 3.18, а на половине месяца его изменили на 3.77. соответственно контрагент оплачивает первую часть месяца по тарифу 3.18, а вторую по 3.77
[attach id=45494][КОПИЯ] АврораГрупп 01.11.2024 17_53_47.png[/attach][attach id=45496][КОПИЯ] АврораГрупп 01.11.2024 17_53_39.png[/attach] 
это скрин с анализа дт/кт

sali

Максим75, макет извещения выглядит следующим образом [КОПИЯ] АврораГрупп 01.11.2024 17_34_11.png
сюда нужно добавить ту строку с оплатой по 3.18
но и т к берется срез последних и идет установка ВТ по периоду, регистратору берется только тариф 3.77

sali


alexandr_ll

sali, Так это печатная форма документа? Зачем делать запрос по регистрам, когда всё уже есть в табличной части документа?

Теги:

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

Рейтинг@Mail.ru

Поиск