Имя: Пароль:
1C
1С v8
Список имен параметров табличного документа
0 SeraFim
 
06.06.12
09:58
Как получить имена всех параметров табличного документа?
нашел тему:
v8: Как получить имена параметров области табличного документа?
но что-то про сериализацию в новом СП нету. Выпилили такую возможность, что ли.
1 SeraFim
 
06.06.12
10:06
2 SeraFim
 
06.06.12
10:56
апнуть, что ли...
3 Deniskind
 
06.06.12
11:24
Конечно, не знаю, то ли это, что вам нужно, но имена можно, например, вот так вытащить:


Макет = Отчеты.Отчет2.ПолучитьМакет("Макет");
ОбластьМакета = Макет.Область("Область1");
Для НомерСтроки = 1 По 40 Цикл
   Для НомерКолонки = 1 По 40 Цикл
       Область = Макет.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки);
       Если Область.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр Тогда
       Сообщить(Область.Параметр);
           КонецЕсли;
   КонецЦикла;
КонецЦикла;

4 Deniskind
 
06.06.12
11:25
+(3) Область макета, конечно не надо. Ну и количество строк колонок, хорошо бы найти заранее.
5 SeraFim
 
07.06.12
02:53
(3) ух ты) Спасибо за идею!
С количеством строк/колонок проблем нет - в области все ячейки заполнены (печатная форма - шапка и строки), подсчитать не проблема
Еще с параметрами шаблона чуток разобраться, если шаблон, то выделить параметры внутри неё, но тоже, в общем-то не проблема.
Еще раз спасибо!
6 SeraFim
 
07.06.12
03:31
вот функция, если кому понадобится с учетом параметров в шаблонах
Функция ПолучитьМассивИменПараметров(ОбластьТабДокумента) Экспорт
   МассивИменПараметров = Новый Массив;
   Для НомерСтроки = 1 По ОбластьТабДокумента.ВысотаТаблицы Цикл
       Для НомерКолонки = 1 По ОбластьТабДокумента.ШиринаТаблицы Цикл
           Ячейка = ОбластьТабДокумента.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки);
           Если Ячейка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр Тогда
               //если такого параметра еще нет, то добавим его
               Если МассивИменПараметров.Найти(Ячейка.Параметр) = Неопределено тогда
                   МассивИменПараметров.Добавить(Ячейка.Параметр);
               КонецЕсли;
           ИначеЕсли Ячейка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
               //выделим все параметры в шаблоне в отдельные строки
               ТекстШаблона = Ячейка.Текст;
               ТекстШаблона = СтрЗаменить(ТекстШаблона, "[", Символы.ПС + "[");
               ТекстШаблона = СтрЗаменить(ТекстШаблона, "]", Символы.ПС);
               Для Счетчик = 1 По СтрЧислоСтрок(ТекстШаблона) Цикл
                   ТекСтрока = СтрПолучитьСтроку(ТекстШаблона, Счетчик);
                   Если Лев(ТекСтрока, 1) = "[" тогда
                       ИмяПараметра = Сред(ТекСтрока, 2);
                       //если такого параметра еще нет, то добавим его
                       Если МассивИменПараметров.Найти(ИмяПараметра) = Неопределено тогда
                           МассивИменПараметров.Добавить(ИмяПараметра);
                       КонецЕсли;
                   КонецЕсли;
               КонецЦикла;
           КонецЕсли;//конец проверки, что в ячейке - текст, параметр или шаблон
       КонецЦикла;//конец обхода по колонкам
   КонецЦикла;//конец обхода по строкам
   Возврат МассивИменПараметров;
КонецФункции
7 Gobseck
 
07.06.12
05:41
(1)Я тоже недавно искал что-то вроде и не нашел. Как объясняют, в фирме 1С этот вопрос не считают актуальным.