Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
26 Сен 2020, 18:29
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: помогите плиз с отчетом!  (Прочитано 3326 раз)

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

Оффлайн masster11

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-04-25
  • Сайт: 
Всем доброго времени суток!
Помогите плиз с отчетом. Отчет работает нормально, если в периодах одинаковое количество услуг (Рис.1)[)
Но если в периодах разное количество услуг, то услуги сверху не добавляются, т.е. например не понятно к какой услуге относится сумма 376,32 за период 01.01.2009  (Рис.2))


модуль:

 Процедура Сформировать()

   Таб = СоздатьОбъект("ТаблицаЗначений");
   Таб.НоваяКолонка("Услуга",     "ВидРасчета",20);
   Таб.НоваяКолонка("Период",     "Дата");
   Таб.НоваяКолонка("Начисления", "Число",20,2);

    ДатаПериода=НачМесяца(Дата1);
   Пока ДатаПериода<Дата2 Цикл
//********************************************************  НАЧИСЛЕНИЯ
   ЖН  = СоздатьОбъект("ЖурналРасчетов.Нач_" + ДатаГод(ДатаПериода)+"_"+Формат(ДатаМесяц(ДатаПериода),"Ч(0)2.0"));
//*******************************************************   ПЕРЕРАСЧЕТ НАЧИСЛЕНИЙ
   ЖПН = СоздатьОбъект("ЖурналРасчетов.ПРН_" + ДатаГод(ДатаПериода)+"_"+Формат(ДатаМесяц(ДатаПериода),"Ч(0)2.0"));
//********************************************************  ЛЬГОТЫ
   ЖЛ  = СоздатьОбъект("ЖурналРасчетов.Льг_" + ДатаГод(ДатаПериода)+"_"+Формат(ДатаМесяц(ДатаПериода),"Ч(0)2.0"));
//*******************************************************   ПЕРЕРАСЧЕТ_ЛЬГОТ
   ЖПЛ = СоздатьОбъект("ЖурналРасчетов.ПРЛ_" + ДатаГод(ДатаПериода)+"_"+Формат(ДатаМесяц(ДатаПериода),"Ч(0)2.0"));


 
//********************************************************  НАЧИСЛЕНИЯ
            ЖН.ВыбратьПериодПоОбъекту(ЛС.ТекущийЭлемент(),ДатаПериода);
            Пока ЖН.ПолучитьЗапись() = 1 Цикл
               Таб.НоваяСтрока();
               Таб.Услуга = ЖН.ВидРасч;
               Таб.Начисления = Таб.Начисления + ЖН.Результат;
               Таб.Период = ДатаПериода;
            КонецЦикла;
//*******************************************************   ПЕРЕРАСЧЕТ НАЧИСЛЕНИЙ
            ЖПН.ВыбратьПериодПоОбъекту(ЛС.ТекущийЭлемент(),ДатаПериода);
            Пока ЖПН.ПолучитьЗапись() = 1 Цикл
               Таб.НоваяСтрока();
               Таб.Услуга = ЖПН.ВидРасч;
               Таб.Начисления = Таб.Начисления + ЖПН.Результат;
               Таб.Период = ДатаПериода;
            КонецЦикла;
//********************************************************  ЛЬГОТЫ
            ЖЛ.ВыбратьПериодПоОбъекту(ЛС.ТекущийЭлемент(),ДатаПериода);
            Пока ЖЛ.ПолучитьЗапись() = 1 Цикл
               Таб.НоваяСтрока();
               Таб.Услуга = ЖЛ.ВидРасч;
               Таб.Начисления = Таб.Начисления - ЖЛ.Результат;
               Таб.Период = ДатаПериода;
            КонецЦикла;
//*******************************************************   ПЕРЕРАСЧЕТ_ЛЬГОТ
            ЖПЛ.ВыбратьПериодПоОбъекту(ЛС.ТекущийЭлемент(),ДатаПериода);
            Пока ЖПЛ.ПолучитьЗапись() = 1 Цикл
               Таб.НоваяСтрока();
               Таб.Услуга = ЖПЛ.ВидРасч;
               Таб.Начисления = Таб.Начисления - ЖПЛ.Результат;
               Таб.Период = ДатаПериода;
            КонецЦикла;
//_________________________Свернуть СодРем
      Если СодРем=1 Тогда
         Таб.ВыбратьСтроки();
         Пока Таб.ПолучитьСтроку() = 1 Цикл
            Если Таб.Услуга = ВидРасчета.Лифт Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.СборВывозТБО Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.АДС Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ТБО_ТСЖ Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.УтилизацияТБО Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.Электроизмерение Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.УборкаПодъездовМ2 Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ТехОбслуживаниеЛифтов Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ОбслуживаниеСистемППАиДУ Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.УборкаПридомовойТерритории Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ОбслуживаниеМусоропроводов Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ОсмотрГазовогоОборудования Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ТехОсмотрЭлектроПлит Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.РемонтСДК Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ОсвещениеМОП Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.УслугаРИЦ Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ДиагностикаЛифтов Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ДиспетчеризацияЛифтов Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ТОПУиСД Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.УслугаТСЖ Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.СодержаниеЖилья2008 Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.РемонтЖилья2008 Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.МеханизированнаяУборкаТерритории Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ОбслуживаниеВентиляционныхКаналов Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            ИначеЕсли Таб.Услуга = ВидРасчета.ДератизацияИДезинсекция Тогда
               Таб.Услуга = ВидРасчета.СодержаниеРемонтЖилья2006;
            Иначе продолжить;
            КонецЕсли;
          КонецЦикла;
        КонецЕсли;
   
//________________________________________
           
ДатаПериода=ДобавитьМесяц(ДатаПериода,1);
КонецЦикла;
    Таб.Свернуть("Услуга,Период", "Начисления");
   Т = СоздатьОбъект("Таблица");
   Т.ИсходнаяТаблица("Форма2");
    Таб.Сортировать("Период+,Услуга+");
    Таб.ВыбратьСтроки(); 
    Т.ВывестиСекцию("Шапка|Период");
   пп="***";
   пока Таб.ПолучитьСтроку() = 1 цикл
       Если пп<> Таб.Период Тогда
         Если пп <> "***" Тогда
            прервать;
         КонецЕсли;
         пп=Таб.Период;
      КонецЕсли;
      Т.ПрисоединитьСекцию("Шапка|Строка");
   КонецЦикла;
   Т.ПрисоединитьСекцию("Шапка|Итого");
   Таб.ВыбратьСтроки(); 
   пп="***";
   Начисления=0;
   пока Таб.ПолучитьСтроку() = 1 цикл
          Если пп<> Таб.Период Тогда
            Если пп <> "***" Тогда
               Т.ПрисоединитьСекцию("Период1|Итого");
               Начисления=0;
               КонецЕсли;
            Т.ВывестиСекцию("Период1|Период");
            пп=Таб.Период;
         КонецЕсли;
         Начисления = Начисления + Таб.Начисления;
          Т.ПрисоединитьСекцию("Период1|Строка");
      КонецЦикла;
   Т.ПрисоединитьСекцию("Период1|Итого");
   Т.Показать();
КонецПроцедуры   
СодРем=1;
Дата1=НачМесяца(ДобавитьМесяц(ТекущаяДата(),0));
Дата2=КонМесяца(ТекущаяДата());


Оффлайн masster11

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-04-25
  • Сайт: 
Вот табличная часть

Оффлайн masster11

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-04-25
  • Сайт: 
Блин помогите кто-нибудь, очень надо. денег заплачу блин )

Оффлайн Tatitutu

Добрый день, посмотри мой пример думаю сам разберешся. Если неполучится, пиши -решим вместе.

*  MAGAZKA - лучшая программа для розничного магазина (с) *


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
67 Сообщений
oooo800
39 Сообщений
LexaK
31 Сообщений
Дмитрий Джей Дмитрий Джей
29 Сообщений
IL2016
29 Сообщений
antoneus antoneus
25 Сообщений
DmitriyF DmitriyF
17 Сообщений
Ann_
16 Сообщений
мадам брошкина
13 Сообщений
illiona
10 Сообщений

* Кто онлайн

  • Точка Гостей: 209
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal