В начало

Заполнение таблиц в Power Point

 

Листинг. Модуль формы

&НаКлиенте

Процедура Слайд6_ЗаполнениеТаблиц(Знач Слайд, Знач НазвТаблицы, Знач НазвУК)

                        чСтрокВТаблице27 = Слайд.shapes().item("Таблица 27").Table.Rows.Count;

           

            //Добавляем пустую строку, чтобы сохранить формат

            Слайд.shapes().item(НазвТаблицы).Table.Rows.Add(2);//Строка-шаблон          

            Слайд.shapes().item(НазвТаблицы).Table.Cell(2,1).Shape.TextFrame.TextRange.Font.Bold = 0;

            Слайд.shapes().item(НазвТаблицы).Table.Cell(2,1).Shape.TextFrame.TextRange.Font.Color.RGB = 0; 

            Слайд.shapes().item(НазвТаблицы).Table.Cell(2,2).Shape.TextFrame.TextRange.Font.Bold = 0;

            Слайд.shapes().item(НазвТаблицы).Table.Cell(2,2).Shape.TextFrame.TextRange.Font.Color.RGB = 0;

            Слайд.shapes().item(НазвТаблицы).Table.Cell(2,3).Shape.TextFrame.TextRange.Font.Bold = 0;

            Слайд.shapes().item(НазвТаблицы).Table.Cell(2,3).Shape.TextFrame.TextRange.Font.Color.RGB = 0;

 

           

            //Удаляем все строки, кроме 3-х

            Пока чСтрокВТаблице27 > 3 Цикл

                        Слайд.shapes().item(НазвТаблицы).Table.Rows(3).Delete();

                        чСтрокВТаблице27 = Слайд.shapes().item(НазвТаблицы).Table.Rows.Count;

            КонецЦикла;

           

            //УК = "АО ТИССА";

            мИзОтчета = СоздатьОтчет_ОтчетДляРуководителейОПпоОтключениям_вМассив(НачалоМесяца(ЭтотОбъект.ДатаФормирования), КонецМесяца(ЭтотОбъект.ДатаФормирования), "", НазвУК);

            ИтогПоСуммеЕИРЦ = 0;

            Для Сч = 0 по мИзОтчета.Количество() - 1 Цикл

                        Слайд.shapes().item(НазвТаблицы).Table.Rows.Add(2);

                        Слайд.shapes().item(НазвТаблицы).Table.Cell(2,1).Shape.TextFrame.TextRange.Text = Строка(мИзОтчета.Количество() - Сч);//По возрастанию номеров

                        Слайд.shapes().item(НазвТаблицы).Table.Cell(2,2).Shape.TextFrame.TextRange.Text = Строка(мИзОтчета[Сч].ПодряднаяОрганизация);

                        Слайд.shapes().item(НазвТаблицы).Table.Cell(2,3).Shape.TextFrame.TextRange.Text = Строка(мИзОтчета[Сч].СуммаЕИРЦ);

                        ИтогПоСуммеЕИРЦ = ИтогПоСуммеЕИРЦ + мИзОтчета[Сч].СуммаЕИРЦ;

                       

                        //Заливка фона ячеек

                        Если мИзОтчета[Сч].СуммаЕИРЦ >= 1 Тогда

                                   //Светло-Зеленый фон - 14348258

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,1).Shape.Fill.ForeColor.RGB = 14348258;

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,2).Shape.Fill.ForeColor.RGB = 14348258;

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,3).Shape.Fill.ForeColor.RGB = 14348258;

                                  

                        ИначеЕсли мИзОтчета[Сч].СуммаЕИРЦ < 1 И мИзОтчета[Сч].СуммаЕИРЦ >= 0.2 Тогда

                                   //Светло-Желтый фон - 13431551

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,1).Shape.Fill.ForeColor.RGB = 13431551;

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,2).Shape.Fill.ForeColor.RGB = 13431551;

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,3).Shape.Fill.ForeColor.RGB = 13431551;

                                  

                        ИначеЕсли мИзОтчета[Сч].СуммаЕИРЦ < 0.2 Тогда

                                   //Светло-Красный фон - 13421823

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,1).Shape.Fill.ForeColor.RGB = 13421823;

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,2).Shape.Fill.ForeColor.RGB = 13421823;

                                   Слайд.shapes().item(НазвТаблицы).Table.Cell(2,3).Shape.Fill.ForeColor.RGB = 13421823                              

                        КонецЕсли;

                       

            КонецЦикла;

           

            чСтрокВТаблице27 = Слайд.shapes().item(НазвТаблицы).Table.Rows.Count;

            Слайд.shapes().item(НазвТаблицы).Table.Rows(чСтрокВТаблице27 - 1).Delete();//Удалем строку-шаблон

           

            //Последняя строка таблицы

            Слайд.shapes().item(НазвТаблицы).Table.Cell(чСтрокВТаблице27 - 1,3).Shape.TextFrame.TextRange.Text = Строка(ИтогПоСуммеЕИРЦ);

 

КонецПроцедуры

 

&НаКлиенте

Процедура ЗаполнитьСлайд6(Presentation)

           

            Слайд6 = Presentation.Slides.item(6);

           

            //ИЮЛЬ 2025 г.//Шрифт 26,5 - 32

            МесяцСловами = ВРег(Формат(ЭтаФорма.ДатаФормирования, "ДФ=ММММ"));

            ГодСловами = Формат(ЭтаФорма.ДатаФормирования, "ДФ=гггг");

            Слайд6.shapes().item("TextBox 75").TextFrame.TextRange.Text = МесяцСловами + " " + ГодСловами + " г.";

           

            //==================

            //Заполнение таблиц

            //==================

            Слайд6_ЗаполнениеТаблиц(Слайд6, "Таблица 27", "АО ""УК ПОДОЛЬСК""");

            Слайд6_ЗаполнениеТаблиц(Слайд6, "Таблица 28", "БЛЕСК-СЕРВИС ООО");

            Слайд6_ЗаполнениеТаблиц(Слайд6, "Таблица 30", "ООО ""ЖС РЕУТОВ""");

            Слайд6_ЗаполнениеТаблиц(Слайд6, "Таблица 29", "УПРАВЛЯЮЩАЯ КОМПАНИЯ ЦЕНТРСТРОЙ ООО");

            Слайд6_ЗаполнениеТаблиц(Слайд6, "Таблица 31", "УК ЭНТУЗИАСТ ООО");

                       

КонецПроцедуры

 

&НаКлиенте

Процедура ЗаполнитьПрезентацию_Далее()

           

            Если НЕ ЗначениеЗаполнено(ЭтотОбъект.ИмяФайлаШаблона) ИЛИ

                         НЕ ЗначениеЗаполнено(ЭтотОбъект.ИмяФайлаПрезентации) Тогда

                        Сообщить("Проверьте, заполнены ли Файл шаблона и презентации");

                        Возврат;

            КонецЕсли;   

           

            PowerPoint = Новый COMОбъект("PowerPoint.Application");

            Presentation = PowerPoint.Presentations.Open(ЭтотОбъект.ИмяФайлаШаблона, , , True);

           

            ЗаполнитьСлайд6(Presentation);

           

            Presentation.SaveAs(ЭтотОбъект.ИмяФайлаПрезентации);

            PowerPoint.Quit();

            //ЗапуститьПриложение(ИмяФайла);

           

КонецПроцедуры