Как из модуля вынести один счет, чтобы он не попадал в отчет?

1. MikeGorshkov 15.01.18 17:06 Сейчас в теме
//*******************************************
Процедура Сформировать()    
	Если (ДатаГод(Дата2)=2006) и (ДатаГод(Дата1)<>ДатаГод(Дата2)) Тогда
		Предупреждение("С 2006 года отчеты формируются отдельно!");
		Дата1=НачГода(Дата2);
		Возврат;	    
	КонецЕсли;
            Если (Видконкретно.Выбран()=1) и (Видконкретно.ЭтоГруппа()=1) Тогда
                Предупреждение("Выберите конкретную услугу, а не группу услуг!");
				Возврат;
			КонецЕсли;
	сообщить(ТекущееВремя()); 
	Если ВидОтчета=4 Тогда
	    КоличествоЦиклов=3;
	Иначе
		КоличествоЦиклов=1;
	КонецЕсли; 
	Для Счетчик=1 по КоличествоЦиклов Цикл 
		Если КоличествоЦиклов=3 Тогда
		     ВидОтчета=Счетчик;
		КонецЕсли;
	Т = СоздатьОбъект("Таблица");
	Т.ИсходнаяТаблица("Таблица"); 
	Если ВидОтчета=1 Тогда
	    Какой="Полный отчет ";
	Если Конкретно.Выбран()=0 Тогда
	    Какой=Какой+" по всем абонентам";
	Иначе
	    Какой=Какой+" по абоненту (группе): "+Конкретно;
	КонецЕсли;
	ИначеЕсли ВидОтчета=2 Тогда
	    Какой="Госсектор"; 
	Если Конкретно.Выбран()=0 Тогда
	Иначе
	    Какой=Какой+" по абоненту (группе): "+Конкретно;
	КонецЕсли;
	ИначеЕсли ВидОтчета=3 Тогда
	    Какой="Частный сектор"; 
	Если Конкретно.Выбран()=0 Тогда
	Иначе
	    Какой=Какой+" по абоненту (группе): "+Конкретно;
	КонецЕсли;
	КонецЕсли;

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

		 
		Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
			Если Ит.СНД()>0 Тогда
		 СальдоНачДИт=СальдоНачДИт+Ит.СНД();
			Иначе
		 СальдоНачКИт=СальдоНачКИт+Ит.СНД();
			КонецЕсли;   
			Если Ит.СКД()>0 Тогда
		 СальдоКонДИт=СальдоКонДИт+Ит.СКД(); 
			Иначе
		 СальдоКонКИт=СальдоКонКИт+Ит.СКД(); 
			КонецЕсли;
		 НачисленоИт=НачисленоИт+Ит.ДО(); 
		 КонецЕсли;
			//Если Ит.СНД()>0 Тогда
		 //СальдоНачДИт=СальдоНачДИт+Ит.СНД();
			//Иначе
		 //СальдоНачКИт=СальдоНачКИт+Ит.СНД();
			//КонецЕсли;   
			//Если Ит.СКД()>0 Тогда
		 //СальдоКонДИт=СальдоКонДИт+Ит.СКД(); 
			//Иначе
		 //СальдоКонКИт=СальдоКонКИт+Ит.СКД(); 
			//КонецЕсли;
		 //НачисленоИт=НачисленоИт+Ит.ДО(); 
		 
		 Ит.ВыбратьКорСчета();
		 Пока Ит.ПолучитьКорСчет()=1 Цикл
		     Если Ит.КорСчет=СчетПоКоду("ЛГ") Тогда
		          Льгота=Льгота+Ит.КорКО(); 
				 Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
				          ЛьготаИт=ЛьготаИт+Ит.КорКО();
						Иначе
							КвартирЛьготГруппа=КвартирЛьготГруппа+1; 
					 КонецЕсли;
		     КонецЕсли;
		     Если Ит.КорСчет=СчетПоКоду("ЛП") Тогда
		          ЛьготаПерерасчет=ЛьготаПерерасчет+Ит.КорКО(); 
				 Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
				          ЛьготаИтПерерасчет=ЛьготаИтПерерасчет+Ит.КорКО();
						Иначе
					 КонецЕсли;
			КонецЕсли; 
		     Если ДатаГод(Дата2)<2006 Тогда
			     Если Ит.КорСчет=СчетПоКоду("СБ") Тогда
			          Субсидия=Субсидия+Ит.КорКО();
			 				Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
					          СубсидияИт=СубсидияИт+Ит.КорКО(); 
						 КонецЕсли;
					КонецЕсли;
		     Иначе
			     Если Ит.КорСчет=СчетПоКоду("СН") Тогда
			          Субсидия=Субсидия+Ит.КорКО();
			 				Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
					          СубсидияИт=СубсидияИт+Ит.КорКО(); 
						 КонецЕсли;
					КонецЕсли;
		     КонецЕсли;
		     Если Ит.КорСчет=СчетПоКоду("СП") Тогда
		          СубсидияПерерасчет=СубсидияПерерасчет+Ит.КорКО();
		 				Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
				          СубсидияИтПерерасчет=СубсидияИтПерерасчет+Ит.КорКО(); 
					 КонецЕсли;
		     КонецЕсли;
		     Если Ит.КорСчет=СчетПоКоду("ПР") Тогда
		          Перерасчет=Перерасчет+Ит.КорКО();
		 				Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
				          ПерерасчетИт=ПерерасчетИт+Ит.КорКО(); 
					 КонецЕсли;
		     КонецЕсли;
		     Если Ит.КорСчет=СчетПоКоду("КР") Тогда
		          Корректировка=Корректировка+Ит.КорКО();  
		 				Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
				          КорректировкаИт=КорректировкаИт+Ит.КорКО(); 
					 КонецЕсли;
		     КонецЕсли;
		     Если Ит.КорСчет=СчетПоКоду("КС") Тогда
		          Оплата=Оплата+Ит.КорКО(); 
		 				Если (Услуга.ЭтоГруппа()=0) и (Абонент.ЭтоГруппа()=0) Тогда 
				          ОплатаИт=ОплатаИт+Ит.КорКО(); 
					 КонецЕсли;
		     КонецЕсли;
		 КонецЦикла;
		КонецЕсли;
        Если СтарыйАбонент<>Абонент Тогда 
		 СтарыйАбонент=Абонент;	
        Если Абонент.ЭтоГруппа()=0 Тогда  
     		НомА=НомА+1;
			Т.ВывестиСекцию("Абонент"); 
			Иначе
			Т.ВывестиСекцию("Группа");      
        КонецЕсли;

        КонецЕсли;    
		
      		Ном=Ном+1;
			Т.ВывестиСекцию("Строка"); 
		КонецЦикла; 
	КонецЦикла; 

	Т.ВывестиСекцию("Итого"); 
	Т.ТолькоПросмотр(1);
    Т.Опции(0, 0, 6, 2, "Опции36", "Опции36");
//	Т.ОбластьПечати(2);
	Т.ПовторятьПриПечатиСтроки(1,6);
	Т.ПараметрыСтраницы(1,,,,,,,,,1); 
	Т.Показать("Отчет по абонентам","Отчет по абонентам "+ВидКонкретно);  
	//Т.Напечатать(0);  
	сообщить(ТекущееВремя());  
	КонецЦикла;
КонецПроцедуры  
//__________________________________________________________­___________________
Показать



Как из модуля вынести один счет чтоб он не попадал в данный отчет?
Прикрепленные файлы:
Свод по абонентам.ert
Отчет по абонентам.xls
По теме из базы знаний
Найденные решения
22. pentanom 25 15.01.18 21:46 Сейчас в теме
(17)
Если НЕ Услуга.ПолныйКод()="08/02" Тогда		
      		Ном=Ном+1;
			Т.ВывестиСекцию("Строка");
КонецЕсли;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. DJDUH 17 15.01.18 17:35 Сейчас в теме
(1) закомментировать строки
MikeGorshkov; +1 Ответить
2. pentanom 25 15.01.18 17:31 Сейчас в теме
И вы думаете, что кто-то будет разбираться в этом ? Сильно сомневаюсь.
Cooler; MikeGorshkov; +2 Ответить
5. MikeGorshkov 15.01.18 17:39 Сейчас в теме
(2)Много людей добрых на свете
20. Cooler 22 15.01.18 21:34 Сейчас в теме
(5)
Много людей добрых на свете
...но автор в их число явно не входит: код он упорно не форматирует и не оформляет тегами кода, делая его максимально неудобочитаемым.

Разбираться в таком без достаточной мотивации - себя не уважать.
4. MikeGorshkov 15.01.18 17:39 Сейчас в теме
не все счета а только один
6. protexprotex 116 15.01.18 17:57 Сейчас в теме
(4) Добрый день. А вопрос то в чем? - просветите, пожалуйста.
MikeGorshkov; +1 Ответить
7. protexprotex 116 15.01.18 17:58 Сейчас в теме
(4) Аааа. Вы бы хоть в теме писали вопрос, а не в конце модуля.
MikeGorshkov; +1 Ответить
8. protexprotex 116 15.01.18 18:00 Сейчас в теме
(4) Если нужно чтобы, например, счет "05/04" не попадал в отчет, то комментируйте строки:
спр=создатьобъект("справочник.Услуга");
Спр.Найтипокоду("05/04",2);
ВидОтчета=4;
ВидКонкретно=Спр.ТекущийЭлемент();
Сформировать(); 

Комментируется с помощью двух косых наклонных черт - // - тогда строка должна стать зеленой.
MikeGorshkov; +1 Ответить
9. MikeGorshkov 15.01.18 18:13 Сейчас в теме
(8)
ью двух косых наклонных черт - // - тогда строка должна стать зеленой.

В том то и дело что тут счет этот не описан а он все равно выводится в отчет. Вот и думаю куда его прописать чтоб он из бух итогов не подтягивался в отчет и не выводился в табличную часть "строка"
11. protexprotex 116 15.01.18 18:22 Сейчас в теме
(9)Ну так, может, это субсчет? - номер счета какой хотите исключить?
MikeGorshkov; +1 Ответить
21. UtSpar 134 15.01.18 21:39 Сейчас в теме
(9)условием по коду исключить.
10. MikeGorshkov 15.01.18 18:16 Сейчас в теме
(8) Тут еще то что эти данные в процедуре "ПриОткрытии()"
А я ведь ищу в процедуре "Сформировать()"
12. MikeGorshkov 15.01.18 18:25 Сейчас в теме
Счет под Номером "КП" а Услуга под кодом "08/01", "08/02", "08/03"
Это все прописано в конфе как предопределенные.
13. MikeGorshkov 15.01.18 18:27 Сейчас в теме
Самописка досталась от предыдущего программиста, не все вечно под луной... Но что поделать работать надо. Вот и изучаю его код.
14. pentanom 25 15.01.18 19:31 Сейчас в теме
(13)Вы бы выложили результат и что в нем нужно удалить - может быть было бы понятнее.
MikeGorshkov; +1 Ответить
15. MikeGorshkov 15.01.18 20:33 Сейчас в теме
(14)
Прикрепил файл отчета и результат, желтым выделена ненужная строка
16. pentanom 25 15.01.18 21:02 Сейчас в теме
(15) А файла-то нет.
MikeGorshkov; +1 Ответить
17. MikeGorshkov 15.01.18 21:06 Сейчас в теме
(16)В шапке темы
Еще тут продублирую
Прикрепленные файлы:
Свод по абонентам.ert
Отчет по абонентам.xls
22. pentanom 25 15.01.18 21:46 Сейчас в теме
(17)
Если НЕ Услуга.ПолныйКод()="08/02" Тогда		
      		Ном=Ном+1;
			Т.ВывестиСекцию("Строка");
КонецЕсли;
27. MikeGorshkov 16.01.18 03:35 Сейчас в теме
(22) Если (Услуга.ПолныйКод()<>"08/01") и (Услуга.ПолныйКод()<>"08/02") и (Услуга.ПолныйКод()<>"08/03") Тогда
Ном=Ном+1;
Т.ВывестиСекцию("Строка");
КонецЕсли;
Таким образом получилось убрать из отчета строки с этими услугами.
Но вот итог так же формирует с учетом данных услуг
29. Cooler 22 16.01.18 10:02 Сейчас в теме
(27)
Таким образом получилось убрать из отчета строки с этими услугами.
Но вот итог так же формирует с учетом данных услуг
Дык, надо же не только строки пропускать, но и данные из этих пропущенных строк минусовать. Примерно так:
Если (Услуга.ПолныйКод()<>"08/01") и (Услуга.ПолныйКод()<>"08/02") и (Услуга.ПолныйКод()<>"08/03") Тогда 
   Ном=Ном+1; 
   Т.ВывестиСекцию("Строка");
Иначе
   СальдоНачДИт=СальдоНачДИт-СальдоНачД;
   СальдоНачКИт=СальдоНачКИт-СальдоНачК;
   НачисленоИт=НачисленоИт-Начислено;
   ЛьготаИт=ЛьготаИт-Льгота;
// и.т.д.
КонецЕсли;
Показать

(28)
Буду признателен за помощь пряниками на карту сбера или еще куда
Вот с этого места можно и поподробнее...
18. MikeGorshkov 15.01.18 21:10 Сейчас в теме
Если я правильно понял надо искать там где СКД и СНД. Теперь как исключить из расчета именно этот счет?

СНД(<?>,,,)
Синтаксис:
СНД(<Счет>,<ТипСуммы>,<Валюта>,<Субконто1...>)
Назначение:
Возвращает дебетовое сальдо по счету на начало периода.
Параметры:
<Счет> - значение типа ''Счет'' - счет расчета итогов. Может использоваться строка - код счета.
<ТипСуммы> - необязательный параметр. Число или строка - тип возвращаемой суммы. Может принимать одно из следующих значений: 1 (''C'') - сумма; 2 (''В'') - валютная сумма; 3 (''К'') - количество. Если параметр не указан, метод возвращает сумму.
<Валюта> - необязательный параметр. Значение типа ''Справочник.Валюты''. Если параметр не указан, то итоги выдаются без учета валюты.
<Субконто1...> - необязательные параметры. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, то итоги выдаются без учета аналитики.

СКД(<?>,,,)
Синтаксис:
СКД(<Счет>,<ТипСуммы>,<Валюта>,<Субконто1...>)
Назначение:
Возвращает дебетовое сальдо по счету на конец периода.
Параметры:
<Счет> - значение типа ''Счет'' - счет расчета итогов. Может использоваться строка - код счета.
<ТипСуммы> - необязательный параметр. Число или строка - тип возвращаемой суммы. Может принимать одно из следующих значений: 1 (''C'') - сумма; 2 (''В'') - валютная сумма; 3 (''К'') - количество. Если параметр не указан, метод возвращает сумму.
<Валюта> - необязательный параметр. Значение типа ''Справочник.Валюты''. Если параметр не указан, то итоги выдаются без учета валюты.
<Субконто1...> - необязательные параметры. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, то итоги выдаются без учета аналитики.
23. pentanom 25 15.01.18 21:49 Сейчас в теме
(18)
Теперь как исключить из расчета именно этот счет?
Так вы счет хотите исключить или услугу ?
24. MikeGorshkov 15.01.18 23:47 Сейчас в теме
(23)
Так вы счет хотите исключить или услугу ?

Счет привязан к услуге, поэтому так изъясняюсь
25. pentanom 25 15.01.18 23:59 Сейчас в теме
(24) Ваши "изъяснения" непонятны. Все-таки вы исключаете услугу или счет ? Услуга исключается как написано в (22)
26. MikeGorshkov 16.01.18 02:24 Сейчас в теме
(25)Тут итоги есть,
Услугу убрал из формы отчетов, спасибо!
но вот общая сумма выходит с учетом убранной услуги, теперь в этом проблема.
19. MikeGorshkov 15.01.18 21:14 Сейчас в теме
Либо как тут его исключить из запроса

Ит=создатьобъект("БухгалтерскиеИтоги");
Если (Конкретно.Выбран()=1) и (Конкретно.ЭтоГруппа()=0) Тогда
Ит.Использоватьсубконто(ВидыСубконто.Население,Конкретно,2);
Иначе
Ит.Использоватьсубконто(ВидыСубконто.Население,,,1);
КонецЕсли;
Если (Видконкретно.Выбран()=1) и (Видконкретно.ЭтоГруппа()=0) Тогда
Ит.Использоватьсубконто(ВидыСубконто.Услуга,Видконкретно,2);
Иначе
Ит.Использоватьсубконто(ВидыСубконто.Услуга,,,1);
КонецЕсли;
28. MikeGorshkov 16.01.18 09:00 Сейчас в теме
Буду признателен за помощь пряниками на карту сбера или еще куда
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот