Имя: Пароль:
1C
1С v8
Изменение типовой ОСВ по счету в БП 3.0
,
0 vikki
 
12.11.14
16:01
Добрый день, уважаемые коллеги!

Поставили мне задачу финансисты изменить типовую ОСВ по счету так, чтобы периоды с учетом указанной периодичности выходили в столбцах, а не в строках:
[URL=http://www.imageup.ru/img246/1941659/osv_primer.jpg.html][IMG]http://www.imageup.ru/img246/thumb/osv_primer1941659.jpg[/IMG][/URL]
Может кто подскажет, где копать???
Нашла в модуле менеджера процедуру ПередКомпановкойМакета(), внесла туда некоторые изменения: [CODE]ГруппаПериод = КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаПериод.Заголовок = "Период";
    ГруппаПериод.Использование = Истина;
    
    ГруппаСальдоНаНачало = ГруппаПериод.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаСальдоНаНачало.Заголовок     = "Сальдо на начало периода";
    ГруппаСальдоНаНачало.Использование = Истина;
    ГруппаСальдоНаНачалоДт = ГруппаСальдоНаНачало.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаСальдоНаНачалоДт.Заголовок     = "Дебет";
    ГруппаСальдоНаНачалоДт.Использование = Истина;
    ГруппаСальдоНаНачалоДт.Расположение  = РасположениеПоляКомпоновкиДанных.Вертикально;
    ГруппаСальдоНаНачалоКт = ГруппаСальдоНаНачало.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаСальдоНаНачалоКт.Заголовок     = "Кредит";
    ГруппаСальдоНаНачалоКт.Использование = Истина;
    ГруппаСальдоНаНачалоКт.Расположение  = РасположениеПоляКомпоновкиДанных.Вертикально;
    
    ГруппаОбороты = ГруппаПериод.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаОбороты.Заголовок     = "Обороты за период";
    ГруппаОбороты.Использование = Истина;
    ГруппаОборотыДт = ГруппаОбороты.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаОборотыДт.Заголовок     = "Дебет";
    ГруппаОборотыДт.Использование = Истина;
    ГруппаОборотыДт.Расположение  = РасположениеПоляКомпоновкиДанных.Вертикально;
    ГруппаОборотыКт = ГруппаОбороты.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаОборотыКт.Заголовок     = "Кредит";
    ГруппаОборотыКт.Использование = Истина;
    ГруппаОборотыКт.Расположение  = РасположениеПоляКомпоновкиДанных.Вертикально;
    
    ГруппаСальдоНаКонец = ГруппаПериод.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаСальдоНаКонец.Заголовок     = "Сальдо на конец периода";
    ГруппаСальдоНаКонец.Использование = Истина;
    ГруппаСальдоНаКонецДт = ГруппаСальдоНаКонец.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаСальдоНаКонецДт.Заголовок     = "Дебет";
    ГруппаСальдоНаКонецДт.Использование = Истина;
    ГруппаСальдоНаКонецДт.Расположение  = РасположениеПоляКомпоновкиДанных.Вертикально;
    ГруппаСальдоНаКонецКт = ГруппаСальдоНаКонец.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
    ГруппаСальдоНаКонецКт.Заголовок     = "Кредит";
    ГруппаСальдоНаКонецКт.Использование = Истина;
    ГруппаСальдоНаКонецКт.Расположение  = РасположениеПоляКомпоновкиДанных.Вертикально;
Для Каждого ИмяПоказателя Из ПараметрыОтчета.НаборПоказателей Цикл
        Если ПараметрыОтчета["Показатель" + ИмяПоказателя] Тогда
            ВидОстатка = ?(ПараметрыОтчета.РазвернутоеСальдо, "Развернутый", "");
            
            БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаПериод, "Период");
            БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаСальдоНаНачалоДт, "СальдоНаНачалоПериода." + ИмяПоказателя + "Начальный" + ВидОстатка + "ОстатокДт");
            БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаСальдоНаНачалоКт, "СальдоНаНачалоПериода." + ИмяПоказателя + "Начальный" + ВидОстатка + "ОстатокКт");
            БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаОборотыДт,        "ОборотыЗаПериод."       + ИмяПоказателя + "ОборотДт");
            БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаОборотыКт,        "ОборотыЗаПериод."       + ИмяПоказателя + "ОборотКт");
            БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаСальдоНаКонецДт,  "СальдоНаКонецПериода."  + ИмяПоказателя + "Конечный"  + ВидОстатка + "ОстатокДт");
            БухгалтерскиеОтчетыКлиентСервер.ДобавитьВыбранноеПоле(ГруппаСальдоНаКонецКт,  "СальдоНаКонецПериода."  + ИмяПоказателя + "Конечный"  + ВидОстатка + "ОстатокКт");
        КонецЕсли;
    КонецЦикла;
[/CODE]

Видимо где-то нужен цикл по периоду с заданной периодичностью и как-то передавать все в компановку или вообще все не верно?
1 vikki
 
12.11.14
16:11
Сорри, прямая ссылка на картинку http://imageup.ru/img246/1941651/osv_primer.jpg.html
2 RayCon
 
12.11.14
16:12
Используй Универсальную ОСВ от Александра Леонова: http://infostart.ru/public/21322/
3 vikki
 
12.11.14
16:14
У меня платформа 8.3 и БП 3.0
4 RayCon
 
13.11.14
04:13
(3) В толстом клиенте будет работать
5 vikki
 
13.11.14
14:30
(4) К сожалению не работает на управляемых формах(((

Написала отчет с нуля, формируется все как надо, но теперь нужно воспроизвести настройки типовой ОСВ, загвоздка в группировке...
6 RayCon
 
18.11.14
01:19
(5)
>К сожалению не работает на управляемых формах(((

Как внешний отчет не будет наработать - надо в конфигурацию вставить.

>Написала отчет с нуля

Ты - крутая! :)

>формируется все как надо, но теперь нужно воспроизвести
>настройки типовой ОСВ, загвоздка в группировке...

Загвоздка вовсе не в группировке, а в том, что ОСВ в типовой поставке не имеет нужных настроек => их невозможно воспроизвести.
Могу тебе слегка помочь: скинуть табличку с развёрнутым сальдо.
2 + 2 = 3.9999999999999999999999999999999...