Имя: Пароль:
1C
1С v8
Подскажите с отчетом...
0 hasan-rusel
 
08.04.13
10:48
О, великие умы волшебного форума !
Помогите начинающим!

Есть макет:

http://s020.radikal.ru/i703/1304/3c/062cdc5611c5.jpg

Неработающий код)

   Таблица = Новый ТабличныйДокумент ;

   Макет = ПолучитьМакет("Макет");

//    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
//    Таблица.Вывести(ОбластьШапка);
   ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
   СекцияШапка = Макет.ПолучитьОбласть("Шапка|Колонка1");
   СекцияСтрока1 = Макет.ПолучитьОбласть("Строка|Колонка1");
   СекцияИтого = Макет.ПолучитьОбласть("СтрокаИтого|Колонка1");
   
   СекцияШапка1 = Макет.ПолучитьОбласть("Шапка|Колонка");
   СекцияСтрока = Макет.ПолучитьОбласть("Строка|Колонка");
   СекцияИтого1 = Макет.ПолучитьОбласть("СтрокаИтого|Колонка");
   
   Таблица.НачатьАвтогруппировкуКолонок();
   
   
   
   
   СекцияШапка.Параметры.Подразделение = Подразделение;
   СекцияШапка.Параметры.Дата1 = Формат(НачПериода,"ДФ=dd.MM.yyyy");
   СекцияШапка.Параметры.Дата2 = Формат(КонПериода,"ДФ=dd.MM.yyyy");

   СекцияШапка.Параметры.УВ1 = "100.00";
   Таблица.Вывести(СекцияШапка);
   
   
   Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                 |    ХозрасчетныйДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2,
                 |    ХозрасчетныйДвиженияССубконто.Сумма,
                 |    ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
                 |    ХозрасчетныйДвиженияССубконто.Период,
                 |    ХозрасчетныйДвиженияССубконто.ПодразделениеКт.Ссылка КАК ПодразделениеКтСсылка,
                 |    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаПРДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаПРКт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаВРДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаВРКт
                 |ИЗ
                 |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
                 |            &НачПериода,
                 |            &КонПериода,
                 |            СчетДт = &Счет
                 |                И ВЫБОР
                 |                    КОГДА &Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
                 |                        ТОГДА ИСТИНА
                 |                    ИНАЧЕ ПодразделениеДт.Ссылка = &Подразделение
                 |                КОНЕЦ,
                 |            ,
                 |            ) КАК ХозрасчетныйДвиженияССубконто
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
                 |    ХозрасчетныйДвиженияССубконто.Сумма,
                 |    ХозрасчетныйДвиженияССубконто.СчетКт,
                 |    ХозрасчетныйДвиженияССубконто.Период,
                 |    ХозрасчетныйДвиженияССубконто.ПодразделениеКт.Ссылка,
                 |    ХозрасчетныйДвиженияССубконто.СуммаНУДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаНУКт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаПРДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаПРКт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаВРДт,
                 |    ХозрасчетныйДвиженияССубконто.СуммаВРКт
                 |
                 |УПОРЯДОЧИТЬ ПО
                 |    СубконтоДт2
                 |ИТОГИ ПО
                 |    СубконтоДт2";
                 
   Запрос.УстановитьПараметр("Счет", Счет);
   Запрос.УстановитьПараметр("Подразделение", Подразделение);
   Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
   Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();

   ////////ЦИКЛ ПО 1-4 КОЛОНКАМ
   ВыборкаСубконто = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока ВыборкаСубконто.Следующий() Цикл
       Выборка = ВыборкаСубконто.Выбрать();
   Пока Выборка.Следующий() Цикл

           
           АБУ1 = АБУ1 + Выборка.Сумма;
           АНУ1 = АНУ1 + Выборка.СуммаНУДт;
           АПР1=АПР1+Выборка.СуммаПРДт;
           АВР1=АВР1+Выборка.СуммаВРДт;
           АК1=АБУ1-(АНУ1+АПР1+АВР1);
           
           ИБУ1=ИБУ1+Выборка.Сумма;
           ИНУ1=ИНУ1+Выборка.СуммаНУДт;
           ИПР1=ИПР1+Выборка.СуммаПРДт;
           ИВР1=ИВР1+Выборка.СуммаВРДт;
           ИК1=ИК1+АК1;
           
           
           Если Выборка.СчетКт.Код <> "20" и Выборка.СчетКт.Код <> "20.01" и Выборка.СчетКт.Код <> "20.02" и Выборка.СчетКт.Код <> "23" и Выборка.СчетКт.Код <> "23.01" и Выборка.СчетКт.Код <> "23.02" тогда
               //КонецЕсли;
               АБУ2 = АБУ2 + Выборка.Сумма;
               АНУ2 = АНУ2 + Выборка.СуммаНУДт;
               АПР2=АПР2+Выборка.СуммаПРДт;
               АВР2=АВР2+Выборка.СуммаВРДт;
               АК2=АБУ2-(АНУ2+АПР2+АВР2);
               
                   ИБУ2=ИБУ2+Выборка.Сумма;
                   ИНУ2=ИНУ2+Выборка.СуммаНУДт;
                   ИПР2=ИПР2+Выборка.СуммаПРДт;
                   ИВР2=ИВР2+Выборка.СуммаВРДт;
                   ИК2=ИК2+АК2;
                   
               ИначеЕсли Выборка.СчетКт.Код = "20" или Выборка.СчетКт.Код = "20.01" или Выборка.СчетКт.Код = "20.02" тогда
                   Если Выборка.ПодразделениеКтСсылка <> ПД тогда
               АБУ3 = АБУ3 + Выборка.Сумма;
               АНУ3 = АНУ3 + Выборка.СуммаНУДт;
               АПР3=АПР3+Выборка.СуммаПРДт;
               АВР3=АВР3+Выборка.СуммаВРДт;
               АК3=АБУ3-(АНУ3+АПР3+АВР3);
               ПД = Выборка.ПодразделениеКтСсылка;
               Таблица.Присоединить(СекцияШапка1);
               Таблица.Присоединить(СекцияСтрока);

               КонецЕсли;
               КонецЕсли;


//    Секция1.Параметры.УВ2 = Формат(ИБУ2/ИБУ1,"ЧДЦ=2; ЧС=-2");
   СекцияСтрока1.Параметры.Субконто = Выборка.СубконтоДт2.Наименование;
   СекцияСтрока1.Параметры.АБУ1=АБУ1;
   СекцияСтрока1.Параметры.АБУ2=АБУ2;
   СекцияСтрока1.Параметры.АНУ1=АНУ1;
   СекцияСтрока1.Параметры.АНУ2=АНУ2;
   СекцияСтрока1.Параметры.АПР1=АПР1;
   СекцияСтрока1.Параметры.АПР2=АПР2;
   СекцияСтрока1.Параметры.АВР1=АВР1;
   СекцияСтрока1.Параметры.АВР2=АВР2;
   СекцияСтрока1.Параметры.АК1=АК1;
   СекцияСтрока1.Параметры.АК2=АК2;
   СекцияСтрока.Параметры.АБУ3=АБУ3;
   СекцияСтрока.Параметры.АНУ3=АНУ3;
   СекцияСтрока.Параметры.АПР3=АПР3;
   СекцияСтрока.Параметры.АВР3=АВР3;
   СекцияСтрока.Параметры.АК3=АК3;
   СекцияШапка1.Параметры.ПД = ПД;


КонецЦикла;

     Таблица.Вывести(СекцияСтрока1);
// Таблица.Присоединить(СекцияШапка1);
//    Таблица.Присоединить(СекцияСтрока);
   ПриОткрытии();
//    Субконто = Выборка.СубконтоДт2.Наименование;
//КонецЦикла;

СекцияИтого.Параметры.ИБУ1 = ИБУ1;
СекцияИтого.Параметры.ИНУ1 = ИНУ1;
СекцияИтого.Параметры.ИПР1 = ИПР1;
СекцияИтого.Параметры.ИВР1 = ИВР1;
СекцияИтого.Параметры.ИК1 = ИК1;

СекцияИтого.Параметры.ИБУ2 = ИБУ2;
СекцияИтого.Параметры.ИНУ2 = ИНУ2;
СекцияИтого.Параметры.ИПР2 = ИПР2;
СекцияИтого.Параметры.ИВР2 = ИВР2;
СекцияИтого.Параметры.ИК2 = ИК2;

   КонецЦикла;
   
Таблица.Вывести(СекцияИтого);


Код по первым 4м колонкам работает нормально, т.е. собирает итоги всего в 3ю колонку и выводит и в 4 колонку выводит все что не вошло по 20 и 23 счету.

А вот дальше не знаю как быть...
Нужно чтобы в СекцияСтрока собирались итоги по определенному субконто и определенному подразделению.
Если новое подразделение то добавляется новая колонка и т.д.
(субконто соответственно должно тоже совпадать)

PS)
Вот к такому виду нужно придти...
http://s47.radikal.ru/i115/1304/97/629e8249f7c2.jpg


Заранее спасибо за помощь !!!!!!!
1 hasan-rusel
 
08.04.13
12:11
Неужели никто не может помочь ? :((
2 hasan-rusel
 
09.04.13
05:47
уточню....

конфигурация БП 2.0

Нужно собрать итоги по одной статье затрат, например "Амотризация ОС" по определенному подразделению, например "Мех.служба" потом присоединяем к соответвующей статье затрат и и т.д. по определенному подразделению, потом другое подразделение - новая колонка... и т.д.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.