Имя: Пароль:
1C
1С v8
v8: Получение списока имён параметров Макета Табличного документа
,
0 greenif
 
23.09.12
17:19
Не всегда подходит Заполнить.
Промахался больше двух часов.
Может будет полезно:
1 greenif
 
23.09.12
17:20
<code>
Функция НайтиПараметрыВШаблоне(Шаблон)
   СписокПараметров = Новый СписокЗначений;
   
   НачалоПараметра = 0;
   КонецПараметра  = 0;
   Для Счт = 1 По СтрДлина(Шаблон) Цикл
       Если Сред(Шаблон,Счт,1) = "[" Тогда
           НачалоПараметра = Счт + 1;
       КонецЕсли;
       Если Сред(Шаблон,Счт,1) = "]" Тогда
           КонецПараметра = Счт - 1;
       КонецЕсли;
       Если (НачалоПараметра > 0) И (КонецПараметра > 0) Тогда
           СписокПараметров.Добавить(Сред(Шаблон, НачалоПараметра , КонецПараметра - НачалоПараметра + 1));
           НачалоПараметра = 0;
           КонецПараметра  = 0;
       КонецЕсли;
       
   КонецЦикла;
   
   Возврат СписокПараметров;
   
КонецФункции

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

</code>
2 Лодырь
 
23.09.12
17:25
респект и уважуха
3 el-gamberro
 
23.09.12
17:28
що це за извращение?:))
4 greenif
 
23.09.12
18:57
баг фикс ;-)


Функция НайтиПараметрыВШаблоне(Шаблон)
   СписокПараметров = Новый СписокЗначений;
   
   НачалоПараметра = 0;
   КонецПараметра  = 0;
   Для Счт = 1 По СтрДлина(Шаблон) Цикл
       Если Сред(Шаблон,Счт,1) = "[" Тогда
           НачалоПараметра = Счт + 1;
       КонецЕсли;
       Если Сред(Шаблон,Счт,1) = "]" Тогда
           КонецПараметра = Счт - 1;
       КонецЕсли;
       Если (НачалоПараметра > 0) И (КонецПараметра > 0) Тогда
           СписокПараметров.Добавить(Сред(Шаблон, НачалоПараметра , КонецПараметра - НачалоПараметра + 1));
           НачалоПараметра = 0;
           КонецПараметра  = 0;
       КонецЕсли;
       
   КонецЦикла;
   
   Возврат СписокПараметров;
   
КонецФункции

Функция ПолучитьСписокПараметровОбласти(ОбластьМакета)
   СписокПараметров = Новый СписокЗначений;
   
   
   Лево = ОбластьМакета.ТекущаяОбласть.Лево;
   Если Лево = 0 тогда
       Лево = 1;
   КонецЕсли;
           
   Верх = ОбластьМакета.ТекущаяОбласть.Верх;
   Если Верх = 0 тогда
       Верх = 1;
   КонецЕсли;
   
   Для Строчка = Верх По Верх + ОбластьМакета.ВысотаТаблицы - 1 цикл
       Для Колонка = Лево По Лево + ОбластьМакета.ШиринаТаблицы - 1 цикл
           Ячейка = ОбластьМакета.Область(Строчка,Колонка);
           Если Ячейка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
               Для Каждого Параметр ИЗ НайтиПараметрыВШаблоне(СокрЛП(Ячейка.Текст)) Цикл
                   Если СписокПараметров.НайтиПоЗначению(Параметр) = Неопределено Тогда
                       СписокПараметров.Добавить(Параметр);
                   КонецЕсли;
               КонецЦикла;
           ИначеЕсли Ячейка.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр Тогда    
               Если СписокПараметров.НайтиПоЗначению(Ячейка.Параметр) = Неопределено Тогда
                   СписокПараметров.Добавить(Ячейка.Параметр);
               КонецЕсли;
           КонецЕсли;
       КонецЦикла;    
   КонецЦикла;    
   
   Возврат СписокПараметров;
   
КонецФункции
5 DrShad
 
23.09.12
19:01
пипец это же жестяная жесть
6 Wobland
 
23.09.12
19:03
(0) чувак, ты крут! ещё немного, и ты дойдёшь до обхода коллекции Параметры. так держать!
7 nunzio
 
23.09.12
19:22
ТабличныйДокумент (SpreadsheetDocument)
Параметры (Parameters)
Использование:

Только чтение.
Описание:

Тип: ПараметрыМакетаТабличногоДокумента.
Содержит коллекцию параметров макета табличного документа.

Доступность:

Сервер, толстый клиент, внешнее соединение.
См. также:

ПараметрыМакетаТабличногоДокумента
8 Classic
 
23.09.12
19:48
(0)
Жесть конечно. Лучше перепиши на поиск именованных областей екселя.
9 greenif
 
23.09.12
23:31
Ну если кому не интересно просто пропустите.
Обход коллекции параметры, это конечно отлично и даже значения параметров ты получишь.
Вот только названия параметров с этой коллекции тебе получить не удастся.
10 zladenuw
 
23.09.12
23:43
а откуда идем и за чем ?
11 SeraFim
 
24.09.12
02:27
12 greenif
 
24.09.12
13:17
(11) По факту тоже самое, к сожалению на твой пост раньше не попадал, время бы сэкономил.