Как из модуля вынести один счет, чтобы он не попадал в отчет?
//*******************************************
Процедура Сформировать()
Если (ДатаГод(Дата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
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Если нужно чтобы, например, счет "05/04" не попадал в отчет, то комментируйте строки:
Комментируется с помощью двух косых наклонных черт - // - тогда строка должна стать зеленой.
спр=создатьобъект("справочник.Услуга");
Спр.Найтипокоду("05/04",2);
ВидОтчета=4;
ВидКонкретно=Спр.ТекущийЭлемент();
Сформировать();
Комментируется с помощью двух косых наклонных черт - // - тогда строка должна стать зеленой.
(8)
В том то и дело что тут счет этот не описан а он все равно выводится в отчет. Вот и думаю куда его прописать чтоб он из бух итогов не подтягивался в отчет и не выводился в табличную часть "строка"
ью двух косых наклонных черт - // - тогда строка должна стать зеленой.
В том то и дело что тут счет этот не описан а он все равно выводится в отчет. Вот и думаю куда его прописать чтоб он из бух итогов не подтягивался в отчет и не выводился в табличную часть "строка"
(16)В шапке темы
Еще тут продублирую
Еще тут продублирую
Прикрепленные файлы:
Свод по абонентам.ert
Отчет по абонентам.xls
(22) Если (Услуга.ПолныйКод()<>"08/01") и (Услуга.ПолныйКод()<>"08/02") и (Услуга.ПолныйКод()<>"08/03") Тогда
Ном=Ном+1;
Т.ВывестиСекцию("Строка");
КонецЕсли;
Таким образом получилось убрать из отчета строки с этими услугами.
Но вот итог так же формирует с учетом данных услуг
Ном=Ном+1;
Т.ВывестиСекцию("Строка");
КонецЕсли;
Таким образом получилось убрать из отчета строки с этими услугами.
Но вот итог так же формирует с учетом данных услуг
(27)
(28)
Таким образом получилось убрать из отчета строки с этими услугами.
Но вот итог так же формирует с учетом данных услуг
Дык, надо же не только строки пропускать, но и данные из этих пропущенных строк минусовать. Примерно так:
Но вот итог так же формирует с учетом данных услуг
Если (Услуга.ПолныйКод()<>"08/01") и (Услуга.ПолныйКод()<>"08/02") и (Услуга.ПолныйКод()<>"08/03") Тогда
Ном=Ном+1;
Т.ВывестиСекцию("Строка");
Иначе
СальдоНачДИт=СальдоНачДИт-СальдоНачД;
СальдоНачКИт=СальдоНачКИт-СальдоНачК;
НачисленоИт=НачисленоИт-Начислено;
ЛьготаИт=ЛьготаИт-Льгота;
// и.т.д.
КонецЕсли;
Показать(28)
Буду признателен за помощь пряниками на карту сбера или еще куда
Вот с этого места можно и поподробнее...
Если я правильно понял надо искать там где СКД и СНД. Теперь как исключить из расчета именно этот счет?
СНД(<?>,,,)
Синтаксис:
СНД(<Счет>,<ТипСуммы>,<Валюта>,<Субконто1...>)
Назначение:
Возвращает дебетовое сальдо по счету на начало периода.
Параметры:
<Счет> - значение типа ''Счет'' - счет расчета итогов. Может использоваться строка - код счета.
<ТипСуммы> - необязательный параметр. Число или строка - тип возвращаемой суммы. Может принимать одно из следующих значений: 1 (''C'') - сумма; 2 (''В'') - валютная сумма; 3 (''К'') - количество. Если параметр не указан, метод возвращает сумму.
<Валюта> - необязательный параметр. Значение типа ''Справочник.Валюты''. Если параметр не указан, то итоги выдаются без учета валюты.
<Субконто1...> - необязательные параметры. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, то итоги выдаются без учета аналитики.
СКД(<?>,,,)
Синтаксис:
СКД(<Счет>,<ТипСуммы>,<Валюта>,<Субконто1...>)
Назначение:
Возвращает дебетовое сальдо по счету на конец периода.
Параметры:
<Счет> - значение типа ''Счет'' - счет расчета итогов. Может использоваться строка - код счета.
<ТипСуммы> - необязательный параметр. Число или строка - тип возвращаемой суммы. Может принимать одно из следующих значений: 1 (''C'') - сумма; 2 (''В'') - валютная сумма; 3 (''К'') - количество. Если параметр не указан, метод возвращает сумму.
<Валюта> - необязательный параметр. Значение типа ''Справочник.Валюты''. Если параметр не указан, то итоги выдаются без учета валюты.
<Субконто1...> - необязательные параметры. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, то итоги выдаются без учета аналитики.
СНД(<?>,,,)
Синтаксис:
СНД(<Счет>,<ТипСуммы>,<Валюта>,<Субконто1...>)
Назначение:
Возвращает дебетовое сальдо по счету на начало периода.
Параметры:
<Счет> - значение типа ''Счет'' - счет расчета итогов. Может использоваться строка - код счета.
<ТипСуммы> - необязательный параметр. Число или строка - тип возвращаемой суммы. Может принимать одно из следующих значений: 1 (''C'') - сумма; 2 (''В'') - валютная сумма; 3 (''К'') - количество. Если параметр не указан, метод возвращает сумму.
<Валюта> - необязательный параметр. Значение типа ''Справочник.Валюты''. Если параметр не указан, то итоги выдаются без учета валюты.
<Субконто1...> - необязательные параметры. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, то итоги выдаются без учета аналитики.
СКД(<?>,,,)
Синтаксис:
СКД(<Счет>,<ТипСуммы>,<Валюта>,<Субконто1...>)
Назначение:
Возвращает дебетовое сальдо по счету на конец периода.
Параметры:
<Счет> - значение типа ''Счет'' - счет расчета итогов. Может использоваться строка - код счета.
<ТипСуммы> - необязательный параметр. Число или строка - тип возвращаемой суммы. Может принимать одно из следующих значений: 1 (''C'') - сумма; 2 (''В'') - валютная сумма; 3 (''К'') - количество. Если параметр не указан, метод возвращает сумму.
<Валюта> - необязательный параметр. Значение типа ''Справочник.Валюты''. Если параметр не указан, то итоги выдаются без учета валюты.
<Субконто1...> - необязательные параметры. Значения субконто. Их количество зависит от настройки субконто для данного счета. Если параметры не указаны, то итоги выдаются без учета аналитики.
Либо как тут его исключить из запроса
Ит=создатьобъект("БухгалтерскиеИтоги");
Если (Конкретно.Выбран()=1) и (Конкретно.ЭтоГруппа()=0) Тогда
Ит.Использоватьсубконто(ВидыСубконто.Население,Конкретно,2);
Иначе
Ит.Использоватьсубконто(ВидыСубконто.Население,,,1);
КонецЕсли;
Если (Видконкретно.Выбран()=1) и (Видконкретно.ЭтоГруппа()=0) Тогда
Ит.Использоватьсубконто(ВидыСубконто.Услуга,Видконкретно,2);
Иначе
Ит.Использоватьсубконто(ВидыСубконто.Услуга,,,1);
КонецЕсли;
Ит=создатьобъект("БухгалтерскиеИтоги");
Если (Конкретно.Выбран()=1) и (Конкретно.ЭтоГруппа()=0) Тогда
Ит.Использоватьсубконто(ВидыСубконто.Население,Конкретно,2);
Иначе
Ит.Использоватьсубконто(ВидыСубконто.Население,,,1);
КонецЕсли;
Если (Видконкретно.Выбран()=1) и (Видконкретно.ЭтоГруппа()=0) Тогда
Ит.Использоватьсубконто(ВидыСубконто.Услуга,Видконкретно,2);
Иначе
Ит.Использоватьсубконто(ВидыСубконто.Услуга,,,1);
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот