Построение отчета в 7.7, добавление фильтра по перечислению
Доброго дня! В 7.7 новичок совсем. Есть самописная конфигурация на 7.7. Есть отчет, который формируется по контрагенту, по виду работ, и по объекту строительства. У всех тип справочник. Отчет работает. Поставили задачу добавить фильтр, Данные для фильтра - тип перечисление. Подскажите как это реализовать? В 8 проще все и понятнее все...
По теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
1. Ввести новое субконто с типом нужного перечисления.
2. Добавить к нужному счету (видимо, "1") аналитический учет по этому новому субконто.
3. Дописать в проводки документов аналитику по этому субконто. Скорее всего, что и в диалоги - тоже.
4. Добавить в код из (5) (выше последней строки) что-то вроде
Наслаждаться результатом!
P.S. Это описание решения задачи "с нуля". Возможно, что какие-то (или все) из пунктов 1-3 уже реализованы.
Поставили задачу добавить фильтр, Данные для фильтра - тип перечисление. Подскажите как это реализовать?
Всего-то:
1. Ввести новое субконто с типом нужного перечисления.
2. Добавить к нужному счету (видимо, "1") аналитический учет по этому новому субконто.
3. Дописать в проводки документов аналитику по этому субконто. Скорее всего, что и в диалоги - тоже.
4. Добавить в код из (5) (выше последней строки) что-то вроде
Ит.ИспользоватьСубконто(ВидыСубконто.СубконтоПеречисление,ВыбрПеречисление, 2);
Наслаждаться результатом!
P.S. Это описание решения задачи "с нуля". Возможно, что какие-то (или все) из пунктов 1-3 уже реализованы.
ВыполнитьЗапрос в данном случае и есть запрос? Запросов нет в классическом виде
Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,видр, 1,1);
Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контр, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Объекты,Об, 1);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"1",,, 1,, "СК");
Синтаксис:
ИспользоватьСубконто(<ВидСубконто>,<Субконто>,<ТипФильтра>,<ПоГруппам>)
<ТипФильтра> - число - тип фильтра по субконто. Может принимать следующие значения: 1 - разворачивать по данному субконто, 2 - отбирать по данному субконто, 3 - не учитывать это субконто вообще. По умолчанию 1.
У Вас "тип фильтра" по субконто "Объекты" стоит "1". Если нужно отобрать, то "2".
ИспользоватьСубконто(<ВидСубконто>,<Субконто>,<ТипФильтра>,<ПоГруппам>)
<ТипФильтра> - число - тип фильтра по субконто. Может принимать следующие значения: 1 - разворачивать по данному субконто, 2 - отбирать по данному субконто, 3 - не учитывать это субконто вообще. По умолчанию 1.
У Вас "тип фильтра" по субконто "Объекты" стоит "1". Если нужно отобрать, то "2".
(10) Прилагаю исходный текст кода отчета, который работает Суть: добавить еще один фильтр "ТипРабот", это перечисление. Я его добавил в субконто и план счетов рабочий. Прописал Ит.ИспользоватьСубконто(ВидыСубконто.ТипыРабот,Типр, 2); не хватает чего то, отладчиком непонятно как в 7-ке пользоваться
перем ОбъектГЖФ;
Функция ПЛ(об)
СпрО=СоздатьОбъект("Справочник.Объекты");
Если Об.ЭтоГруппа()=1 тогда
СпрО.НайтиПоКоду(Об.Код,0);
Род=СпрО.ТекущийЭлемент();
СпрО.ИспользоватьРодителя(Род);
СпрО.ВыбратьЭлементы();
ОбГЖФ=0;
Пока СпрО.ПолучитьЭлемент()=1 цикл
ТекЭ=СпрО.ТекущийЭлемент();
ОбГЖФ=ТекЭ.ОбъектГЖФ;
конеццикла;
ОбъектГЖФ=ОбГЖФ;
Иначе
ОбъектГЖФ=Об.ОбъектГЖФ;
КонецЕсли;
Конецфункции
Процедура Сформировать()
СпрМ=СоздатьОбъект("Справочник.Материалы");
СпрМ.НайтиПоКоду("100"); //Т/з осн.раб.
СпрТЗ=СпрМ.ТекущийЭлемент();
СпрМ.НайтиПоКоду("101"); //Т/з мех.
СпрТЗмех=СпрМ.ТекущийЭлемент();
СпрМ.НайтиПоКоду("102");//Эксплуатация машин и механизмов
СпрЭкспл=СпрМ.ТекущийЭлемент();
СпрМ.НайтиПоКоду("31");//тзр
СпрТЗР=СпрМ.ТекущийЭлемент();
СпрМ.НайтиПоКоду("30");//материалы
Спрматериалы=СпрМ.ТекущийЭлемент();
СпрВР=СоздатьОбъект("Справочник.ВидыРабот");
СпрВР.НайтиПоКоду("5");//компенсации
СпрВР5=СпрВр.ТекущийЭлемент();
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ПланыСчетов.Рабочий);
Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,видр, 1,1);
Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контр, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Объекты,Об, 1);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"1",,, 1,, "СК");
Таб.ВывестиСекцию("Шапка|Основа");
Таб.ПрисоединитьСекцию("Шапка|Остаток");
Таб.ПрисоединитьСекцию("Шапка|Факт");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
ТЗоснВСЕГОКомпл=0;
ТЗмехВСЕГОКомпл=0;
ЭксплВСЕГОКомпл=0;
ТЗоснВСЕГОУлож=0;
ТЗмехВСЕГОУлож=0;
ЭксплВСЕГОУлож=0;
ТЗоснВСЕГООстаток=0;
ТЗмехВСЕГООстаток=0;
ЭксплВСЕГООстаток=0;
СуммаИтоговая=0;
СуммаНаклИтоговая=0;
СуммаПланИтоговая=0;
пл(об);
Ит.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,,,,"Код");
Пока Ит.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
СуммаПоВидуРабот=0;
СуммаНаклПоВидуРабот=0;
СуммаПланПоВидуРабот=0;
ТзоснКомпл=0;
ТЗмехкомпл=0;
ЭксплКомпл=0;
ТзОснУлож=0;ТзОснОстатокТек=0;
ТзМехУлож=0;ТзМехОстатокТек=0;
ЭксплУлож=0;ЭксплОстатокТек=0;
Ит.ВыбратьСубконто(ВидыСубконто.Материалы,,,,,"Код");
Пока Ит.ПолучитьСубконто(ВидыСубконто.Материалы) = 1 Цикл
ЦенаТек=0;
СуммаТек=0;
Мат=Ит.ПредставлениеСубконто(2);
Если Ит.Субконто(1).ЭтоГруппа()=0 тогда
Если ((Ит.Субконто(2)=СпрТЗ) или (Ит.Субконто(2)=СпрТЗмех) или (Ит.Субконто(2)=СпрЭкспл)) тогда
Если Ит.Субконто(2)=СпрТЗ тогда
ТзоснКомпл=Ит.ДО(3);
ТзоснВСЕГОКомпл=ТЗоснВСЕГОКомпл+ТЗоснКомпл;
ТзоснУлож=Ит.КО(3);
ТзоснВСЕГОУлож=ТЗоснВСЕГОУлож+ТЗоснУлож;
ТзоснОстатокТек=Ит.ДО(3)-Ит.КО(3);
Если ТЗОснОстатокТек<0 тогда
ТЗОснОстатоктек=0;
конецесли;
ТЗОснВсегоОстаток=ТЗОснВсегоОстаток+ТзоснОстатокТек;
КонецЕсли;
Если Ит.Субконто(2)=СпрТЗмех тогда
ТзмехКомпл=Ит.ДО(3);
ТзмехВСЕГОКомпл=ТЗмехВСЕГОКомпл+ТЗмехКомпл;
ТзмехУлож=Ит.КО(3);
ТЗмехВсегоУлож=ТЗмехВСЕГОУлож+ТЗмехУлож;
ТзмехОстатокТек=Ит.ДО(3)-Ит.КО(3);
Если ТЗмехОстатокТек<0 тогда
ТЗмехОстатоктек=0;
конецесли;
ТЗмехВсегоОстаток=ТЗмехВсегоОстаток+ТзмехОстатокТек;
КонецЕсли;
Если Ит.Субконто(2)=СпрЭкспл тогда
ЭксплКомпл=Ит.ДО(3);
ЭксплВСЕГОКомпл=ЭксплВСЕГОКомпл+ЭксплКомпл;
ЭксплУлож=Ит.КО(3);
ЭксплВсегоУлож=ЭксплВсегоУлож+ЭксплУлож;
ЭксплОстатокТек=Ит.ДО(3)-Ит.КО(3);
Если ЭксплОстатокТек<0 тогда
ЭксплОстатоктек=0;
конецесли;
ЭксплВсегоОстаток=ЭксплВсегоОстаток+ЭксплОстатокТек;
КонецЕсли;
Иначе
Если Ит.КО(3)>Ит.ДО(3) тогда
Таб.ВывестиСекцию("Субконто2красн|Основа");
иначе
Таб.ВывестиСекцию("Субконто2|Основа");
КонецЕсли;
Если ((объектгжф=1) или (объектгжф=3)) тогда
ЦенаТек=Ит.Субконто(2).ЦенаГЖФ.Получить(ДатаРасчета);
иначеЕсли объектгжф=4 тогда
ЦенаТек=Ит.Субконто(2).ЦенаГЖФ2014.Получить(ДатаРасчета);
иначе
ЦенаТек=Ит.Субконто(2).Цена.Получить(ДатаРасчета);
конецесли;
Если Ит.Субконто(2)=СпрТзр тогда
СуммаТек=Ит.ДО()-Ит.КО();
Если СуммаТек<0 тогда
СуммаТек=0;
иначе
конецесли;
Иначе СуммаТек=Ит.СКД(3)*ЦенаТек;
КонецЕсли;
суммаматериалы=0;
Если Ит.субконто(2)=СпрМатериалы тогда
СуммаМатериалы=Ит.КО();
//
СуммаТек=Ит.ДО()-Ит.КО();
Если СуммаТек<0 тогда
СуммаТек=0;
конецесли;
//
сообщить("материалы общей суммой");
конецесли;
СуммаПоВидуРабот=СуммаПоВидуРабот+СуммаТек-СуммаМатериалы;
Таб.ПрисоединитьСекцию("Субконто2|Остаток");
Таб.ПрисоединитьСекцию("Субконто2|Факт");
КонецЕсли;
КонецЕсли;
КонецЦикла; //по материалам
Если Ит.Субконто(1).ЭтоГруппа()=0 тогда
Таб.ВывестиСекцию("Субконто2СиниеТзОсн|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзОсн|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзОсн|Факт");
Таб.ВывестиСекцию("Субконто2СиниеТзМех|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзМех|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзМех|Факт");
Таб.ВывестиСекцию("Субконто2СиниеЭкспл|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеЭкспл|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеЭкспл|Факт");
конецесли;
Если СуммаПоВидуРабот<0 тогда
СуммаПоВидуРабот=0;
иначе
конецесли;
СуммаИтоговая=СуммаИтоговая+Суммаповидуработ;
ВР=Ит.ПредставлениеСубконто(1);
Если СтрЧислоВхождений(Ит.Субконто(1).Код,".")<>2 тогда
Таб.ВывестиСекцию("СубконтоИтог|Основа");
Таб.ПрисоединитьСекцию("СубконтоИтог|Остаток");
Таб.ПрисоединитьСекцию("СубконтоИтог|Факт");
КонецЕсли;
Если СтрЧислоВхождений(Ит.Субконто(1).Код,".")=2 тогда
Таб.ВывестиСекцию("Субконто1|Основа");
Таб.ПрисоединитьСекцию("Субконто1|Остаток");
Таб.ПрисоединитьСекцию("Субконто1|Факт");
КонецЕсли;
Если объектгжф=1 тогда
СуммаНаклПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНаклГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2ФактГЖФ.Получить(ДатаРасчета)*(ТЗОснОстатокТек+ТЗМехОстатокТек));
СуммаПланПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(Датарасчета)/100*Константа.ФОТПланГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*(ТЗОснОстатокТек+ТЗМехОстатокТек));
иначеЕсли ((объектгжф=3) или (объектГЖФ=4)) тогда
СуммаНаклПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНаклГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2ФактГЖФ_2014.Получить(ДатаРасчета)*(ТЗОснОстатокТек+ТЗМехОстатокТек));
СуммаПланПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(Датарасчета)/100*Константа.ФОТПланГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*(ТЗОснОстатокТек+ТЗМехОстатокТек));
иначе
СуммаНаклПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНакл.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2Факт.Получить(ДатаРасчета)*(ТЗОснОстатокТек+ТЗМехОстатокТек));
СуммаПланПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(Датарасчета)/100*Константа.ФОТПлан.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*(ТЗОснОстатокТек+ТЗМехОстатокТек));
конецесли;
СуммаНаклИтоговая=СуммаНаклИтоговая+СуммаНаклПоВидуРабот;
СуммаПланИтоговая=СуммаПланИтоговая+СуммаПланПоВидуРабот;
КонецЦикла; //по видам работ
Таб.ВывестиСекцию("Подвал|Основа");
Таб.ПрисоединитьСекцию("Подвал|Остаток");
Таб.ПрисоединитьСекцию("Подвал|Факт");
//расчет затрат по СМР компл
ФотОснУложИт=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; ФотМехсумКомп=0; Машкомп=0; МашсумКомп=0;
Планкомп=0; ПланСумКомп=0; Наклкомп=0; НаклСумКомп=0; Времкомп=0; ВремСумКомп=0; Зимнкомп=0;
ЗимнСумКомп=0; ндскомп=0; НдсСумКомп=0; Итогокомп=0; ИтогоСумКомп=0;
Ит1 = СоздатьОбъект("БухгалтерскиеИтоги");
Ит1.ИспользоватьПланСчетов(ПланыСчетов.Рабочий);
Ит1.ИспользоватьСубконто(ВидыСубконто.Итоги,, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контр, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.Объекты,Об, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,видр, 1);
// Ит1.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,видр, 1,1);
Ит1.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"3",,, 1,, "СК");
Ит1.ВыбратьСубконто(ВидыСубконто.Итоги,,0);
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ФотОсн) = 1 тогда
ФотОснУложИт=Ит1.КО();
ФотОснИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
ФотОснкомп=Ит1.ДО()-Ит1.КО();
Если ФотОснКомп<0 тогда
ФотОснКомп=0;
КонецЕсли;
ФотОснсумКомп=ФотОснСумКомп+ФотОснкомп;
иначе
ФотОснкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ФотМех) = 1 тогда
ФотМехУложИт=Ит1.КО();
ФотМехИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
ФотМехкомп=Ит1.ДО()-Ит1.КО();
Если ФотмехКомп<0 тогда
ФотмехКомп=0;
КонецЕсли;
ФотМехсумКомп=ФОТМехСумКомп+ФОТМехкомп;
иначе
ФотМехкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.МашМех) = 1 тогда
МашМехУложИт=Ит1.КО();
МашМехИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
Машкомп=Ит1.ДО()-Ит1.КО();
Если машКомп<0 тогда
машКомп=0;
КонецЕсли;
МашсумКомп=МашСумКомп+Машкомп;
иначе
Машкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ПланНак) = 1 тогда
ПланНакУложИт=Ит1.КО();
ПланНакИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
Планкомп=Ит1.ДО()-Ит1.КО();
Если ПланКомп<0 тогда
ПланКомп=0;
КонецЕсли;
ПлансумКомп=ПланСумКомп+Планкомп;
иначе
Планкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.НаклРасх) = 1 тогда
НаклРасхУложИт=Ит1.КО();
НаклРасхИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
Наклкомп=Ит1.ДО()-Ит1.КО();
Если НаклКомп<0 тогда
НаклКомп=0;
КонецЕсли;
НаклсумКомп=НаклСумКомп+Наклкомп;
иначе
Наклкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Врем) = 1 тогда
ВремУложИт=Ит1.КО();
ВремИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
Времкомп=Ит1.ДО()-Ит1.КО();
Если ВремКомп<0 тогда
ВремКомп=0;
КонецЕсли;
ВремсумКомп=ВремСумКомп+Времкомп;
иначе
Времкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Зимн) = 1 тогда
ЗимнУложИт=Ит1.КО();
ЗимнИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
Зимнкомп=Ит1.ДО()-Ит1.КО();
Если ЗимнКомп<0 тогда
ЗимнКомп=0;
КонецЕсли;
ЗимнсумКомп=ЗимнСумКомп+Зимнкомп;
иначе
Зимнкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.НДС) = 1 тогда
НДСУложИт=Ит1.КО();
НДСИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
НдсКомп=Ит1.ДО()-Ит1.КО();
Если НДСКомп<0 тогда
НДСКомп=0;
КонецЕсли;
НдсСумКомп=НдсСумКомп+НдсКомп;
иначе
ндскомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Итого) = 1 тогда
ИтогоУложИт=Ит1.КО();
ИтогоИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
Итогокомп=Ит1.ДО()-Ит1.КО();
Если итогоКомп<0 тогда
итогоКомп=0;
КонецЕсли;
ИтогосумКомп=ИтогоСумКомп+Итогокомп;
иначе
Итогокомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ИтогоСндс) = 1 тогда
ИтогоСНДСУложИт=Ит1.КО();
ИтогоСНДСИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если (Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) тогда
комп=Ит1.ДО()-Ит1.КО();
Если Комп<0 тогда
Комп=0;
КонецЕсли;
сумКомп=СумКомп+комп;
иначе
комп=0;
конецесли;
конеццикла;
КонецЕсли;
//считаем остатки на дату
Если ОбъектГЖФ=1 тогда
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФактГЖФ.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФактГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМехГЖФ.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
иначеЕсли ((ОбъектГЖФ=3) или (объектГЖФ=4)) тогда
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФактГЖФ_2014.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФактГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМехГЖФ_2014.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
иначе
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФакт.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФакт.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМех.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
конецесли;
Если ФОТОснОстаток<0 тогда
ФотОснОстаток=0;
КонецЕсли;
Если ФОТМехОстаток<0 тогда
ФотМехОстаток=0;
КонецЕсли;
Если МашМехОстаток<0 тогда
МашМехОстаток=0;
КонецЕсли;
Если СуммаНаклИтоговая<0 тогда
СуммаНаклИтоговая=0;
конецесли;
НаклРасхОстаток=НаклСумКомп+СуммаНаклИтоговая;
Если НаклРасхОстаток<0 тогда
НаклРасхОстаток=0;
КонецЕсли;
Если СуммаПланИтоговая<0 тогда
СуммаПланИтоговая=0;
конецесли;
ПланНакОстаток=ПланСумКомп+СуммаПланИтоговая;
Если ПланНакОстаток<0 тогда
ПланНакОстаток=0;
КонецЕсли;
Если ОбъектГЖФ=1 тогда
ВрОстаток=Окр(Константа.ПроцВремГЖФ.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
Если ВРОстаток<0 тогда
ВРОстаток=0;
КонецЕсли;
ЗимнОстаток=Окр(Константа.ПроцЗимнГЖФ.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
Если ЗимнОстаток<0 тогда
ЗимнОстаток=0;
КонецЕсли;
иначеЕсли ОбъектГЖФ=3 тогда
ВрОстаток=Окр(Константа.ПроцВремГЖФ_2014.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
Если ВРОстаток<0 тогда
ВРОстаток=0;
КонецЕсли;
ЗимнОстаток=Окр(Константа.ПроцЗимнГЖФ_2014.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
Если ЗимнОстаток<0 тогда
ЗимнОстаток=0;
КонецЕсли;
иначе
ВрОстаток=Окр(Константа.ПроцВрем.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
Если ВРОстаток<0 тогда
ВРОстаток=0;
КонецЕсли;
ЗимнОстаток=Окр(Константа.ПроцЗимн.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
Если ЗимнОстаток<0 тогда
ЗимнОстаток=0;
КонецЕсли;
конецесли;
ИтогоОстаток=Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток+ЗимнОстаток;
НДСОстаток=Окр(Константа.НДС/100*(ИтогоОстаток),2);
ИтогоСНДСОстаток=Окр(ИтогоОстаток+НДСОстаток,2);
если Видр.принадлежитгруппе(спрВР5)=1 тогда
ФотОснОстаток=ФотОснСумКомп;
ФотМехОстаток=ФотМехСумКомп;
МашМехОстаток=МашСумКомп;
НаклРасхОстаток=НаклСумКомп;
ПланНакОстаток=ПланСумКомп;
ВрОстаток=0;
ЗимнОстаток=0;
ИтогоОстаток=ИтогоСумКомп;
НДСОстаток=НДССумКомп;
ИтогоСНДСОстаток=СумКомп;
конецесли;
//
Таб.ВывестиСекцию("Итоги");
Таб.ТолькоПросмотр(1);
Таб.Показать("Отчет "+Контр+" "+Об+" "+Видр+" "+ПериодСтр(ВыбНачПериода,ВыбКонПериода),"");
КонецПроцедуры
Процедура СформироватьСводный()
СпрМ=СоздатьОбъект("Справочник.Материалы");
СпрМ.НайтиПоКоду("100"); //Т/з осн.раб.
СпрТЗ=СпрМ.ТекущийЭлемент();
СпрМ.НайтиПоКоду("101"); //Т/з мех.
СпрТЗмех=СпрМ.ТекущийЭлемент();
СпрМ.НайтиПоКоду("102");//Эксплуатация машин и механизмов
СпрЭкспл=СпрМ.ТекущийЭлемент();
СпрМ.НайтиПоКоду("31");//тзр
СпрТЗР=СпрМ.ТекущийЭлемент();
СпрМ.НайтиПоКоду("30");//материалы
Спрматериалы=СпрМ.ТекущийЭлемент();
СпрВР=СоздатьОбъект("Справочник.ВидыРабот");
СпрВР.НайтиПоКоду("5");//компенсации
СпрВР5=СпрВр.ТекущийЭлемент();
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ПланыСчетов.Рабочий);
//
Если ((ПустоеЗначение(Флаг4)=0) и (ПустоеЗначение(Видр)=1)) тогда //сводный по всем видам работ
//
Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,, 1,1);
Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Объекты,Об, 1);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"1",,, 1,, "СК");
пл(об);
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты,,0,,,);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
Контр=Ит.Субконто(3);
Таб.ВывестиСекцию("Шапка|Основа");
Таб.ПрисоединитьСекцию("Шапка|Остаток");
Таб.ПрисоединитьСекцию("Шапка|Факт");
ТЗоснВСЕГОКомпл=0;
ТЗмехВСЕГОКомпл=0;
ЭксплВСЕГОКомпл=0;
ТЗоснВСЕГОУлож=0;
ТЗмехВСЕГОУлож=0;
ЭксплВСЕГОУлож=0;
ТЗоснВСЕГООстаток=0;
ТЗмехВСЕГООстаток=0;
ЭксплВСЕГООстаток=0;
СуммаИтоговая=0;
СуммаНакл=0;
СуммаПлан=0;
Ит.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,,,,"Код");
Пока Ит.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
СуммаПоВидуРабот=0;
СуммаНаклПоВидуРабот=0;
СуммаПланПоВидуРабот=0;
ТзоснКомпл=0;
ТЗмехкомпл=0;
ЭксплКомпл=0;
ТзОснУлож=0;
ТзМехУлож=0;
ЭксплУлож=0;
Ит.ВыбратьСубконто(ВидыСубконто.Материалы,,,,,"Код");
Пока Ит.ПолучитьСубконто(ВидыСубконто.Материалы) = 1 Цикл
ЦенаТек=0;
СуммаТек=0;
Мат=Ит.ПредставлениеСубконто(2);
Если Ит.Субконто(1).ЭтоГруппа()=0 тогда
Если ((Ит.Субконто(2)=СпрТЗ) или (Ит.Субконто(2)=СпрТЗмех) или (Ит.Субконто(2)=СпрЭкспл)) тогда
Если Ит.Субконто(2)=СпрТЗ тогда
ТзоснКомпл=Ит.ДО(3);
ТзоснВСЕГОКомпл=ТЗоснВСЕГОКомпл+ТЗоснКомпл;
ТзоснУлож=Ит.КО(3);
ТзоснВСЕГОУлож=ТЗоснВСЕГОУлож+ТЗоснУлож;
ТзоснВСЕГООстаток=ТзоснВСЕГОКомпл-ТзоснВСЕГОУлож;
Если ТЗОснВсегоОстаток<0 тогда
ТЗОснВсегоОстаток=0;
иначе
конецесли;
КонецЕсли;
Если Ит.Субконто(2)=СпрТЗмех тогда
ТзмехКомпл=Ит.ДО(3);
ТзмехВСЕГОКомпл=ТЗмехВСЕГОКомпл+ТЗмехКомпл;
ТзмехУлож=Ит.КО(3);
ТЗмехВсегоУлож=ТЗмехВСЕГОУлож+ТЗмехУлож;
ТзмехВСЕГООстаток=ТзмехВСЕГОКомпл-ТзмехВСЕГОУлож;
Если ТЗМехВсегоОстаток<0 тогда
ТЗМехВсегоОстаток=0;
иначе
конецесли;
КонецЕсли;
Если Ит.Субконто(2)=СпрЭкспл тогда
ЭксплКомпл=Ит.ДО(3);
ЭксплВСЕГОКомпл=ЭксплВСЕГОКомпл+ЭксплКомпл;
ЭксплУлож=Ит.КО(3);
ЭксплВсегоУлож=ЭксплВсегоУлож+ЭксплУлож;
ЭксплВСЕГООстаток=ЭксплВСЕГОКомпл-ЭксплВСЕГОУлож;
Если ЭксплВсегоОстаток<0 тогда
ЭксплВсегоОстаток=0;
иначе
конецесли;
КонецЕсли;
Иначе
Таб.ВывестиСекцию("Субконто2|Основа");
Если ((объектгжф=1) или (объектгжф=3)) тогда
ЦенаТек=Ит.Субконто(2).ЦенаГЖФ.Получить(ДатаРасчета);
иначеЕсли объектгжф=4 тогда
ЦенаТек=Ит.Субконто(2).ЦенаГЖФ2014.Получить(ДатаРасчета);
иначе
ЦенаТек=Ит.Субконто(2).Цена.Получить(ДатаРасчета);
конецесли;
Если Ит.Субконто(2)=СпрТзр тогда
СуммаТек=Ит.ДО()-Ит.КО();
Если СуммаТек<0 тогда
СуммаТек=0;
иначе
конецесли;
Иначе СуммаТек=Ит.СКД(3)*ЦенаТек;
КонецЕсли;
суммаматериалы=0;
Если Ит.субконто(2)=СпрМатериалы тогда
СуммаМатериалы=Ит.КО();
//
СуммаТек=Ит.ДО()-Ит.КО();
Если СуммаТек<0 тогда
СуммаТек=0;
иначе
конецесли;
//
конецесли;
СуммаПоВидуРабот=СуммаПоВидуРабот+СуммаТек-СуммаМатериалы;
Таб.ПрисоединитьСекцию("Субконто2|Остаток");
Таб.ПрисоединитьСекцию("Субконто2|Факт");
КонецЕсли;
КонецЕсли;
КонецЦикла;//по материалам
Если Ит.Субконто(1).ЭтоГруппа()=0 тогда
Таб.ВывестиСекцию("Субконто2СиниеТзОсн|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзОсн|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзОсн|Факт");
Таб.ВывестиСекцию("Субконто2СиниеТзМех|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзМех|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзМех|Факт");
Таб.ВывестиСекцию("Субконто2СиниеЭкспл|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеЭкспл|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеЭкспл|Факт");
конецесли;
Если СуммаПоВидуРабот<0 тогда
СуммаПоВидуРабот=0;
иначе
конецесли;
СуммаИтоговая=СуммаИтоговая+Суммаповидуработ;
ВР=Ит.ПредставлениеСубконто(1);
Если СтрЧислоВхождений(Ит.Субконто(1).Код,".")<>2 тогда
Таб.ВывестиСекцию("СубконтоИтог|Основа");
Таб.ПрисоединитьСекцию("СубконтоИтог|Остаток");
Таб.ПрисоединитьСекцию("СубконтоИтог|Факт");
КонецЕсли;
Если СтрЧислоВхождений(Ит.Субконто(1).Код,".")=2 тогда
Таб.ВывестиСекцию("Субконто1|Основа");
Таб.ПрисоединитьСекцию("Субконто1|Остаток");
Таб.ПрисоединитьСекцию("Субконто1|Факт");
КонецЕсли;
Если ОбъектГЖФ=1 тогда
СуммаНаклРасхПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНаклГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2ФактГЖФ.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
СуммаПланНакПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(ДатаРасчета)/100*Константа.ФОТПланГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
иначеЕсли ((ОбъектГЖФ=3) или (объектГЖФ=4)) тогда
СуммаНаклРасхПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНаклГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2ФактГЖФ_2014.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
СуммаПланНакПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(ДатаРасчета)/100*Константа.ФОТПланГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
иначе
СуммаНаклРасхПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНакл.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2Факт.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
СуммаПланНакПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(ДатаРасчета)/100*Константа.ФОТПлан.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
конецесли;
СуммаНакл=СуммаНакл+СуммаНаклРасхПоВидуРабот;
СуммаПлан=СуммаПлан+СуммаПланНакПоВидуРабот;
КонецЦикла;//по видам работ
Таб.ВывестиСекцию("Подвал|Основа");
Таб.ПрисоединитьСекцию("Подвал|Остаток");
Таб.ПрисоединитьСекцию("Подвал|Факт");
//расчет затрат по СМР компл
ФотОснУложИт=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; ФотМехсумКомп=0; Машкомп=0; МашсумКомп=0;
Планкомп=0; ПланСумКомп=0; Наклкомп=0; НаклСумКомп=0; Времкомп=0; ВремСумКомп=0; Зимнкомп=0;
ЗимнСумКомп=0; ндскомп=0; НдсСумКомп=0; Итогокомп=0; ИтогоСумКомп=0;
Ит1 = СоздатьОбъект("БухгалтерскиеИтоги");
Ит1.ИспользоватьПланСчетов(ПланыСчетов.Рабочий);
Ит1.ИспользоватьСубконто(ВидыСубконто.Итоги,, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контр, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.Объекты,Об, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,, 1,1);
Ит1.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"3",,, 1,, "СК");
Ит1.ВыбратьСубконто(ВидыСубконто.Итоги,,0);
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ФотОсн) = 1 тогда
ФотОснУложИт=Ит1.КО();
ФотОснИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
ФотОснкомп=Ит1.ДО()-Ит1.КО();
ФотОснсумКомп=ФотОснСумКомп+ФотОснкомп;
иначе
ФотОснкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ФотМех) = 1 тогда
ФотМехУложИт=Ит1.КО();
ФотМехИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
ФотМехкомп=Ит1.ДО()-Ит1.КО();
ФотМехсумКомп=ФОТМехСумКомп+ФОТМехкомп;
иначе
ФотМехкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.МашМех) = 1 тогда
МашМехУложИт=Ит1.КО();
МашМехИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Машкомп=Ит1.ДО()-Ит1.КО();
МашсумКомп=МашСумКомп+Машкомп;
иначе
Машкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ПланНак) = 1 тогда
ПланНакУложИт=Ит1.КО();
ПланНакИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Планкомп=Ит1.ДО()-Ит1.КО();
ПлансумКомп=ПланСумКомп+Планкомп;
иначе
Планкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.НаклРасх) = 1 тогда
НаклРасхУложИт=Ит1.КО();
НаклРасхИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Наклкомп=Ит1.ДО()-Ит1.КО();
НаклсумКомп=НаклСумКомп+Наклкомп;
иначе
Наклкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Врем) = 1 тогда
ВремУложИт=Ит1.КО();
ВремИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Времкомп=Ит1.ДО()-Ит1.КО();
ВремсумКомп=ВремСумКомп+Времкомп;
иначе
Времкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Зимн) = 1 тогда
ЗимнУложИт=Ит1.КО();
ЗимнИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Зимнкомп=Ит1.ДО()-Ит1.КО();
ЗимнсумКомп=ЗимнСумКомп+Зимнкомп;
иначе
Зимнкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.НДС) = 1 тогда
НДСУложИт=Ит1.КО();
НДСИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
НдсКомп=Ит1.ДО()-Ит1.КО();
НдсСумКомп=НдсСумКомп+НдсКомп;
иначе
ндскомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Итого) = 1 тогда
ИтогоУложИт=Ит1.КО();
ИтогоИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Итогокомп=Ит1.ДО()-Ит1.КО();
ИтогосумКомп=ИтогоСумКомп+Итогокомп;
иначе
Итогокомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ИтогоСндс) = 1 тогда
ИтогоСНДСУложИт=Ит1.КО();
ИтогоСНДСИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
комп=Ит1.ДО()-Ит1.КО();
сумКомп=СумКомп+комп;
иначе
комп=0;
конецесли;
конеццикла;
КонецЕсли;
//считаем остатки на дату
Если ОбъектГЖФ=1 тогда
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФактГЖФ.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФактГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМехГЖФ.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
иначеЕсли ((ОбъектГЖФ=3) или (объектГЖФ=4)) тогда
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФактГЖФ_2014.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФактГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМехГЖФ_2014.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
иначе
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФакт.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФакт.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМех.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
конецесли;
Если СуммаНакл<0 тогда
СуммаНакл=0;
конецесли;
НаклРасхОстаток=НаклСумКомп+СуммаНакл;
Если СуммаПлан<0 тогда
СуммаПлан=0;
конецесли;
ПланНакОстаток=ПланСумКомп+СуммаПлан;
//////////////
Если ОбъектГЖФ=1 тогда
ВрОстаток=ВремСумКомп+Окр(Константа.ПроцВремГЖФ.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
ЗимнОстаток=ЗимнСумКомп+Окр(Константа.ПроцЗимнГЖФ.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
иначеЕсли ((ОбъектГЖФ=3) или (объектГЖФ=4)) тогда
ВрОстаток=ВремСумКомп+Окр(Константа.ПроцВремГЖФ_2014.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
ЗимнОстаток=ЗимнСумКомп+Окр(Константа.ПроцЗимнГЖФ_2014.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
иначе
ВрОстаток=ВремСумКомп+Окр(Константа.ПроцВрем.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
ЗимнОстаток=ЗимнСумКомп+Окр(Константа.ПроцЗимн.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
конецесли;
ИтогоОстаток=Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток+ЗимнОстаток;
НДСОстаток=Окр(Константа.НДС/100*(ИтогоОстаток),2);
ИтогоСНДСОстаток=Окр(ИтогоОстаток+НДСОстаток,2);
Таб.ВывестиСекцию("Итоги");
Конеццикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Накопит.вед.материалов "+Контр+" "+Об+" "+Видр+" "+ПериодСтр(ВыбНачПериода,ВыбКонПериода),"");
//////////////////
ИначеЕсли ((ПустоеЗначение(Флаг4)=0) и (ПустоеЗначение(Видр)=0)) тогда //сводный по подрядчикам, по виду работ
//
Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,Видр, 1,1);
Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Объекты,Об, 1);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"1",,, 1,, "СК");
пл(об);
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты,,0,,,);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
Контр=Ит.Субконто(3);
Таб.ВывестиСекцию("Шапка|Основа");
Таб.ПрисоединитьСекцию("Шапка|Остаток");
Таб.ПрисоединитьСекцию("Шапка|Факт");
ТЗоснВСЕГОКомпл=0;
ТЗмехВСЕГОКомпл=0;
ЭксплВСЕГОКомпл=0;
ТЗоснВСЕГОУлож=0;
ТЗмехВСЕГОУлож=0;
ЭксплВСЕГОУлож=0;
ТЗоснВСЕГООстаток=0;
ТЗмехВСЕГООстаток=0;
ЭксплВСЕГООстаток=0;
СуммаИтоговая=0;
СуммаНакл=0;
СуммаПлан=0;
//Ит.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,,,,"Код");
//Пока Ит.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
СуммаПоВидуРабот=0;
СуммаНаклПоВидуРабот=0;
СуммаПланПоВидуРабот=0;
ТзоснКомпл=0;
ТЗмехкомпл=0;
ЭксплКомпл=0;
ТзОснУлож=0;
ТзМехУлож=0;
ЭксплУлож=0;
Ит.ВыбратьСубконто(ВидыСубконто.Материалы,,,,,"Код");
Пока Ит.ПолучитьСубконто(ВидыСубконто.Материалы) = 1 Цикл
ЦенаТек=0;
СуммаТек=0;
Мат=Ит.ПредставлениеСубконто(2);
Если Ит.Субконто(1).ЭтоГруппа()=0 тогда
Если ((Ит.Субконто(2)=СпрТЗ) или (Ит.Субконто(2)=СпрТЗмех) или (Ит.Субконто(2)=СпрЭкспл)) тогда
Если Ит.Субконто(2)=СпрТЗ тогда
ТзоснКомпл=Ит.ДО(3);
ТзоснВСЕГОКомпл=ТЗоснВСЕГОКомпл+ТЗоснКомпл;
ТзоснУлож=Ит.КО(3);
ТзоснВСЕГОУлож=ТЗоснВСЕГОУлож+ТЗоснУлож;
ТзоснВСЕГООстаток=ТзоснВСЕГОКомпл-ТзоснВСЕГОУлож;
Если ТЗОснВсегоОстаток<0 тогда
ТЗОснВсегоОстаток=0;
иначе
конецесли;
КонецЕсли;
Если Ит.Субконто(2)=СпрТЗмех тогда
ТзмехКомпл=Ит.ДО(3);
ТзмехВСЕГОКомпл=ТЗмехВСЕГОКомпл+ТЗмехКомпл;
ТзмехУлож=Ит.КО(3);
ТЗмехВсегоУлож=ТЗмехВСЕГОУлож+ТЗмехУлож;
ТзмехВСЕГООстаток=ТзмехВСЕГОКомпл-ТзмехВСЕГОУлож;
Если ТЗМехВсегоОстаток<0 тогда
ТЗМехВсегоОстаток=0;
иначе
конецесли;
КонецЕсли;
Если Ит.Субконто(2)=СпрЭкспл тогда
ЭксплКомпл=Ит.ДО(3);
ЭксплВСЕГОКомпл=ЭксплВСЕГОКомпл+ЭксплКомпл;
ЭксплУлож=Ит.КО(3);
ЭксплВсегоУлож=ЭксплВсегоУлож+ЭксплУлож;
ЭксплВСЕГООстаток=ЭксплВСЕГОКомпл-ЭксплВСЕГОУлож;
Если ЭксплВсегоОстаток<0 тогда
ЭксплВсегоОстаток=0;
иначе
конецесли;
КонецЕсли;
Иначе
Таб.ВывестиСекцию("Субконто2|Основа");
Если ((объектгжф=1) или (объектгжф=3)) тогда
ЦенаТек=Ит.Субконто(2).ЦенаГЖФ.Получить(ДатаРасчета);
иначеЕсли объектгжф=4 тогда
ЦенаТек=Ит.Субконто(2).ЦенаГЖФ2014.Получить(ДатаРасчета);
иначе
ЦенаТек=Ит.Субконто(2).Цена.Получить(ДатаРасчета);
конецесли;
Если Ит.Субконто(2)=СпрТзр тогда
СуммаТек=Ит.ДО()-Ит.КО();
Если СуммаТек<0 тогда
СуммаТек=0;
иначе
конецесли;
Иначе СуммаТек=Ит.СКД(3)*ЦенаТек;
КонецЕсли;
суммаматериалы=0;
Если Ит.субконто(2)=СпрМатериалы тогда
СуммаМатериалы=Ит.КО();
//
СуммаТек=Ит.ДО()-Ит.КО();
Если СуммаТек<0 тогда
СуммаТек=0;
иначе
конецесли;
//
конецесли;
СуммаПоВидуРабот=СуммаПоВидуРабот+СуммаТек-СуммаМатериалы;
Таб.ПрисоединитьСекцию("Субконто2|Остаток");
Таб.ПрисоединитьСекцию("Субконто2|Факт");
КонецЕсли;
КонецЕсли;
КонецЦикла;//по материалам
Если Ит.Субконто(1).ЭтоГруппа()=0 тогда
Таб.ВывестиСекцию("Субконто2СиниеТзОсн|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзОсн|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзОсн|Факт");
Таб.ВывестиСекцию("Субконто2СиниеТзМех|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзМех|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеТзМех|Факт");
Таб.ВывестиСекцию("Субконто2СиниеЭкспл|Основа");
Таб.ПрисоединитьСекцию("Субконто2СиниеЭкспл|Остаток");
Таб.ПрисоединитьСекцию("Субконто2СиниеЭкспл|Факт");
конецесли;
Если СуммаПоВидуРабот<0 тогда
СуммаПоВидуРабот=0;
иначе
конецесли;
СуммаИтоговая=СуммаИтоговая+Суммаповидуработ;
ВР=Ит.ПредставлениеСубконто(1);
Если СтрЧислоВхождений(Ит.Субконто(1).Код,".")<>2 тогда
Таб.ВывестиСекцию("СубконтоИтог|Основа");
Таб.ПрисоединитьСекцию("СубконтоИтог|Остаток");
Таб.ПрисоединитьСекцию("СубконтоИтог|Факт");
КонецЕсли;
Если СтрЧислоВхождений(Ит.Субконто(1).Код,".")=2 тогда
Таб.ВывестиСекцию("Субконто1|Основа");
Таб.ПрисоединитьСекцию("Субконто1|Остаток");
Таб.ПрисоединитьСекцию("Субконто1|Факт");
КонецЕсли;
Если ОбъектГЖФ=1 тогда
СуммаНаклРасхПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНаклГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2ФактГЖФ.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
СуммаПланНакПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(ДатаРасчета)/100*Константа.ФОТПланГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
иначеЕсли ((ОбъектГЖФ=3) или (объектГЖФ=4)) тогда
СуммаНаклРасхПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНаклГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2ФактГЖФ_2014.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
СуммаПланНакПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(ДатаРасчета)/100*Константа.ФОТПланГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
иначе
СуммаНаклРасхПоВидуРабот=Окр(Ит.Субконто(1).ПроцентНР.Получить(ДатаРасчета)/100*Константа.ФОТНакл.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*Константа.ПроцНакл2Факт.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
СуммаПланНакПоВидуРабот=Окр(Ит.Субконто(1).ПроцентПН.Получить(ДатаРасчета)/100*Константа.ФОТПлан.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*((ТЗоснКомпл-ТЗоснУлож)+(ТЗмехКомпл-ТЗмехУлож)));
конецесли;
СуммаНакл=СуммаНакл+СуммаНаклРасхПоВидуРабот;
СуммаПлан=СуммаПлан+СуммаПланНакПоВидуРабот;
// КонецЦикла;//по видам работ
Таб.ВывестиСекцию("Подвал|Основа");
Таб.ПрисоединитьСекцию("Подвал|Остаток");
Таб.ПрисоединитьСекцию("Подвал|Факт");
//расчет затрат по СМР компл
ФотОснУложИт=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; ФотМехсумКомп=0; Машкомп=0; МашсумКомп=0;
Планкомп=0; ПланСумКомп=0; Наклкомп=0; НаклСумКомп=0; Времкомп=0; ВремСумКомп=0; Зимнкомп=0;
ЗимнСумКомп=0; ндскомп=0; НдсСумКомп=0; Итогокомп=0; ИтогоСумКомп=0;
Ит1 = СоздатьОбъект("БухгалтерскиеИтоги");
Ит1.ИспользоватьПланСчетов(ПланыСчетов.Рабочий);
Ит1.ИспользоватьСубконто(ВидыСубконто.Итоги,, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контр, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.Объекты,Об, 1);
Ит1.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,видр, 1,1);
Ит1.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"3",,, 1,, "СК");
Ит1.ВыбратьСубконто(ВидыСубконто.Итоги,,0);
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ФотОсн) = 1 тогда
ФотОснУложИт=Ит1.КО();
ФотОснИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
ФотОснкомп=Ит1.ДО()-Ит1.КО();
ФотОснсумКомп=ФотОснСумКомп+ФотОснкомп;
иначе
ФотОснкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ФотМех) = 1 тогда
ФотМехУложИт=Ит1.КО();
ФотМехИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
ФотМехкомп=Ит1.ДО()-Ит1.КО();
ФотМехсумКомп=ФОТМехСумКомп+ФОТМехкомп;
иначе
ФотМехкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.МашМех) = 1 тогда
МашМехУложИт=Ит1.КО();
МашМехИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Машкомп=Ит1.ДО()-Ит1.КО();
МашсумКомп=МашСумКомп+Машкомп;
иначе
Машкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ПланНак) = 1 тогда
ПланНакУложИт=Ит1.КО();
ПланНакИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Планкомп=Ит1.ДО()-Ит1.КО();
ПлансумКомп=ПланСумКомп+Планкомп;
иначе
Планкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.НаклРасх) = 1 тогда
НаклРасхУложИт=Ит1.КО();
НаклРасхИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Наклкомп=Ит1.ДО()-Ит1.КО();
НаклсумКомп=НаклСумКомп+Наклкомп;
иначе
Наклкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Врем) = 1 тогда
ВремУложИт=Ит1.КО();
ВремИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Времкомп=Ит1.ДО()-Ит1.КО();
ВремсумКомп=ВремСумКомп+Времкомп;
иначе
Времкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Зимн) = 1 тогда
ЗимнУложИт=Ит1.КО();
ЗимнИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Зимнкомп=Ит1.ДО()-Ит1.КО();
ЗимнсумКомп=ЗимнСумКомп+Зимнкомп;
иначе
Зимнкомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.НДС) = 1 тогда
НДСУложИт=Ит1.КО();
НДСИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
НдсКомп=Ит1.ДО()-Ит1.КО();
НдсСумКомп=НдсСумКомп+НдсКомп;
иначе
ндскомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.Итого) = 1 тогда
ИтогоУложИт=Ит1.КО();
ИтогоИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
Итогокомп=Ит1.ДО()-Ит1.КО();
ИтогосумКомп=ИтогоСумКомп+Итогокомп;
иначе
Итогокомп=0;
конецесли;
конеццикла;
КонецЕсли;
Если Ит1.ПолучитьСубконто(1,,Перечисление.Показатели.ИтогоСндс) = 1 тогда
ИтогоСНДСУложИт=Ит1.КО();
ИтогоСНДСИт=Ит1.ДО();
Ит1.ВыбратьСубконто(ВидыСубконто.ВидыРабот,,0);
Пока Ит1.ПолучитьСубконто(ВидыСубконто.ВидыРабот) = 1 Цикл
Если ((Ит1.Субконто(4).ПринадлежитГруппе(СпрВр5)=1) и (Ит1.Субконто(4).Этогруппа()=1)) тогда
комп=Ит1.ДО()-Ит1.КО();
сумКомп=СумКомп+комп;
иначе
комп=0;
конецесли;
конеццикла;
КонецЕсли;
//считаем остатки на дату
Если ОбъектГЖФ=1 тогда
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФактГЖФ.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФактГЖФ.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМехГЖФ.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
иначеЕсли ((ОбъектГЖФ=3) или (объектгжф=4)) тогда
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФактГЖФ_2014.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФактГЖФ_2014.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМехГЖФ_2014.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
иначе
ФОТоснОстаток=ФотОснСумКомп+Окр(Константа.ФОТФакт.получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗоснВсегоОстаток);
ФОТмехОстаток=ФотМехСумКомп+Окр(Константа.ФОТФакт.Получить(ДатаРасчета)/Константа.СрКолЧасФакт.Получить(ДатаРасчета)*ТЗмехВсегоОстаток);
МашМехОстаток=МашСумКомп+Окр(Константа.ПроцМашМех.Получить(ДатаРасчета)*ЭксплВсегоОстаток);
конецесли;
Если СуммаНакл<0 тогда
СуммаНакл=0;
конецесли;
НаклРасхОстаток=НаклСумКомп+СуммаНакл;
Если СуммаПлан<0 тогда
СуммаПлан=0;
конецесли;
ПланНакОстаток=ПланСумКомп+СуммаПлан;
//////////////
Если ОбъектГЖФ=1 тогда
ВрОстаток=ВремСумКомп+Окр(Константа.ПроцВремГЖФ.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
ЗимнОстаток=ЗимнСумКомп+Окр(Константа.ПроцЗимнГЖФ.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
иначеЕсли ((ОбъектГЖФ=3) или (объектГЖФ=4)) тогда
ВрОстаток=ВремСумКомп+Окр(Константа.ПроцВремГЖФ_2014.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
ЗимнОстаток=ЗимнСумКомп+Окр(Константа.ПроцЗимнГЖФ_2014.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
иначе
ВрОстаток=ВремСумКомп+Окр(Константа.ПроцВрем.Получить(ДатаРасчета)/100*Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая));
ЗимнОстаток=ЗимнСумКомп+Окр(Константа.ПроцЗимн.Получить(ДатаРасчета)/100*(Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток));
конецесли;
ИтогоОстаток=Окр(НаклРасхОстаток+ПланНакОстаток+МашМехОстаток+ФОТоснОстаток+С уммаИтоговая)+ВрОстаток+ЗимнОстаток;
НДСОстаток=Окр(Константа.НДС/100*(ИтогоОстаток),2);
ИтогоСНДСОстаток=Окр(ИтогоОстаток+НДСОстаток,2);
Таб.ВывестиСекцию("Итоги");
Конеццикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Накопит.вед.материалов "+Контр+" "+Об+" "+Видр+" "+ПериодСтр(ВыбНачПериода,ВыбКонПериода),"");
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
ВыбНачПериода = НачалоПериодаБИ();
ВыбКонПериода = КонецПериодаБИ();
ДатаРасчета=ТекущаяДата();
КонецПроцедуры
Процедура Обработать()
Если ПустоеЗначение(Флаг4)=0 тогда
СформироватьСводный();
Иначе
Сформировать();
КонецЕсли;
КонецПроцедуры
ПоказатьТаб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьПланСчетов(ПланыСчетов.Рабочий);
Ит.ИспользоватьСубконто(ВидыСубконто.ВидыРабот,видр, 1,1);
Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контр, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Объекты,Об, 1);
Если ТипРаботы.Выбран() = 1 Тогда
Ит.ИспользоватьСубконто(ВидыСубконто.ТипРабот,ТипРаботы, 2);
КонецЕсли;
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"1",,, 1,, "СК");
Таб.ВывестиСекцию("Шапка|Основа");
Таб.ПрисоединитьСекцию("Шапка|Остаток");
Таб.ПрисоединитьСекцию("Шапка|Факт");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
ТЗоснВСЕГОКомпл=0;
ТЗмехВСЕГОКомпл=0;
ЭксплВСЕГОКомпл=0;
ТЗоснВСЕГОУлож=0;
ТЗмехВСЕГОУлож=0;
ЭксплВСЕГОУлож=0;
ТЗоснВСЕГООстаток=0;
ТЗмехВСЕГООстаток=0;
ЭксплВСЕГООстаток=0;
СуммаИтоговая=0;
СуммаНаклИтоговая=0;
СуммаПланИтоговая=0;
пл(об);
//*******
Ит.ВыбратьСубконто(ВидыСубконто.ТипРабот,,,,,"Код");
Пока Ит.ПолучитьСубконто(ВидыСубконто.ТипРабот) = 1 Цикл
//*********
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)