Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Табличная часть справочника
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
Lada
Здравствуйте!
Подскажите пожалуйста, как программно в 1с 8,1 проверить наличие в справочнике/документе табличной части?
и название табличной части

Спасибо
Zaval
Метаданные.ТабличныеЧасти - подробности в СП
Lada
Цитата(Zaval @ 17.06.10, 12:09) необходимо зарегистрироваться для просмотра ссылки
Метаданные.ТабличныеЧасти - подробности в СП


Спасибо. Буду ковырять в этом направлении
Lada
Подскажите пожалуйста
для того чтоб создать новый элемент справочника пишем:

НовыйЭлемент = Справочники.ИмяСправочника.СоздатьЭлемент();
НовыйЭлемент.Наименование = НаименованиеЭлемента;
НоваяСтрокаТабличнойЧасти=НовыйЭлемент.НазваниеТЧ.Добавить();
НоваяСтрокаТабличнойЧасти.ИмяРеквизита = ЗначениеРеквизитаТЧ;
....
НовыйЭлемент.Записать();

можно ли как-то записать элемент, если я не знаю названия справочника, его реквизитов табличной части, но знаю, что все названия хранятся в переменных
т.е. ИмяСправочника, ИмяРеквизита - это переменные
как их правильно подставить в такую конструкцию?
Zaval
Объект метаданных можно получить по полному имени, а уж где и как оно хранится - дело десятое.

А еще есть чудная вещь (спасибо Вам СПsmile.gif):
Выполнить (Execute)
Синтаксис:
Выполнить(<Строка>)
Параметры:
<Строка>
Строка, содержащая текст исполняемого кода.
Описание:
Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения.
Нпр, так должно получиться

Выполнить("НовыйЭлемент = Справочники." + ИмяСправочника +".СоздатьЭлемент();");
Lada
Цитата(Zaval @ 07.07.10, 14:16) необходимо зарегистрироваться для просмотра ссылки
Объект метаданных можно получить по полному имени, а уж где и как оно хранится - дело десятое.

А еще есть чудная вещь (спасибо Вам СПsmile.gif):
Выполнить (Execute)


Спасибо!
Работает!

а можно ли как-то обращаться к реквизитам по порядку
к примеру есть Код, Наименование, Реквизит1, Реквизит2
а обращаться к ним как 1-й, 2-й, 3-й, 4-й?
Zaval
Подход стандартный...
Если через Метаданные...Реквизиты получить коллекцию реквизитов, то

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс (нумерация с 0) объекта в дереве метаданных.
Lada
Цитата(Zaval @ 07.07.10, 15:02) необходимо зарегистрироваться для просмотра ссылки
Подход стандартный...


Спасибо!
сейчас буду всё пробовать
Lada
Не знаю, может кому пригодится

Выполнить("НовыйЭлемент = Справочники." + ИмяСправочника +".СоздатьЭлемент();");
можно заменить на
НовыйЭлемент = Справочники[ИмяСправочника].СоздатьЭлемент();
и не вызывать дополнительную обработку

и потом точно так же с реквизитами

НовыйЭлемент.Наименование = "ёжик";
Для Каждого метаспр из Метаданные.Справочники[ИмяСправочника].Реквизиты Цикл
РеквизитСпр=метаспр.Имя;
НовыйЭлемент[РеквизитСпр]=Переменная;
КонецЦикла;
НовыйЭлемент.Записать();


Ещё раз спасибо за помощь)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.