1с проверить наличие реквизита у объекта
Метаданные.Документ("Реализация").РеквизитТабличнойЧасти("Вася").Выбран()
+ поглядеть на реквизит шапки + общий реквизит.
См. во всех типовых глЕстьРеквизитШапки + глЕстьРеквизитТЧ
(4) Чего в ней нет? Этих функций? Это нестрашно :-)
(5) а в россейской конфе возвращают 0,1..что более универсально - можно втыкать процы в свой код.
(6) Не факт, что мои из типовой взяты. Они из рабочей.
Сейчас проверю.
Добавлено: в комплексной для Украины также
(5) В функции глЕстьРеквизитШапки не учитываются общие реквизиты. (8) Ну, дык, они-же "общие" для всех документов конфигурации, значит есть у всех документов конфигурации! :-) (9) В том то и дело, реквизит есть у всех документов, но функция считает, что его нет ни у одного.(10) А зачем наличие общего реквизита в документе нужно проверять?
Разве что для универсальных отчетов/обработок, не привязанных к определенной конфигурации.
(11) Не знаю, но в типовых конфигурациях наличие общего реквизита проверяется в функции глЕстьРеквизитШапки().
З.Ы. Кстати, глобальные переменные Да и Нет в российских конфигурациях давно не используются.
(12) З.Ы. Это я уже прочитал в (6) :-)
Для российских собратьев по разуму привожу кусок кода из глобальника типовой российской ТиС редакции 9.2
(12)
//////////////////////////////////////////////////////////// ///////////////
//
Перем глТаблицаСчетов Экспорт;
Перем глОбщиеУстановки Экспорт;
Перем глЗначениеОтбора Экспорт;
Перем глПоОплате Экспорт;
Перем глПоОтгрузке Экспорт;
Перем Да Экспорт;
Перем Нет Экспорт;
Типовая бухия. Декабрь 2008.
А вот глЕстьРеквизитШапки() отсутствует.
(14) Точно. А в ТиС и комплексной - наоборот.В ПУбе есть и то и другое. (15) Похоже, в 1С группы с "оперативной" компоненты и "бухгалтерской" слабо взаимодействуют :)) Странно, как помню, у меня за восемь клюшечных лет потребностей в этих функциях не было. А может и были, но редко, редко.
(17) Оно надо всего в двух-трех случаях:
- Замена значений
- Автоматизация конвертации/обмена
- Восможно, в самописной конфе
- Для ОЧЧень универсального отчета/обработки
я пользовался по 1 и 3 вариантам.
а так?МетаданныеДокумента = НашДокументСсылка.Метаданные();
Если ОбщегоНазначения.ЕстьРеквизитДокумента("Подразделение", МетаданныеДокумента) Тогда
. (20) Не проканает. Здесь раздел Программирования на 1С: Предприятие 7.7
Функция ПроверитьСтандартныеРеквизитыНаСервере(ТипОбъекта, Имя, ИмяРеквизита)
ЕстьРеквизит = Ложь;
СтандартныеРеквизиты = Метаданные[ТипОбъекта][Имя].СтандартныеРеквизиты;
Для каждого ЭлСтандартныеРеквизиты Из СтандартныеРеквизиты Цикл
Если ЭлСтандартныеРеквизиты.Имя = ИмяРеквизита Тогда
ЕстьРеквизит = Истина;
КонецЕсли;
КонецЦикла;
Возврат ЕстьРеквизит;
Функция ВернутьИмяНаСервере(Имя) Экспорт
ТипОбъекта = "Справочники";
ИмяСтандартныеРеквизиты = "Наименование";
Если Не ПроверитьСтандартныеРеквизитыНаСервере(ТипОбъекта, Имя, ИмяСтандартныеРеквизиты) Тогда
ИмяСтандартныеРеквизиты = "Код";
КонецЕсли;
Возврат ИмяСтандартныеРеквизиты;
Читайте также: