Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Список имен параметров табличного документа

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

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


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

   Gobseck
 
7 - 07.06.12 - 05:41
(1)Я тоже недавно искал что-то вроде и не нашел. Как объясняют, в фирме 1С этот вопрос не считают актуальным.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.