Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Вывод нумерации колонок и строк в СКД          
topitop Подменю пользователя
сообщение 05.02.14, 15:00
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 29
Из: Днепр
Спасибо сказали: 5 раз
Рейтинг: 0

Недавно столкнулся с такой задачей:
Заказчик потребовал создать отчет но что бы в нем были пронумерованы все колонки и строки этого отчета.
Как я понял им нужно это для того что бы отчет можно было сложить в печатном виде по этим номерам (отчет выходит довольно большая простыня).
Поскольку в СКД стандартных методов было не обнаружено мной задача была решена таким образом.
ТабДок = ЭлементыФормы.Результат;

КоличествоСтрокШапки = ТабДок.ФиксацияСверху+1;
КоличествоКолонок = ТабДок.ШиринаТаблицы;
ИсходнаяОбласть = ТабДок.Область(КоличествоСтрокШапки,,КоличествоСтрокШапки);
ОбластьПриемник = ТабДок.Область(КоличествоСтрокШапки+1,,КоличествоСтрокШапки+1);

ТабДок.ВставитьОбласть(ИсходнаяОбласть,ОбластьПриемник,ТипСмещенияТабличногоДокумента.ПоГоризонтали);

Для Ном = 1 По КоличествоКолонок Цикл
ТекОбласть = ТабДок.Область(КоличествоСтрокШапки,Ном);
ТекОбласть.Разъединить();
ТекОбласть.Текст = ""+Ном;
ТекОбласть.ЦветФона = ЦветаСтиля.ЦветФонаШапкиОтчета;
Шрифт = Новый Шрифт("Arial",10,Ложь,Ложь,Ложь,Ложь);
ТекОбласть.Шрифт = Шрифт;
ТекОбласть.ЦветТекста = Новый Цвет;
ТекОбласть.ЦветРамки = ЦветаСтиля.ЦветЛинииОтчета;
Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
ТекОбласть.Обвести(Линия, Линия, Линия, Линия);
ТекОбласть.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
ТекОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
КонецЦикла;

ТабДок.ФиксацияСверху = ТабДок.ФиксацияСверху+1;



РазмерШапки = ТабДок.ФиксацияСверху;
ОблатьИсточник = ТабДок.Область("C1");
ОблатьПриемник = ТабДок.Область("C2");
ТабДок.ВставитьОбласть(ОблатьИсточник,ОблатьПриемник,ТипСмещенияТабличногоДокумента.ПоГоризонтали);
ТабДок.ФиксацияСлева = ТабДок.ФиксацияСлева +1;

            НомерСтроки = 0;
            Пока Истина Цикл
            НомерСтроки = НомерСтроки + 1;
            ИмяСтроки     = ТабДок.Область("R"+НомерСтроки+"C1").Текст;
            ОблатьНомераСтроки = ТабДок.Область("R"+НомерСтроки+"C1");                
            ОблатьНомераСтроки.Текст = "";
            ОблатьНомераСтроки.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
            ОблатьНомераСтроки.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
            ОблатьНомераСтроки.ШиринаКолонки = 5;
            
            Если НомерСтроки> РазмерШапки Тогда
                
                Если ПустаяСтрока(ИмяСтроки) Тогда
                    Прервать;
                КонецЕсли;

                    Номер = НомерСтроки - РазмерШапки;
                    ОблатьНомераСтроки.Текст =""+ Строка(Номер);
                    ОблатьНомераСтроки.ЦветФона = ЦветаСтиля.ЦветФонаШапкиОтчета;
                    Шрифт = Новый Шрифт("Arial",10,Ложь,Ложь,Ложь,Ложь);
                    ОблатьНомераСтроки.Шрифт = Шрифт;
                    ОблатьНомераСтроки.ЦветТекста = Новый Цвет;
                    ОблатьНомераСтроки.ЦветРамки = ЦветаСтиля.ЦветЛинииОтчета;
                    Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
                    ОблатьНомераСтроки.Обвести(Линия, Линия, Линия, Линия);
                КонецЕсли;

        КонецЦикла;
        
        
        
ОблатьИсточник = ТабДок.Область("C1");    
КолКолонок = ТабДок.ШиринаТаблицы +1;
ОблатьПриемник = ТабДок.Область("C"+КолКолонок);         
ТабДок.ВставитьОбласть(ОблатьИсточник,ОблатьПриемник,ТипСмещенияТабличногоДокумента.ПоГоризонтали);    

НомерСтроки= НомерСтроки;
ТабДок.ВставитьОбласть(ИсходнаяОбласть,ТабДок.Область("R"+НомерСтроки), ТипСмещенияТабличногоДокумента.ПоГоризонтали);


Вот что вышло smile.gif


Сообщение отредактировал logist - 05.02.14, 15:20

Спасибо сказали: Vofka, Егор Динин,

Petre Подменю пользователя
сообщение 05.02.14, 15:51
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Еще бы объединить заголовок первой колонки таблицы и покрасить белые ячейки шапки таблицы (если это не специально так задумано, конечно) и можно доставать с полки пирожок.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

topitop Подменю пользователя
сообщение 05.02.14, 16:06
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 29
Из: Днепр
Спасибо сказали: 5 раз
Рейтинг: 0

Цитата(Petre @ 05.02.14, 15:51) *
Еще бы объединить заголовок первой колонки таблицы и покрасить белые ячейки шапки таблицы (если это не специально так задумано, конечно) и можно доставать с полки пирожок.

Допишите в мой код(извините но мне лень) smile.gif От меня заказчик этого не требует ...
Общий смысл этого даяния считаю более чем раскрытым, кто хочет может модернизировать под себя как угодно.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 14:43
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!