Вывод таблицы значений в таблицу.

  • proGroup
  • 2213
  • 0 Комментариев
  • 1С7.7, таблица значений

Процедур выводит таблицу значений в обычную таблицу. Можно добавить в глобальный модуль и использовать в любом месте конфигурации, нужно будет лишь добавить после названия процедуры "Экспорт".

Входным параметром является таблица значений, ячейкам таблицы у которых тип справочник или документ, автоматически назначается ссылка на этот ресурс.

Процедура ПоказатьТаблицуЗначений(ТЗ)
    Таб = СоздатьОбъект("Таблица");
    Таб.Опции(1,1,1);
    Таб.ПараметрыСтраницы(2,,,3,3,3,3,0,0,1);
    ТЗ.ВыбратьСтроки();
    //
    ШиринаКолонок = СоздатьОбъект("СписокЗначений");
    Для к = 1 по ТЗ.КоличествоКолонок() Цикл
        ШиринаКолонок.ДобавитьЗначение(0);
    КонецЦикла;
   
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
        Для к = 1 по ТЗ.КоличествоКолонок() Цикл                   
            ТекШиринаКолонки = СтрДлина(ТЗ.ПолучитьЗначение(Тз.НомерСтроки,к));
            Если ТекШиринаКолонки>ШиринаКолонок.ПолучитьЗначение(к) Тогда
                ШиринаКолонок.УстановитьЗначение(к,ТекШиринаКолонки);
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
   
    Для к = 1 по ТЗ.КоличествоКолонок() Цикл
        ИмяКолонки = "";
        ШиринаКолонки =
        ТЗ.ПолучитьПараметрыКолонки(к,,,,ИмяКолонки,ШиринаКолонки);
        Ячейка = Таб.Область("R1C"+к);
        Если (СтрДлина(ИмяКолонки)>ШиринаКолонок.ПолучитьЗначение(к)) Тогда
            ШиринаКолонок.УстановитьЗначение(к,СтрДлина(ИмяКолонки));
        КонецЕсли;   
        Ячейка.ШиринаСтолбца(ШиринаКолонок.ПолучитьЗначение(к));
         Ячейка.РамкаОбвести(,,3,3);
         Ячейка.Текст = ИмяКолонки;
         Ячейка.Полужирный(1);
    КонецЦикла;
   
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
        Для к = 1 по ТЗ.КоличествоКолонок() Цикл
            ЗначениеЯчейки = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки,к);
            Ячейка = Таб.Область("R"+(ТЗ.НомерСтроки+1)+"C"+к);
             Ячейка.РамкаОбвести(,,3,3);
             Ячейка.Текст = ЗначениеЯчейки;   
             Тип = ТипЗначения(ЗначениеЯчейки);
             Если (((Тип=11)или(Тип=12))И(ПустоеЗначение(ЗначениеЯчейки)=0)) Тогда //если справочник или документ
                 Ячейка.Расшифровка(ЗначениеЯчейки);
             КонецЕсли;   
        КонецЦикла;
    КонецЦикла;
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Таблица значений");
КонецПроцедуры

 

0 Комментарии

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Вы можете авторизоваться на сайте через: