Имя: Пароль:
1C
 
Вопрос по редактированию формы (2)
0 maptbln
 
06.03.18
09:18
День добрый , раньше была тема , но она затерлась

подскажите пожалуйста , как добавить итоги по столбцу в следующий модуль формы

Процедура мСформироватьКолонкиТабличногоПоля()
    
    ЭлементыФормы.тпБюджетныеОперации.СоздатьКолонки();
    
    флагПоказатель = ЛОЖЬ;
    флагИтого = ЛОЖЬ;
    флагДанныеСтрока = ЛОЖЬ;
    чПериодКопия = "";
    ДатаПериода = ДатаНачала;
    Красный = 255;
    Зеленый = 255;
    Синий = 255;
    сКодПоказателяКопия = "";
    струПоказателейЦветов = Новый Структура;
    сВидКолонокСправочника = "?#?#?#?#?#?#?#";
    сКодЭлементаСправочникаКопия = "?#?#?#?#?#?#?#";
    
    Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ЦФОПоКолонкам Тогда
        сВидКолонокСправочника = "ИС_ЦФО";
        сСправочник = "ЦФО";
    ИначеЕсли ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ПроектыПоКолонкам Тогда
        сВидКолонокСправочника = "ИС_Проекты";
        сСправочник = "Проекты";
    КонецЕсли;
    
    сТекстПодвала = "";
    
    Для Каждого Колонка Из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
        Если Найти(Колонка.Имя,"НомерСтроки") <> 0 Тогда
            Колонка.ТолькоПросмотр = ИСТИНА;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Аналитика_") <> 0 Тогда
            Колонка.Ширина = 26;
            Если Колонка.ЭлементУправления.ТипЗначения = ОписаниеТиповСтрока и Колонка.Имя = "Аналитика_Интервал" Тогда
                Колонка.ЭлементУправления.КнопкаВыбора = истина;
                Колонка.ЭлементУправления.РедактированиеТекста = ЛОЖЬ;
                Колонка.ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("НачалоВыбора_Период"));
            ИначеЕсли Колонка.Имя = "Аналитика_ИнтервалДата" Тогда
                Колонка.Видимость = ЛОЖЬ;
            КонецЕсли;
            Продолжить;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Показатель_") <> 0 Тогда
            Колонка.Ширина = 26;
            Колонка.ПропускатьПриВводе = ИСТИНА;
            Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ПоказателиПоКолонкам Тогда
                Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
                    сКодЭлементаСправочникаКопия = "?#?#?#?#?#?#?#";
                КонецЕсли;
                
                сКодПоказателя = СтрЗаменить(Колонка.Имя,"Показатель_","");
                сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
                
                ПоказательЭлемент = Справочники.ИС_ПоказателиБюджета.НайтиПоКоду(сКодПоказателя);
                
                Если НЕ флагПоказатель Тогда
                    Колонка.ТекстШапки = "Показатель бюджета";
                    флагПоказатель = Истина;
                Иначе
                    Колонка.ТекстШапки = "";
                    Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке;
                КонецЕсли;
                
                Если сТекстПодвала = ("ИТОГО: " + ПоказательЭлемент) Тогда
                    Колонка.ТекстПодвала = "";
                Иначе
                    сТекстПодвала = "ИТОГО: " + ПоказательЭлемент;
                    Колонка.ТекстПодвала = сТекстПодвала;
                КонецЕсли;
                
                флагДоступноИзменениеДанныхПоказателя = глБулево(глЭтоПустоеЗначение(ПоказательЭлемент.ИсточникФактДанныхЦена));
                
                Если сКодПоказателяКопия <> сКодПоказателя Тогда
                    Цвет = мОпределитьЦвет(Красный,Зеленый,Синий);
                    сКодПоказателяКопия = сКодПоказателя;
                КонецЕсли;
                
                чСтрок = 0;
                флаг = ЛОЖЬ;
                Для Каждого КолонкаСДанными Из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
                    Если Найти(КолонкаСДанными.Имя,"Данные_ПроектыЦФО_") > 0 Тогда
                        Если НЕ флаг Тогда
                            флаг = Истина;
                            КолонкаСДанными.Положение = ПоложениеКолонки.НаСледующейСтроке;
                        Иначе
                            КолонкаСДанными.Положение = ПоложениеКолонки.ВТойЖеКолонке;
                        КонецЕсли;
                        
                        КолонкаСДанными.ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("мПересчет"));
                        КолонкаСДанными.Видимость = ЛОЖЬ;
                        чСтрок = чСтрок + 1;
                    ИначеЕсли ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам и
                              Найти(КолонкаСДанными.Имя,"Данные_") <> 0 Тогда
                        мДополнительноОбработатьКолонку(КолонкаСДанными,КолонкаСДанными.Имя,ПоказательЭлемент,сКодПоказателя,флагДоступноИзменениеДанныхПоказателя);
                    ИначеЕсли Найти(КолонкаСДанными.Имя,"ДанныеСтрока_" + сКодПоказателя) = 0 и
                              ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
                        чСтрок = чСтрок + 1;
                        Продолжить;
                    КонецЕсли;
                    
                    Если Найти(КолонкаСДанными.Имя,"Данные_") = 0 Тогда
                        Продолжить;
                    КонецЕсли;
                    
                    Если Найти(КолонкаСДанными.Имя,"Данные_" + сСправочник + "_") > 0 Тогда
                        сКодЭлементаСправочника = мПолучитьСтрокуСРазделителем(КолонкаСДанными.Имя,2);
                        сКодЭлементаСправочника = Лев(сКодЭлементаСправочника,Найти(сКодЭлементаСправочника,"_")-1);
                        Если сКодЭлементаСправочника <> сКодЭлементаСправочникаКопия Тогда
                            КолонкаСДанными.Положение = ПоложениеКолонки.НоваяКолонка;
                            КолонкаСДанными.ТекстШапки = Справочники[сВидКолонокСправочника].НайтиПоКоду(сКодЭлементаСправочника);
                            сКодЭлементаСправочникаКопия = сКодЭлементаСправочника;
                        Иначе
                            КолонкаСДанными.ТекстШапки = "";
                            КолонкаСДанными.Положение = ПоложениеКолонки.НаСледующейСтроке;
                        КонецЕсли;
                        
                        мДополнительноОбработатьКолонку(КолонкаСДанными,КолонкаСДанными.Имя,ПоказательЭлемент,сКодПоказателя,флагДоступноИзменениеДанныхПоказателя);
                    КонецЕсли;
                КонецЦикла;
                
                Колонка.ТолькоПросмотр = ИСТИНА;
                
                Если чСтрок > 1 и тчПоказатели.Количество() > 1 Тогда
                    Колонка.ЦветФонаПоля = Цвет;
                    струПоказателейЦветов.Вставить(сКодПоказателя,Цвет);
                КонецЕсли;
            Иначе
                сКодПоказателя = СтрЗаменить(Колонка.Имя,"Показатель_","");
                сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
                
                ПоказательЭлемент = Справочники.ИС_ПоказателиБюджета.НайтиПоКоду(сКодПоказателя);
                флагДоступноИзменениеДанныхПоказателя = глБулево(глЭтоПустоеЗначение(ПоказательЭлемент.ИсточникФактДанныхЦена));
                
                Если сТекстПодвала = ("ИТОГО: " + ПоказательЭлемент) Тогда
                    Колонка.ТекстПодвала = "";
                Иначе
                    сТекстПодвала = "ИТОГО: " + ПоказательЭлемент;
                    Колонка.ТекстПодвала = сТекстПодвала;
                КонецЕсли;
                
                Если сКодПоказателяКопия <> сКодПоказателя Тогда
                    Цвет = мОпределитьЦвет(Красный,Зеленый,Синий);
                    сКодПоказателяКопия = сКодПоказателя;
                    Показатель = спПоказатели.НайтиПоЗначению(сКодПоказателя);
                    Колонка.Положение = ПоложениеКолонки.НоваяКолонка;
                КонецЕсли;
                
                Колонка.ТолькоПросмотр = ИСТИНА;
                Колонка.ТекстШапки = Показатель;
                
                чСтрок = 0;
                флаг = ЛОЖЬ;
                Для Каждого КолонкаСДанными Из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
                    Если Найти(КолонкаСДанными.Имя,"Данные_" + сКодПоказателя) = 0 Тогда
                        Продолжить;
                    КонецЕсли;
                    
                    Если НЕ флаг Тогда
                        флаг = Истина;
                        КолонкаСДанными.Положение = ПоложениеКолонки.НаСледующейСтроке;
                    Иначе
                        КолонкаСДанными.Положение = ПоложениеКолонки.ВТойЖеКолонке;
                    КонецЕсли;
                    
                    мДополнительноОбработатьКолонку(КолонкаСДанными,КолонкаСДанными.Имя,ПоказательЭлемент,сКодПоказателя,флагДоступноИзменениеДанныхПоказателя);
                КонецЦикла;
            КонецЕсли;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"ДанныеСтрока_") <> 0 Тогда
            Колонка.Ширина = 12;
            Колонка.ПропускатьПриВводе = ИСТИНА;
            Если НЕ флагДанныеСтрока Тогда
                Колонка.ТекстШапки = "Данные";
                флагДанныеСтрока = Истина;
            Иначе
                Колонка.ТекстШапки = "";
                Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке
            КонецЕсли;
            
            сКодПоказателя = СтрЗаменить(Колонка.Имя,"ДанныеСтрока_","");
            сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
            
            Колонка.ТолькоПросмотр = ИСТИНА;
            
            Колонка.ТекстПодвала = мПолучитьСтрокуСРазделителем(Колонка.Имя,3);
            
            Попытка
                Если струПоказателейЦветов.Свойство(сКодПоказателя,Цвет) Тогда
                    Колонка.ЦветФонаПоля = Цвет;
                КонецЕсли;
            Исключение
            КонецПопытки;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Данные_") <> 0 Тогда
            Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
                чПериод = Лев(СтрЗаменить(Колонка.Имя,"Данные_",""),2);
                Если чПериод <> чПериодКопия Тогда
                    Колонка.ТекстШапки = глПредставлениеИнтервала(ДатаПериода,ИнтервалПланирования);
                    флагДанные = ИСТИНА;
                    чПериодКопия = чПериод;
                    ДатаПериода = глДобавитьИнтервалы(ДатаПериода, 1, ИнтервалПланирования);
                Иначе
                    Колонка.ТекстШапки = "";
                    Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке;
                КонецЕсли;
                
                сКодПоказателя = СтрЗаменить(Колонка.Имя,"Данные_","");
                сКодПоказателя = Прав(сКодПоказателя,СтрДлина(сКодПоказателя) - Найти(сКодПоказателя,"_"));
                сКодПоказателя = Прав(сКодПоказателя,СтрДлина(сКодПоказателя) - Найти(сКодПоказателя,"_"));
                
                ПоказательЭлемент = Справочники.ИС_ПоказателиБюджета.НайтиПоКоду(сКодПоказателя);
                флагДоступноИзменениеДанныхПоказателя = глБулево(глЭтоПустоеЗначение(ПоказательЭлемент.ИсточникФактДанныхЦена));
                
                мДополнительноОбработатьКолонку(КолонкаСДанными,КолонкаСДанными.Имя,ПоказательЭлемент,сКодПоказателя,флагДоступноИзменениеДанныхПоказателя);
                Попытка
                    Если струПоказателейЦветов.Свойство(сКодПоказателя,Цвет) Тогда
                        Колонка.ЦветФонаПоля = Цвет;
                    КонецЕсли;
                Исключение
                КонецПопытки;
            ИначеЕсли ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ПроектыПоКолонкам или
                      ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ЦФОПоКолонкам Тогда
                      
                Если Найти(Колонка.Имя,"Данные_ПроектыЦФО_") <> 0 Тогда
                    Продолжить;
                КонецЕсли;
                  
                сКодПоказателя = мПолучитьСтрокуСРазделителем(Колонка.Имя,4);
                
                Попытка
                    Если струПоказателейЦветов.Свойство(сКодПоказателя,Цвет) Тогда
                        Колонка.ЦветФонаПоля = Цвет;
                    КонецЕсли;
                Исключение
                КонецПопытки;
                
            КонецЕсли;
            Колонка.Ширина = 16;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Данные_") <> 0 Тогда
            Если Найти(Колонка.Имя,"Количество") <> 0 Тогда
                Колонка.Формат = "ЧРГ=' '; ЧГ=3,0";
                Колонка.ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Центр;
                Колонка.ГоризонтальноеПоложениеВПодвале = ГоризонтальноеПоложение.Центр;
            КонецЕсли;
            
            Если Найти(Колонка.Имя,"Сумма") <> 0 или Найти(Колонка.Имя,"Цена") <> 0 Тогда
                Колонка.Формат = "ЧДЦ=2; ЧРГ=' '";
                Колонка.ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Право;
                Колонка.ГоризонтальноеПоложениеВПодвале = ГоризонтальноеПоложение.Право;
            КонецЕсли;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"ДанныеИТОГО_") <> 0 Тогда
            Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ПоказателиПоКолонкам Тогда
                Если Не флагИтого Тогда
                    Колонка.ТекстШапки = "ИТОГО";
                    флагИтого = ИСТИНА;
                Иначе
                    Колонка.ТекстШапки = "";
                    Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке;
                КонецЕсли;
                
                сКодПоказателя = мПолучитьСтрокуСРазделителем(Колонка.Имя,1);
                сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
                Попытка
                    Если струПоказателейЦветов.Свойство(сКодПоказателя,Цвет) Тогда
                        Колонка.ЦветФонаПоля = Цвет;
                    КонецЕсли;
                Исключение
                КонецПопытки;
                
                Колонка.ТолькоПросмотр = Истина;
                
                Если Найти(Колонка.Имя,"Количество") <> 0 Тогда
                    Колонка.Формат = "ЧРГ=' '; ЧГ=3,0";
                    Колонка.ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Центр;
                КонецЕсли;
                
                Если Найти(Колонка.Имя,"Сумма") <> 0 или Найти(Колонка.Имя,"Цена") <> 0 Тогда
                    Колонка.Формат = "ЧДЦ=2; ЧРГ=' '";
                    Колонка.ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Право;
                КонецЕсли;
            КонецЕсли;
            Колонка.Ширина = 16;
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры


необходимо вычислить итоги по столбцу "Итоги"

Подвал.ПоказатьИтоги = ИмяПеремен... было как то так,я к сожалению не зафиксировал себе..
1 maptbln
 
06.03.18
10:13
но ведь был же ответ ,
как вывести программно итоги по столбцу в подвал..
2 maptbln
 
06.03.18
15:34
в общем есть форма
https://ibb.co/dmAz7n
https://ibb.co/fpr6nn
https://ibb.co/figiYS

при нажатии на флаг "Выводить сумму" появляется в подвале строка итогов , так вот она суммирует все колонки помесячно , а колонку ИТОГОВ - не суммирует

если я правильно понял , в одной из этих процедур собственно итоги и собираются

Процедура кнСформироватьТабличноеПоле_Нажатие(Кнопка)
    
    тпБюджетныеОперацииКопия = тпБюджетныеОперации.Скопировать();
    
    ВидВизуализацииБюджета                          = ВидПакетаБюджетныхОпераций.ВидВизуализацииБюджета;
    ВидПакетаБюджетныхОпераций_КоличествоИнтервалов = ВидПакетаБюджетныхОпераций.КоличествоИнтервалов;
    ВидПакетаБюджетныхОпераций_флВыводитьКоличество = ВидПакетаБюджетныхОпераций.флВыводитьКоличество;
    ВидПакетаБюджетныхОпераций_флВыводитьСумму      = ВидПакетаБюджетныхОпераций.флВыводитьСумму;
    ВидПакетаБюджетныхОпераций_флВыводитьЦену       = ВидПакетаБюджетныхОпераций.флВыводитьЦену;
    ВидПакетаБюджетныхОпераций_флПроектВШапке       = ВидПакетаБюджетныхОпераций.флПроектВШапке;
    ВидПакетаБюджетныхОпераций_флЦФОВШапке          = ВидПакетаБюджетныхОпераций.флЦФОВШапке;
    
    тчАналитика.Очистить();
    
    Для Каждого стчАналитика из ВидПакетаБюджетныхОпераций.тчАналитика Цикл
        Если НЕ стчАналитика.флАктивен Тогда
            Продолжить;
        КонецЕсли;
        
        нстч = тчАналитика.Добавить();
        нстч.ПолеБюджета = стчАналитика.ПолеБюджета;
    КонецЦикла;
    
    тчПоказатели.Очистить();
    
    Для Каждого стчПоказатель из ВидПакетаБюджетныхОпераций.тчПоказатели Цикл
        нстч = тчПоказатели.Добавить();
        нстч.ПоказательБюджета = стчПоказатель.ПоказательБюджета;
    КонецЦикла;  
        
    мОбновитьНадписи();
    мОбновитьДоступность();
    мСформироватьТабличноеПоле(Неопределено);
    
    Для Каждого стпБюджетныеОперацииКопия из тпБюджетныеОперацииКопия Цикл
        нстпБюджетныеОперации = тпБюджетныеОперации.Добавить();
        глСкопироватьСтрокуТЗПолн(нстпБюджетныеОперации,стпБюджетныеОперацииКопия,тпБюджетныеОперацииКопия.Колонки);
        мЗаполнитьДанныеСтрокиПоУмолчанию(нстпБюджетныеОперации);
    КонецЦикла;       
    
КонецПроцедуры

Процедура мСформироватьТабличноеПоле(Кнопка)
    
    мОбновитьПоказателиИПериоды();
    тпБюджетныеОперации.Колонки.Очистить();
    глДобавитьКолонкуТЗ(тпБюджетныеОперации,"НомерСтроки", ,,,"№ п/п",10);
    Для каждого стАналитика Из тчАналитика Цикл
        Если стАналитика.ПолеБюджета = ПланыВидовХарактеристик.ИС_ВидыАналитикиБюджетирование.Интервал Тогда
            Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
                тпБюджетныеОперации.Колонки.Добавить("Аналитика_" + стАналитика.ПолеБюджета,ОписаниеТиповСтрока,стАналитика.ПолеБюджета);
                тпБюджетныеОперации.Колонки.Добавить("Аналитика_ИнтервалДата",ОписаниеТиповДата,"Аналитика_ИнтервалДата");
            КонецЕсли;
        Иначе
            тпБюджетныеОперации.Колонки.Добавить("Аналитика_" + стАналитика.ПолеБюджета.Код,стАналитика.ПолеБюджета.Ссылка.ТипЗначения,стАналитика.ПолеБюджета);
        КонецЕсли;
    КОнецЦикла;
    
    Для Каждого стчПоказатели из тчПоказатели Цикл
        Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ПоказателиПоКолонкам Тогда
            Если стчПоказатели.ПоказательБюджета.флСуммовойУчет Тогда
                Если ВидПакетаБюджетныхОпераций_флВыводитьЦену и стчПоказатели.ПоказательБюджета.флКоличественныйУчет Тогда
                    тпБюджетныеОперации.Колонки.Добавить("Показатель_" + стчПоказатели.ПоказательБюджета.Код + "_Цена");
                КонецЕсли;
                Если ВидПакетаБюджетныхОпераций_флВыводитьСумму Тогда
                    тпБюджетныеОперации.Колонки.Добавить("Показатель_" + стчПоказатели.ПоказательБюджета.Код + "_Сумма");
                КонецЕсли;
            КонецЕсли;
            Если стчПоказатели.ПоказательБюджета.флКоличественныйУчет и ВидПакетаБюджетныхОпераций_флВыводитьКоличество Тогда
                тпБюджетныеОперации.Колонки.Добавить("Показатель_" + стчПоказатели.ПоказательБюджета.Код + "_Количество");
            КонецЕсли;
        Иначе
            тпБюджетныеОперации.Колонки.Добавить("Показатель_" + стчПоказатели.ПоказательБюджета.Код + "_Общий");
            Если стчПоказатели.ПоказательБюджета.флСуммовойУчет Тогда
                Если ВидПакетаБюджетныхОпераций_флВыводитьЦену и стчПоказатели.ПоказательБюджета.флКоличественныйУчет Тогда
                    тпБюджетныеОперации.Колонки.Добавить("Данные_" + стчПоказатели.ПоказательБюджета.Код + "_Цена",ОписаниеТиповЧСумма,"Цена");
                КонецЕсли;
                Если ВидПакетаБюджетныхОпераций_флВыводитьСумму Тогда
                    тпБюджетныеОперации.Колонки.Добавить("Данные_" + стчПоказатели.ПоказательБюджета.Код + "_Сумма",ОписаниеТиповЧСумма,"Сумма");
                КонецЕсли;
            КонецЕсли;
            Если стчПоказатели.ПоказательБюджета.флКоличественныйУчет и ВидПакетаБюджетныхОпераций_флВыводитьКоличество Тогда
                    тпБюджетныеОперации.Колонки.Добавить("Данные_" + стчПоказатели.ПоказательБюджета.Код + "_Количество",ОписаниеТиповЧКоличество,"Количество");
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    спДанные = Новый СписокЗначений;
    
    Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ПоказателиПоКолонкам Тогда
        Для Каждого стчПоказатели из тчПоказатели Цикл
            Если стчПоказатели.ПоказательБюджета.флСуммовойУчет Тогда
                Если ВидПакетаБюджетныхОпераций_флВыводитьЦену и стчПоказатели.ПоказательБюджета.флКоличественныйУчет Тогда
                    тпБюджетныеОперации.Колонки.Добавить("ДанныеСтрока_" + стчПоказатели.ПоказательБюджета.Код + "_Цена");
                    спДанные.Добавить("Цена_"+стчПоказатели.ПоказательБюджета.Код);
                КонецЕсли;
                Если ВидПакетаБюджетныхОпераций_флВыводитьСумму Тогда
                    тпБюджетныеОперации.Колонки.Добавить("ДанныеСтрока_" + стчПоказатели.ПоказательБюджета.Код + "_Сумма");
                    спДанные.Добавить("Сумма_"+стчПоказатели.ПоказательБюджета.Код);
                КонецЕсли;
            КонецЕсли;
            Если стчПоказатели.ПоказательБюджета.флКоличественныйУчет и ВидПакетаБюджетныхОпераций_флВыводитьКоличество Тогда
                тпБюджетныеОперации.Колонки.Добавить("ДанныеСтрока_" + стчПоказатели.ПоказательБюджета.Код + "_Количество",);
                спДанные.Добавить("Количество_"+стчПоказатели.ПоказательБюджета.Код);
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
    Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
        Для ю = 1 по ВидПакетаБюджетныхОпераций_КоличествоИнтервалов Цикл
            Для я = 0 по спДанные.Количество() - 1 Цикл
                Если Найти(спДанные[я].Значение,"Количество") > 0 Тогда
                    тпБюджетныеОперации.Колонки.Добавить("Данные_" + ?(ю<10,"0"+ю,ю)+ "_" + спДанные[я].Значение,ОписаниеТиповЧКоличество);
                Иначе
                    тпБюджетныеОперации.Колонки.Добавить("Данные_" + ?(ю<10,"0"+ю,ю)+ "_" + спДанные[я].Значение,ОписаниеТиповЧСумма);
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    КонецЕсли;
    
    Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ПроектыПоКолонкам или
         ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ЦФОПоКолонкам Тогда
        
        Для я = 0 по спДанные.Количество() - 1 Цикл
            Если Найти(спДанные[я].Значение,"Количество") > 0 Тогда
                тпБюджетныеОперации.Колонки.Добавить("Данные_ПроектыЦФО_" + спДанные[я].Значение,ОписаниеТиповЧКоличество);
            Иначе
                тпБюджетныеОперации.Колонки.Добавить("Данные_ПроектыЦФО_" + спДанные[я].Значение,ОписаниеТиповЧСумма);
            КонецЕсли;
        КонецЦикла;
        
        Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ЦФОПоКолонкам Тогда
            тЦФО = тчОсновная.Выгрузить().Скопировать();
            тЦФО.Свернуть("ЦФО","");
            Для Каждого стЦФО Из тЦФО Цикл
                КоманднаяПанель_ДобавитьКолонку(Неопределено,стЦФО.ЦФО);
            КонецЦикла;
            
            Если ВидПакетаБюджетныхОпераций_флЦФОВШапке Тогда
                КоманднаяПанель_ДобавитьКолонку(Неопределено,ЦФО);
            КонецЕсли;
        Иначе
            тПроекты = тчОсновная.Выгрузить().Скопировать();
            тПроекты.Свернуть("Проект","");
            Для Каждого стПроекты Из тПроекты Цикл
                КоманднаяПанель_ДобавитьКолонку(Неопределено,стПроекты.Проект);
            КонецЦикла;
            Если ВидПакетаБюджетныхОпераций_флПроектВШапке Тогда
                КоманднаяПанель_ДобавитьКолонку(Неопределено,Проект);
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Для Каждого стчПоказатели из тчПоказатели Цикл
        Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ПоказателиПоКолонкам Тогда
            Если стчПоказатели.ПоказательБюджета.флСуммовойУчет Тогда
                Если ВидПакетаБюджетныхОпераций_флВыводитьЦену и стчПоказатели.ПоказательБюджета.флКоличественныйУчет Тогда
                    тпБюджетныеОперации.Колонки.Добавить("ДанныеИТОГО_" + стчПоказатели.ПоказательБюджета.Код + "_Цена");
                КонецЕсли;
                Если ВидПакетаБюджетныхОпераций_флВыводитьСумму Тогда
                    тпБюджетныеОперации.Колонки.Добавить("ДанныеИТОГО_" + стчПоказатели.ПоказательБюджета.Код + "_Сумма");
                КонецЕсли;
            КонецЕсли;
            Если стчПоказатели.ПоказательБюджета.флКоличественныйУчет и ВидПакетаБюджетныхОпераций_флВыводитьКоличество Тогда
                тпБюджетныеОперации.Колонки.Добавить("ДанныеИТОГО_" + стчПоказатели.ПоказательБюджета.Код + "_Количество");
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
     мСформироватьКолонкиТабличногоПоля();
    
КонецПроцедуры

Процедура мЗаполнитьДанныеСтрокиПоУмолчанию(ТекДанные)
    
    Если ВидПакетаБюджетныхОпераций_флЦФОВШапке Тогда
        сКолонкаЦФО = "Аналитика_" + ПланыВидовХарактеристик.ИС_ВидыАналитикиБюджетирование.ИС_ЦФО.Код;
        Если ЭлементыФормы.тпБюджетныеОперации.Колонки.Найти(сКолонкаЦФО) <> Неопределено Тогда
            ТекДанные[сКолонкаЦФО] = ЦФО;
            ЭлементыФормы.тпБюджетныеОперации[сКолонкаЦФО].ТолькоПросмотр = ИСТИНА;
        КонецЕсли;
    КонецЕсли;
    
    Если ВидПакетаБюджетныхОпераций_флПроектВШапке Тогда
        сКолонкаПроекты = "Аналитика_" + ПланыВидовХарактеристик.ИС_ВидыАналитикиБюджетирование.ИС_Проекты.Код;
        Если ЭлементыФормы.тпБюджетныеОперации.Колонки.Найти(сКолонкаПроекты) <> Неопределено Тогда
            ТекДанные[сКолонкаПроекты] = Проект;
            ЭлементыФормы.тпБюджетныеОперации[сКолонкаПроекты].ТолькоПросмотр = ИСТИНА;
        КонецЕсли;
    КонецЕсли;
    
    ПоказательКопия = "";
    
    Для Каждого Колонка Из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
        Если Найти(Колонка.Имя,"Аналитика_") <> 0 Тогда
            Продолжить;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Показатель_") <> 0 Тогда
            сКодПоказателя = СтрЗаменить(Колонка.Имя,"Показатель_","");
            сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
            Показатель = спПоказатели.НайтиПоЗначению(сКодПоказателя);
            
            Если ПоказательКопия <> Показатель Тогда
                ТекДанные[Колонка.Имя] = Показатель;
                ПоказательКопия = Показатель;
            КонецЕсли;
            
            Для Каждого КолонкаДанных Из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
                Если Найти(КолонкаДанных.Имя,"ДанныеСтрока_"+ сКодПоказателя) = 0 Тогда
                    Продолжить;
                КонецЕсли;
                
                сДанные = СтрЗаменить(КолонкаДанных.Имя,"ДанныеСтрока_" + сКодПоказателя + "_" ,"");
                ТекДанные[КолонкаДанных.Имя] = сДанные;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Если КолонкаТП <> Неопределено и Найти(КолонкаТП.Имя,"Цена") = 0 Тогда
        КолонкаТП.ТекстПодвала = Формат(тпБюджетныеОперации.Итог(КолонкаТП.Имя),КолонкаТП.Формат);
    Иначе
        Для Каждого Колонка из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
            Если Найти(Колонка.Имя,"Данные_") = 0 или Колонка.Формат = "" или Найти(Колонка.Имя,"Цена") > 0 Тогда
                Продолжить;
            КонецЕсли;
            Колонка.ТекстПодвала = Формат(тпБюджетныеОперации.Итог(Колонка.Имя),Колонка.Формат);
        КонецЦикла;
    КонецЕсли;
    
    Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ПоказателиПоКолонкам Тогда
        Возврат;
    КонецЕсли;
    
    Если КолонкаТП <> Неопределено Тогда
        Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ПроектыПоКолонкам или
            ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ЦФОПоКолонкам Тогда
            сПоказатель = мПолучитьСтрокуСРазделителем(КолонкаТП.Имя,4);
            сДанные = мПолучитьСтрокуСРазделителем(КолонкаТП.Имя,3);
            сДанные = Лев(сДанные,Найти(сДанные,"_")-1);
        ИначеЕсли ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
            сПоказатель = мПолучитьСтрокуСРазделителем(КолонкаТП.Имя,3);
            сДанные = мПолучитьСтрокуСРазделителем(КолонкаТП.Имя,2);
            сДанные = Лев(сДанные,Найти(сДанные,"_")-1);
        КонецЕсли;
        
        чЧисло = 0;
        Для Каждого Колонка из тпБюджетныеОперации.Колонки Цикл
            Если Найти(Колонка.Имя,"_" + сДанные + "_" + сПоказатель) = 0 или сДанные = "Цена" Тогда
                Продолжить;
            КонецЕсли;
            
            чЧисло = чЧисло + СтрокаТП[Колонка.Имя];
        КонецЦикла;
        
        СтрокаТП["ДанныеИТОГО_" + сПоказатель + "_" + сДанные] = чЧисло;
    Иначе
        чЧисло = 0;
        Для Каждого КолонкаТП из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
            Если Лев(КолонкаТП.Имя,7) <> "Данные_" Тогда
                Продолжить;
            КонецЕсли;
            
            Если Найти(КолонкаТП.Имя,"Данные_") = 0 или КолонкаТП.Формат = "" или Найти(КолонкаТП.Имя,"Цена") > 0 Тогда
                Продолжить;
            КонецЕсли;
            
            Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ПроектыПоКолонкам или
                ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ЦФОПоКолонкам Тогда
                сПоказатель = мПолучитьСтрокуСРазделителем(КолонкаТП.Имя,4);
                сДанные = мПолучитьСтрокуСРазделителем(КолонкаТП.Имя,3);
                сДанные = Лев(сДанные,Найти(сДанные,"_")-1);
            ИначеЕсли ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
                сПоказатель = мПолучитьСтрокуСРазделителем(КолонкаТП.Имя,3);
                сДанные = мПолучитьСтрокуСРазделителем(КолонкаТП.Имя,2);
                сДанные = Лев(сДанные,Найти(сДанные,"_")-1);
            КонецЕсли;
            
            чЧисло = 0;
            Для Каждого Колонка из тпБюджетныеОперации.Колонки Цикл
                Если Лев(Колонка.Имя,7) <> "Данные_" Тогда
                    Продолжить;
                КонецЕсли;
                
                Если Найти(Колонка.Имя,"_" + сДанные + "_" + сПоказатель) = 0 или сДанные = "Цена" Тогда
                    Продолжить;
                КонецЕсли;
                
                чЧисло = чЧисло + СтрокаТП[Колонка.Имя];
            КонецЦикла;
            СтрокаТП["ДанныеИТОГО_" + сПоказатель + "_" + сДанные] = чЧисло;
        КонецЦикла;
    КонецЕсли;
    
КонецПроцедуры
3 maptbln
 
06.03.18
15:36
Процедура мСформироватьКолонкиТабличногоПоля()
    
    ЭлементыФормы.тпБюджетныеОперации.СоздатьКолонки();
    
    флагПоказатель = ЛОЖЬ;
    флагИтого = ЛОЖЬ;
    флагДанныеСтрока = ЛОЖЬ;
    чПериодКопия = "";
    ДатаПериода = ДатаНачала;
    Красный = 255;
    Зеленый = 255;
    Синий = 255;
    сКодПоказателяКопия = "";
    струПоказателейЦветов = Новый Структура;
    сВидКолонокСправочника = "?#?#?#?#?#?#?#";
    сКодЭлементаСправочникаКопия = "?#?#?#?#?#?#?#";
    
    Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ЦФОПоКолонкам Тогда
        сВидКолонокСправочника = "ИС_ЦФО";
        сСправочник = "ЦФО";
    ИначеЕсли ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ПроектыПоКолонкам Тогда
        сВидКолонокСправочника = "ИС_Проекты";
        сСправочник = "Проекты";
    КонецЕсли;
    
    сТекстПодвала = "";
    
    Для Каждого Колонка Из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
        Если Найти(Колонка.Имя,"НомерСтроки") <> 0 Тогда
            Колонка.ТолькоПросмотр = ИСТИНА;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Аналитика_") <> 0 Тогда
            Колонка.Ширина = 26;
            Если Колонка.ЭлементУправления.ТипЗначения = ОписаниеТиповСтрока и Колонка.Имя = "Аналитика_Интервал" Тогда
                Колонка.ЭлементУправления.КнопкаВыбора = истина;
                Колонка.ЭлементУправления.РедактированиеТекста = ЛОЖЬ;
                Колонка.ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("НачалоВыбора_Период"));
            ИначеЕсли Колонка.Имя = "Аналитика_ИнтервалДата" Тогда
                Колонка.Видимость = ЛОЖЬ;
            КонецЕсли;
            Продолжить;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Показатель_") <> 0 Тогда
            Колонка.Ширина = 26;
            Колонка.ПропускатьПриВводе = ИСТИНА;
            Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ПоказателиПоКолонкам Тогда
                Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
                    сКодЭлементаСправочникаКопия = "?#?#?#?#?#?#?#";
                КонецЕсли;
                
                сКодПоказателя = СтрЗаменить(Колонка.Имя,"Показатель_","");
                сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
                
                ПоказательЭлемент = Справочники.ИС_ПоказателиБюджета.НайтиПоКоду(сКодПоказателя);
                
                Если НЕ флагПоказатель Тогда
                    Колонка.ТекстШапки = "Показатель бюджета";
                    флагПоказатель = Истина;
                Иначе
                    Колонка.ТекстШапки = "";
                    Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке;
                КонецЕсли;
                
                Если сТекстПодвала = ("ИТОГО: " + ПоказательЭлемент) Тогда
                    Колонка.ТекстПодвала = "";
                Иначе
                    сТекстПодвала = "ИТОГО: " + ПоказательЭлемент;
                    Колонка.ТекстПодвала = сТекстПодвала;
                КонецЕсли;
                
                флагДоступноИзменениеДанныхПоказателя = глБулево(глЭтоПустоеЗначение(ПоказательЭлемент.ИсточникФактДанныхЦена));
                
                Если сКодПоказателяКопия <> сКодПоказателя Тогда
                    Цвет = мОпределитьЦвет(Красный,Зеленый,Синий);
                    сКодПоказателяКопия = сКодПоказателя;
                КонецЕсли;
                
                чСтрок = 0;
                флаг = ЛОЖЬ;
                Для Каждого КолонкаСДанными Из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
                    Если Найти(КолонкаСДанными.Имя,"Данные_ПроектыЦФО_") > 0 Тогда
                        Если НЕ флаг Тогда
                            флаг = Истина;
                            КолонкаСДанными.Положение = ПоложениеКолонки.НаСледующейСтроке;
                        Иначе
                            КолонкаСДанными.Положение = ПоложениеКолонки.ВТойЖеКолонке;
                        КонецЕсли;
                        
                        КолонкаСДанными.ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("мПересчет"));
                        КолонкаСДанными.Видимость = ЛОЖЬ;
                        чСтрок = чСтрок + 1;
                    ИначеЕсли ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам и
                              Найти(КолонкаСДанными.Имя,"Данные_") <> 0 Тогда
                        мДополнительноОбработатьКолонку(КолонкаСДанными,КолонкаСДанными.Имя,ПоказательЭлемент,сКодПоказателя,флагДоступноИзменениеДанныхПоказателя);
                    ИначеЕсли Найти(КолонкаСДанными.Имя,"ДанныеСтрока_" + сКодПоказателя) = 0 и
                              ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
                        чСтрок = чСтрок + 1;
                        Продолжить;
                    КонецЕсли;
                    
                    Если Найти(КолонкаСДанными.Имя,"Данные_") = 0 Тогда
                        Продолжить;
                    КонецЕсли;
                    
                    Если Найти(КолонкаСДанными.Имя,"Данные_" + сСправочник + "_") > 0 Тогда
                        сКодЭлементаСправочника = мПолучитьСтрокуСРазделителем(КолонкаСДанными.Имя,2);
                        сКодЭлементаСправочника = Лев(сКодЭлементаСправочника,Найти(сКодЭлементаСправочника,"_")-1);
                        Если сКодЭлементаСправочника <> сКодЭлементаСправочникаКопия Тогда
                            КолонкаСДанными.Положение = ПоложениеКолонки.НоваяКолонка;
                            КолонкаСДанными.ТекстШапки = Справочники[сВидКолонокСправочника].НайтиПоКоду(сКодЭлементаСправочника);
                            сКодЭлементаСправочникаКопия = сКодЭлементаСправочника;
                        Иначе
                            КолонкаСДанными.ТекстШапки = "";
                            КолонкаСДанными.Положение = ПоложениеКолонки.НаСледующейСтроке;
                        КонецЕсли;
                        
                        мДополнительноОбработатьКолонку(КолонкаСДанными,КолонкаСДанными.Имя,ПоказательЭлемент,сКодПоказателя,флагДоступноИзменениеДанныхПоказателя);
                    КонецЕсли;
                КонецЦикла;
                
                Колонка.ТолькоПросмотр = ИСТИНА;
                
                Если чСтрок > 1 и тчПоказатели.Количество() > 1 Тогда
                    Колонка.ЦветФонаПоля = Цвет;
                    струПоказателейЦветов.Вставить(сКодПоказателя,Цвет);
                КонецЕсли;
            Иначе
                сКодПоказателя = СтрЗаменить(Колонка.Имя,"Показатель_","");
                сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
                
                ПоказательЭлемент = Справочники.ИС_ПоказателиБюджета.НайтиПоКоду(сКодПоказателя);
                флагДоступноИзменениеДанныхПоказателя = глБулево(глЭтоПустоеЗначение(ПоказательЭлемент.ИсточникФактДанныхЦена));
                
                Если сТекстПодвала = ("ИТОГО: " + ПоказательЭлемент) Тогда
                    Колонка.ТекстПодвала = "";
                Иначе
                    сТекстПодвала = "ИТОГО: " + ПоказательЭлемент;
                    Колонка.ТекстПодвала = сТекстПодвала;
                КонецЕсли;
                
                Если сКодПоказателяКопия <> сКодПоказателя Тогда
                    Цвет = мОпределитьЦвет(Красный,Зеленый,Синий);
                    сКодПоказателяКопия = сКодПоказателя;
                    Показатель = спПоказатели.НайтиПоЗначению(сКодПоказателя);
                    Колонка.Положение = ПоложениеКолонки.НоваяКолонка;
                КонецЕсли;
                
                Колонка.ТолькоПросмотр = ИСТИНА;
                Колонка.ТекстШапки = Показатель;
                
                чСтрок = 0;
                флаг = ЛОЖЬ;
                Для Каждого КолонкаСДанными Из ЭлементыФормы.тпБюджетныеОперации.Колонки Цикл
                    Если Найти(КолонкаСДанными.Имя,"Данные_" + сКодПоказателя) = 0 Тогда
                        Продолжить;
                    КонецЕсли;
                    
                    Если НЕ флаг Тогда
                        флаг = Истина;
                        КолонкаСДанными.Положение = ПоложениеКолонки.НаСледующейСтроке;
                    Иначе
                        КолонкаСДанными.Положение = ПоложениеКолонки.ВТойЖеКолонке;
                    КонецЕсли;
                    
                    мДополнительноОбработатьКолонку(КолонкаСДанными,КолонкаСДанными.Имя,ПоказательЭлемент,сКодПоказателя,флагДоступноИзменениеДанныхПоказателя);
                КонецЦикла;
            КонецЕсли;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"ДанныеСтрока_") <> 0 Тогда
            Колонка.Ширина = 12;
            Колонка.ПропускатьПриВводе = ИСТИНА;
            Если НЕ флагДанныеСтрока Тогда
                Колонка.ТекстШапки = "Данные";
                флагДанныеСтрока = Истина;
            Иначе
                Колонка.ТекстШапки = "";
                Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке
            КонецЕсли;
            
            сКодПоказателя = СтрЗаменить(Колонка.Имя,"ДанныеСтрока_","");
            сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
            
            Колонка.ТолькоПросмотр = ИСТИНА;
            
            Колонка.ТекстПодвала = мПолучитьСтрокуСРазделителем(Колонка.Имя,3);
            
            Попытка
                Если струПоказателейЦветов.Свойство(сКодПоказателя,Цвет) Тогда
                    Колонка.ЦветФонаПоля = Цвет;
                КонецЕсли;
            Исключение
            КонецПопытки;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Данные_") <> 0 Тогда
            Если ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ИнтервалыПоКолонкам Тогда
                чПериод = Лев(СтрЗаменить(Колонка.Имя,"Данные_",""),2);
                Если чПериод <> чПериодКопия Тогда
                    Колонка.ТекстШапки = глПредставлениеИнтервала(ДатаПериода,ИнтервалПланирования);
                    флагДанные = ИСТИНА;
                    чПериодКопия = чПериод;
                    ДатаПериода = глДобавитьИнтервалы(ДатаПериода, 1, ИнтервалПланирования);
                Иначе
                    Колонка.ТекстШапки = "";
                    Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке;
                КонецЕсли;
                
                сКодПоказателя = СтрЗаменить(Колонка.Имя,"Данные_","");
                сКодПоказателя = Прав(сКодПоказателя,СтрДлина(сКодПоказателя) - Найти(сКодПоказателя,"_"));
                сКодПоказателя = Прав(сКодПоказателя,СтрДлина(сКодПоказателя) - Найти(сКодПоказателя,"_"));
                
                ПоказательЭлемент = Справочники.ИС_ПоказателиБюджета.НайтиПоКоду(сКодПоказателя);
                флагДоступноИзменениеДанныхПоказателя = глБулево(глЭтоПустоеЗначение(ПоказательЭлемент.ИсточникФактДанныхЦена));
                
                мДополнительноОбработатьКолонку(КолонкаСДанными,КолонкаСДанными.Имя,ПоказательЭлемент,сКодПоказателя,флагДоступноИзменениеДанныхПоказателя);
                Попытка
                    Если струПоказателейЦветов.Свойство(сКодПоказателя,Цвет) Тогда
                        Колонка.ЦветФонаПоля = Цвет;
                    КонецЕсли;
                Исключение
                КонецПопытки;
            ИначеЕсли ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ПроектыПоКолонкам или
                      ВидВизуализацииБюджета = Перечисления.ИС_ВидыВизуализацииБюджета.ЦФОПоКолонкам Тогда
                      
                Если Найти(Колонка.Имя,"Данные_ПроектыЦФО_") <> 0 Тогда
                    Продолжить;
                КонецЕсли;
                  
                сКодПоказателя = мПолучитьСтрокуСРазделителем(Колонка.Имя,4);
                
                Попытка
                    Если струПоказателейЦветов.Свойство(сКодПоказателя,Цвет) Тогда
                        Колонка.ЦветФонаПоля = Цвет;
                    КонецЕсли;
                Исключение
                КонецПопытки;
                
            КонецЕсли;
            Колонка.Ширина = 16;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"Данные_") <> 0 Тогда
            Если Найти(Колонка.Имя,"Количество") <> 0 Тогда
                Колонка.Формат = "ЧРГ=' '; ЧГ=3,0";
                Колонка.ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Центр;
                Колонка.ГоризонтальноеПоложениеВПодвале = ГоризонтальноеПоложение.Центр;
            КонецЕсли;
            
            Если Найти(Колонка.Имя,"Сумма") <> 0 или Найти(Колонка.Имя,"Цена") <> 0 Тогда
                Колонка.Формат = "ЧДЦ=2; ЧРГ=' '";
                Колонка.ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Право;
                Колонка.ГоризонтальноеПоложениеВПодвале = ГоризонтальноеПоложение.Право;
            КонецЕсли;
        КонецЕсли;
        
        Если Найти(Колонка.Имя,"ДанныеИТОГО_") <> 0 Тогда
            Если ВидВизуализацииБюджета <> Перечисления.ИС_ВидыВизуализацииБюджета.ПоказателиПоКолонкам Тогда
                Если Не флагИтого Тогда
                    Колонка.ТекстШапки = "ИТОГО";
                    флагИтого = ИСТИНА;
                Иначе
                    Колонка.ТекстШапки = "";
                    Колонка.Положение = ПоложениеКолонки.НаСледующейСтроке;
                КонецЕсли;
                
                сКодПоказателя = мПолучитьСтрокуСРазделителем(Колонка.Имя,1);
                сКодПоказателя = Лев(сКодПоказателя,Найти(сКодПоказателя,"_")-1);
                Попытка
                    Если струПоказателейЦветов.Свойство(сКодПоказателя,Цвет) Тогда
                        Колонка.ЦветФонаПоля = Цвет;
                    КонецЕсли;
                Исключение
                КонецПопытки;
                
                Колонка.ТолькоПросмотр = Истина;
                
                Если Найти(Колонка.Имя,"Количество") <> 0 Тогда
                    Колонка.Формат = "ЧРГ=' '; ЧГ=3,0";
                    Колонка.ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Центр;
                КонецЕсли;
                
                Если Найти(Колонка.Имя,"Сумма") <> 0 или Найти(Колонка.Имя,"Цена") <> 0 Тогда
                    Колонка.Формат = "ЧДЦ=2; ЧРГ=' '";
                    Колонка.ГоризонтальноеПоложениеВКолонке = ГоризонтальноеПоложение.Право;
                КонецЕсли;
            КонецЕсли;
            Колонка.Ширина = 16;
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры
4 Ёпрст
 
06.03.18
15:49
(0) в свойствах табличного поля укажи у этой колонки флаг - отображать суммы в подвале. усё
5 Ёпрст
 
06.03.18
15:52
Тебе нужно это свойство
Расширение колонки табличного поля табличной части (Tabular section table box column extension)
ОтображатьИтогиВПодвале (ShowTotalsInFooter)
Использование:

Чтение и запись.
Описание:

Тип: Булево.
Содержит признак показа итогов по колонке в подвале табличного поля.
Истина - отображается.

Доступность:

Толстый клиент.
Примечание:

Данное свойство доступно для колонок, имеющих числовой тип.
6 Ёпрст
 
06.03.18
15:53
посмотри в коде, возможно, его для остальных колонок ставят программно, если нет, воткни руками в свойствах табличного поля у нужной колонки
9 Ёпрст
 
06.03.18
16:47
(7) и ?
Читай (6)