1с получить имя справочника

Скачать Зеркало

1с получить имя справочника

Метаданные 1С – это список справочников, документов, их реквизитов и прочего, составляющего конфигурацию. Список метаданных 1С правится программистов в конфигураторе в окне конфигурации.

Из программы на языке 1С доступен список метаданных 1С и их свойства.

Это удобно, когда требуется получить список документов в конфигурации или отработать все реквизиты документа.

Рассмотрим, как работать с метаданными 1С конфигурации из языка 1С.

Метаданные 1С конфигурации

Глобальная переменная Метаданные дает доступ к метаданным 1С всей конфигурации (т.е. к «корню» конфигурации). Далее через точку можно обращаться к «коллекциям» — документы, справочники и т.п., чтобы выйти на конкретный справочник или документ, у которых соответственно есть «коллекции» реквизиты, табличные части и т.п. – все, как в конфигураторе, в дереве конфигурации.

Пример – создадим список всех документов конфигурации для того, чтобы пользователь мог выбрать нужный документ из списка:

спДокументовКонфигурации = Новый СписокЗначений(); //сюда будем сохранять список

//Метаданные - глобальная переменная, которая дает доступ ко всем метаданным 1С конфигурации

//Метаданные.Документы - коллекция документов конфигурации

Для каждого Документ из Метаданные.Документы Цикл

//Документ - это метаданные 1С документа (каждого, так как мы обходим их в цикле)

//.Имя - наименование документа так, как оно задано в конфигурации

//.Синоним - "человеческое" наименование документа, которое отображается пользователю

//список значений может хранить значение (имя документа) и "представление для пользователя" (как раз - синоним документа)

спДокументовКонфигурации.Добавить( Документ.Имя, Документ.Синоним );

//даем возможность пользователю выбрать из списка нужный документ

//если пользователь нажал "Отмена", то результатом выбора будет значение НЕОПРЕДЕЛЕНО, иначе результатом будет - выбранный элемент

Если элДокумент <> Неопределено Тогда

//в .Значение списка значений мы записывали имя документа "как в конфигурации"

//создадим новый документ с таким именем, напомним - к документам можно обращаться Документы.ИмяДокумента или Документы[ИмяДокумента]

//ДокументОбъект.ПолучитьФорму() - возвращает форму с указанным именем, а если имя не указано - то форму "по-умолчанию"

Пример – для общего журнала документов (отображающего все виды документов) создадим запрос, который вернет список всех документов:

Метаданные 1С объекта

Большинство объектов 1С, сохраняемых в базе данных (справочники, документы и т.д.) представлены ссылками и объектами (подробнее см. «Ссылки и объекты»).

У ссылок и объектов есть метод .Метаданные(), который позволяет выйти на метаданные 1С этого объекта.

Пример – проверка на наличие реквизитов с типом «Справочник.Организация» в документе и обнуление значения этих реквизитов:

//ДокументОбъект - документ, полученный на изменение или создание

//аналогичным образом можно работать со ссылками, например: ДокументСсылка = Документ.ИмяДокумента.ПустаяСсылка().Метаданные()

//цикл по реквизитам

Для каждого Реквизит из ДокументОбъект.Метаданные().Реквизиты Цикл

//у каждого реквизита может быть как один, так и несколько типов, подробнее см. "ОписаниеТипов"

//проверяем по каждому типу - тот ли это нужный нам?

Для каждого Тип из мТипов Цикл

Если Тип = Тип("СправочникСсылка.Организации") Тогда

//обнуляем реквизит с этим именем в документе

//для "обнуления" можно приравнивать его к Неопределено,

//по факту значение будет установлено не Неопределено, а "пустое значение" типа реквизита

//Неопределено только если у реквизита несколько типов

//цикл по табличным частям

Для каждого ТабЧасть из ДокументОбъект.Метаданные().ТабличныеЧасти Цикл

//в табличной части тоже реквизиты (колонки таб.части)

Для каждого Реквизит из ТабЧасть.Реквизиты Цикл

Для каждого Тип из мТипов Цикл

Если Тип = Тип("СправочникСсылка.Организации") Тогда

//так как это таб.часть, то мы должны пройтись по всем строкам этой тач. части

Для каждого Строка из ДокументОбъект[ТабЧасть.Имя] Цикл



Справочник тн вэд скачать
Полный справочник smd компонентов


© 2018