Имя: Пароль:
1C
 
Получить имена параметров табличного документа - есть более красивый способ?
0 RomaH
 
naïve
05.06.15
08:45
v8: Список имен параметров табличного документа (2012 год)
ничего лучше не придумали?

чем:

Функция ПолучитьМассивИменПараметров(ОбластьТабДокумента) Экспорт
    МассивИменПараметров = Новый Массив;
    Для НомерСтроки = 1 По ОбластьТабДокумента.ВысотаТаблицы Цикл
        Для НомерКолонки = 1 По ОбластьТабДокумента.ШиринаТаблицы Цикл
            Ячейка = ОбластьТабДокумента.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки);
            Если Ячейка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр Тогда
               //если такого параметра еще нет, то добавим его

                Если МассивИменПараметров.Найти(Ячейка.Параметр) = Неопределено тогда
                    МассивИменПараметров.Добавить(Ячейка.Параметр);
                КонецЕсли;
            ИначеЕсли Ячейка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
               //выделим все параметры в шаблоне в отдельные строки

                ТекстШаблона = Ячейка.Текст;
                ТекстШаблона = СтрЗаменить(ТекстШаблона, "[", Символы.ПС + "[");
                ТекстШаблона = СтрЗаменить(ТекстШаблона, "]", Символы.ПС);
                Для Счетчик = 1 По СтрЧислоСтрок(ТекстШаблона) Цикл
                    ТекСтрока = СтрПолучитьСтроку(ТекстШаблона, Счетчик);
                    Если Лев(ТекСтрока, 1) = "[" тогда
                        ИмяПараметра = Сред(ТекСтрока, 2);
                       //если такого параметра еще нет, то добавим его

                        Если МассивИменПараметров.Найти(ИмяПараметра) = Неопределено тогда
                            МассивИменПараметров.Добавить(ИмяПараметра);
                        КонецЕсли;
                    КонецЕсли;
                КонецЦикла;
            КонецЕсли//конец проверки, что в ячейке - текст, параметр или шаблон

        КонецЦикла//конец обхода по колонкам

    КонецЦикла//конец обхода по строкам

    Возврат МассивИменПараметров;
КонецФункции
1 RomaH
 
naïve
05.06.15
08:46
зачем надо - есть документы с кучей показателей
их надо печатать

добавляю реквизит в документ
добавляю область в макет

и надо еще добавить код для вывода не забыть
вот про последний пункт хочу забыть
2 SeraFim
 
05.06.15
08:53
Ух ты =)
Нуу, я ничего другого больше не придумал) Да и не думал, за эти 3 года ничего больше не переделывал)
3 FIXXXL
 
05.06.15
09:04
(1) обзывай реквизит и параметр одинаково, для каждой области ...Параметры.Заполнить(СтруктураРеквизитов)