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

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

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

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

sali

доброго времени суток, есть такая задача - есть счета для оплаты по электроэнергии/водоснабжению/отоплению коммерческие и бывает что они обновляются. так вот если на оплату берутся данные из регистра сведений срез последних, то в случае когда половина месяца была оплачена по одной ставке, а другая половина по другой ставке то как такое вывести?
если контрагент имеет 2 оплаты по ставкам к примеру 3,17 и 3,77 то выводиться должно 2 строки в счету, а так пока 1 строка со ставкой 3,77. как в запросе добавить условие чтобы если и оплатили месяц по 2 ставкам то выводилось 2 строки
через выборку когда тогда?
это код который выводит данные счета на оплату по электроэнергии
Запрос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.ПолучитьОбласть("Отрыв");
ТабличныйДокумент.Вывести(ОбластьОтрывОбщЭлектро);
//ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();

КонецЦикла;


Иначе
Сообщить("Данных за элетроэнергию не обнаружено!");
КонецЕсли;

alexandr_ll

sali, Какие движения делает документ оплаты по регистру Начисления по приборам учета?

sali

alexandr_ll, начисления по контрагентам_извещения

alexandr_ll

sali, Движения по этому регистру при начислении и оплате идентичные в разрезе услуг с разной ценой?

sali

alexandr_ll, немного не понимаю, но походу да
[КОПИЯ] АврораГрупп 30.10.2024 16_38_56.png[КОПИЯ] АврораГрупп 30.10.2024 16_36_13.png 

alexandr_ll

sali, нужны движения по регистру накопления. Не знаю, какая у вас конфигурация. Но должен быть регистр накопления, учитывающий начисление и оплату услуг по разным ценам. По начислению - приход, по оплате расход. И сразу должно быть видно остаток по каждой цене услуги.

sali

alexandr_ll, ах РН это - начисления по приборам учета, взаиморасчеты по аренде, фактические взаиморасчеты по аренде. а конфигурация бухгалтерия

alexandr_ll


sali


Максим75

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

Теги:

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

Рейтинг@Mail.ru

Поиск