можно ли как-то записать элемент, если я не знаю названия справочника, его реквизитов табличной части, но знаю, что все названия хранятся в переменных т.е. ИмяСправочника, ИмяРеквизита - это переменные как их правильно подставить в такую конструкцию?
Zaval
07.07.10, 12:16
Объект метаданных можно получить по полному имени, а уж где и как оно хранится - дело десятое.
А еще есть чудная вещь (спасибо Вам СП): Выполнить (Execute) Синтаксис: Выполнить(<Строка>) Параметры: <Строка> Строка, содержащая текст исполняемого кода. Описание: Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения. Нпр, так должно получиться
Цитата(Zaval @ 07.07.10, 14:16) необходимо зарегистрироваться для просмотра ссылки
Объект метаданных можно получить по полному имени, а уж где и как оно хранится - дело десятое.
А еще есть чудная вещь (спасибо Вам СП): Выполнить (Execute)
Спасибо! Работает!
а можно ли как-то обращаться к реквизитам по порядку к примеру есть Код, Наименование, Реквизит1, Реквизит2 а обращаться к ним как 1-й, 2-й, 3-й, 4-й?
Zaval
07.07.10, 13:02
Подход стандартный... Если через Метаданные...Реквизиты получить коллекцию реквизитов, то
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции. Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс (нумерация с 0) объекта в дереве метаданных.
Lada
07.07.10, 13:07
Цитата(Zaval @ 07.07.10, 15:02) необходимо зарегистрироваться для просмотра ссылки
Подход стандартный...
Спасибо! сейчас буду всё пробовать
Lada
13.07.10, 12:20
Не знаю, может кому пригодится
Выполнить("НовыйЭлемент = Справочники." + ИмяСправочника +".СоздатьЭлемент();"); можно заменить на НовыйЭлемент = Справочники[ИмяСправочника].СоздатьЭлемент(); и не вызывать дополнительную обработку
и потом точно так же с реквизитами
НовыйЭлемент.Наименование = "ёжик"; Для Каждого метаспр из Метаданные.Справочники[ИмяСправочника].Реквизиты Цикл РеквизитСпр=метаспр.Имя; НовыйЭлемент[РеквизитСпр]=Переменная; КонецЦикла; НовыйЭлемент.Записать();
Ещё раз спасибо за помощь)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.