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

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

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 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
40 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal