Инструменты пользователя

Инструменты сайта


dev1c:param_name_tab

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
dev1c:param_name_tab [2025/01/31 12:14] admin16dev1c:param_name_tab [2025/01/31 12:18] (текущий) admin16
Строка 31: Строка 31:
    КонецЦикла;//конец обхода по строкам    КонецЦикла;//конец обхода по строкам
    Возврат МассивИменПараметров;    Возврат МассивИменПараметров;
 +КонецФункции
 +</code>
 +
 +Или через сериализацию
 +
 +<code>
 +Функция ПолучитьПараметрыТабличногоДокумента(ТабличныйДокумент)
 +    ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(ТабличныйДокумент);
 +    
 +    ИменаПараметров = Новый Соответствие;
 +    Для Каждого ДанныеСтрок Из ОбъектXDTO.rowsItem Цикл
 +        Для Каждого Колонка Из ДанныеСтрок.row.c Цикл
 +            ИмяПараметра = Колонка.c.parameter; 
 +            Если ИмяПараметра <> Неопределено Тогда
 +                ИменаПараметров.Вставить(ИмяПараметра);
 +            КонецЕсли;
 +            Если Колонка.c.f > 0 Тогда 
 +                Формат = ОбъектXDTO.format[Колонка.c.f - 1];
 +                Если Формат.fillType = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
 +                    Для Каждого Содержание Из Колонка.c.tl.item Цикл
 +                        ПараметрыШаблона = ПараметрыШаблона(Содержание.content);
 +                        Для Каждого ИмяПараметра Из ПараметрыШаблона Цикл
 +                            ИменаПараметров.Вставить(ИмяПараметра);
 +                        КонецЦикла;
 +                    КонецЦикла;
 +                КонецЕсли;
 +            КонецЕсли;
 +        КонецЦикла;
 +    КонецЦикла;
 +    
 +    Результат = Новый Соответствие;
 +    Для Каждого КлючИЗначение Из ИменаПараметров Цикл
 +        Результат[КлючИЗначение.Ключ] = ТабличныйДокумент.Параметры[КлючИЗначение.Ключ];
 +    КонецЦикла;
 +    
 +    Возврат Результат;
 +КонецФункции
 +
 +Функция ПараметрыШаблона(Знач Строка)
 +    Результат = Новый Массив;
 +    Пока Истина Цикл
 +        Начало = Найти(Строка, "[");
 +        Если Начало = 0 Тогда
 +            Прервать;
 +        КонецЕсли;
 +        Конец = Найти(Строка, "]");
 +        Если Конец = 0 Тогда
 +            Прервать;
 +        КонецЕсли;
 +        
 +        ИмяПараметра = Сред(Строка, Начало + 1, Конец - Начало - 1);
 +        Если Не ПустаяСтрока(ИмяПараметра) Тогда
 +            Результат.Добавить(ИмяПараметра);
 +        КонецЕсли;
 +        Строка = Сред(Строка, Конец + 1);
 +    КонецЦикла;
 +    Возврат Результат;
 КонецФункции КонецФункции
 </code> </code>
dev1c/param_name_tab.1738325692.txt.gz · Последнее изменение: 2025/01/31 12:14 — admin16

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki