Параметры макета Заполнить() #499520


#0 by dmino
ПараметрыМакетаТабличногоДокумента Заполнить(<Объект>) Заполняет параметры значениями свойств переданного объекта. Заполняются только те параметры, имена которых совпадают с именами свойств объекта. Не могу сообразить как передать в качестве объекта например список, таблицу значений... возможно ведь?
#1 by Волшебник
нет
#2 by dmino
А создать динамически объект напихать в него данных и удалить?
#3 by shuhard
создай ячейке эти потуги по барабану
#4 by dmino
Подскажите путь по которому двигаться. Есть ряд макетов, (от разных документов) в них есть одинаковые поля, которые выбираются из регистров, справочников, перечислений, преобразуются с помощью функций (дата прописью например)... Нужен универсальный механизм заполнения макетов. Что то типа: берем все имеющиеся параметры из макета и заполняем их нужным, что не нашли пропустим и заполним отдельно. Метода заполнить не подходит, тк создавать объект конфигурации и писать в него все во первых криво, во вторых может и не нужно получать какие то данные, а он их все равно будет получать - следствие лишнее время. Были мысли получить все параметры из макета (СписокПараметровИзМакета), далее перебираем всю кучу общих параметров, проверяем есть ли в списке СписокПараметровИзМакета если есть, получаем данные и заполняем... Как можно более красиво и грамотно реализовать?
#5 by dmino
можно ли организовать что то типа Для каждого Параметр из СписокПараметровИзМакета Цикл     По имени параметр получить можно, а что насчет ВыполнитьФункцию? Создавать функцию в которой будет куча условий, долго и не красиво... Можно ли в коде написать типа:       Получить+"Параметр.ИмяПараметра" и чтоб 1с понимало это как вызвать функцию   ПолучитьДату
#6 by FIXXXL
создай Структуру, туда пиши свои параметры, типа ПараметрыПечати.Вставить("УчитыватьНДС", Шапка.УчитыватьНДС);
#7 by FIXXXL
ну и далее ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); если Имя из структуры совпадает с параметром на макете - прокатит
#8 by dmino
Прокатило *YAHOO*, осталось решить вопрос с получением только нужных данных...
#9 by FIXXXL
загоняй в структуру все, "Заполнить" само разберется ну это если на быстродействие получение не сильно влияет
#10 by dmino
Это понятно, просто хочется чтоб еще быстро обрабатывало и лишний раз не выполняло ненужное действие... Появилась идея записать все функции получения данных например в справочник, у каждого элемента есть текст в котором собственно и содержится код функции... Функцией получаем все параметры и запускаем цикл Для каждого Параметр из СписокПараметровИзМакета Цикл Криво? :))) PS FIXXXL ОГРОМНОЕ спасибо )
#11 by Леха Дум
а попробуйте сделать следующее:
#12 by Леха Дум
создайте структуру, например мояСтруктура = Новый Структура("а,б,в", 1, 2, 3); создайте макет с параметрами а, б, в получите область с этими параметрами из макета вызовите область.Параметры.Заполнить(мояСтруктура, "а"); проведите проверку правильности кода запустите на исполнение, результат вас поразит эффектом :)
#13 by dmino
Для заполнения структуры параметрами 1,2,3 будут запущены функции ПолучитьПамраметр1, ПолучитьПамраметр2... Которые занимают время...
#14 by Леха Дум
Не в заполнении структуры дело. Данный эффект точно не проявляется в последней версии 8.2
#15 by Леха Дум
ошибся, нужно вместо "Область.Параметры.Заполнить(Структура, "а");" написать "Область.Параметры.Заполнить(Структура,, "а");" это чудо работает даже в последней 8.2...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С