Как получить тип объекта метаданных? |
Я |
09.06.10 — 11:37
Вопрос такой. В платформе 8.1 была возможность вывести все реквизиты документа и определить тип каждого реквизита реквизита в виде например: Справочник.Валюты. В платформе 8.2 та же процедура выводит тип такого вида: Валюты. Каким образом определить является данный реквизит справочником или документом?
1 — 09.06.10 — 11:38
(0) Ткнуть его
2 — 09.06.10 — 11:39
ЭтоДокумент=Истина;
Попытка
тмп=Объект.Метаданные().ДлинаНомера;
Исключение
ЭтоДокумент=Ложь;
КонецПопытки
3 — 09.06.10 — 11:43
(2) а что метод содержит, у метаданных убрали?
4 — 09.06.10 — 11:47
(0) При чем тут строковое представление?
Или это очередная волна массового наступления на грабли?
(2) Да вы, батенька, извращенец
5 — 09.06.10 — 11:50
Кто здесь?
Медленнный этот метод Содержит()
Надо мне определить — к какому КЛАССу метаданных относится объект — замучаешься Содержит() вызывать.
А тут — раз метаданные получил — живи и радуйся.
6 — 09.06.10 — 11:53
(5) так он же не один раз будет проверять… можно и за кэшировать…
а с попыткой потом отлаживать морока, остановку по ошибке толком не поюзаешь
7 — 09.06.10 — 11:53
Нет текст кода такой:
имеется объектметаданных — какой-то документ
реквизиты = объект.реквизиты
для каждого реквизит из реквизиты цикл
типы = реквизит.тип.типы()
для каждого типр из типы цикл
////////////////
тип этого типр такой: контрагент, валюты и т.д., а раньше был справочник. контрагент, справочник.валюты и т.д.
8 — 09.06.10 — 11:56
(7) «тип этого типр такой: контрагент, валюты и т.д., а раньше был справочник. контрагент, справочник.валюты и т.д.» — атомный феерический бред. Тип как был типом, так и остался.
(5) «Медленнный этот метод Содержит()» — зато правильный. А если кэшировать в Соответствии, то и вообще разницы не будет.
Еще есть СодержитТип(). В разы быстрее и тоже правильно.
9 — 09.06.10 — 11:56
(6) Что ты там закешируешь?
Если Метаданные.Справочники.Содержит(МетаданныеОбъекта) Тогда
Возврат «Справочник»;
ИначеЕсли Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда
…..
10 — 09.06.10 — 11:56
(9) Метаданные().ПолноеИмя() в 8.2 тоже нет?
11 — 09.06.10 — 11:57
(9) оно при первом обращение закэшируется
12 — 09.06.10 — 11:58
О_о в 8.1 еще можно так
Если Объект.Метаданные().Родитель = Метаданные.Справочники Тогда
ЭтоСправочник = Истина;
КонецЕсли;
13 — 09.06.10 — 11:59
Метаданные().ПолноеИмя() выдает такого видат строку например:
Документ.Событие.Реквизит.Важность
Класса объекта метаданных тоже здесь нет
14 — 09.06.10 — 12:00
В 8.1 документ работал отлично, после перехода на 8.2 возникла описываемая мною проблема
15 — 09.06.10 — 12:00
Мне лениво спорить.
16 — 09.06.10 — 12:00
(15) в (12) наврал
17 — 09.06.10 — 12:01
(7) Метаданные.НайтиПоТипу() в 8,2 тоже убрали?
18 — 09.06.10 — 12:02
Если я вставляю в найтипотипу слово Валюты без слова справочник, то он ничего не находит
19 — 09.06.10 — 12:03
Видимо придется использовать Содержит(). Непонятно просто зачем были внесены такие изменения в платформу.
20 — 09.06.10 — 12:04
(18) ты не слово вставляй… а тип
реквизиты = объект.реквизиты
для каждого реквизит из реквизиты цикл
типы = реквизит.тип.типы()
для каждого тип из типы цикл
МетаТипа = Метаданные.НайтиПоТипу(Тип);
21 — 09.06.10 — 12:05
+20
а уж потом
МетаТипа.ПолноеИмя()
22 — 09.06.10 — 12:05
Пробую. Ставит слово Валюты тип- ОбъектМетаданных
23 — 09.06.10 — 12:06
О получилось, спасибо!!!
24 — 09.06.10 — 12:06
реквизиты = объект.реквизиты
для каждого реквизит из реквизиты цикл
Типы = реквизит.тип.типы()
Для каждого тип из Типы цикл
Если Найти(Метаданные.НайтиПоТипу(Тип).ПолноеИмя(), «Справочник») > 0 Тогда
// это справочник;
КонецЕсли;
КонецЦикла;
25 — 09.06.10 — 12:06
После ПолноеИмя() выдал правильно
Oven2009
26 — 09.06.10 — 12:07
Спасибо еще раз
В предыдущей статье типы и значения 1С — мы начали обсуждать что такое типы значений 1С и преобразование типов 1С.
Сегодня мы поговорим подробнее про типы объектов конфигурации 1С (тип документа 1С, тип справочника 1С и др.)
Так как в программном коде мы работаем со значениями, то периодически требуется знать их тип. Тип 1С всегда указывается в метаданных у реквизитов — в справочниках, документах.
Работа с типами 1С часто используется:
- Условия в программе
Разные действия в зависимости от типа значения 1С в конструкции «Если … Тогда …» - Ограничения при работе в интерфейсе
Запрет или разрешение пользователю вводить в поле на форме значения определенных типов 1С. - Определение фактического параметра функции/процедуры
Если параметр функции/процедуры может быть любого типа 1С, то нужно его определить, чтобы правильно получить значение.
Тип 1С можно получить:
- Определить тип фактического значения 1С
- Значения-объекты имеют свойства, в которых указан разрешенный тип 1С (например типы 1С разрешенные в колонке таблицы, в поле на форме, в метаданных) или методы, которые возвращают эти типы 1С
- Из метаданных – можно получить тип 1С так, как он указан в метаданных в конфигураторе.
Типы 1С можно разделить на три вида:
- Базовые типы 1С
- Типы 1С базы данных (ссылочные, объекты)
- Типы 1С.
Определение типа 1С и сравнение типов 1С
Узнать тип значения 1С можно с помощью функции ТипЗнч(Переменная)
Чтобы понять какой тип 1С эта функция вернула – нужно указать нужный нам Тип(«ИмяТипа»)
Например, определение (сравнение) типа 1С переменной:
Если ТипЗнч(Переменная) = Тип("ИмяТипа") Тогда
Какие типы писать в качестве ИмяТипа?
Базовые типы
Базовые типы 1С — число, строка, дата, булево.
Например:
Знч = 12;
Если ТипЗнч(Знч) = Тип("Число") Тогда
ИначеЕсли Знч = Тип("Строка") Тогда
ИначеЕсли Знч = Тип("Дата") Тогда
ИначеЕсли Знч = Тип("Булево") Тогда
КонецЕсли;
Типы базы данных
1С хранит данные в базе данных, но не в виде отдельных записей, а в виде объектов.
Большинство сохраняемых объектов (в том числе: справочники, документы, перечисления, бизнес-процессы, задачи) доступны в виде Объекта (для изменения и записи) и в виде Ссылки (для чтения). Подробнее см. «Ссылки и объекты».
Например:
Знч = Справочники.Организации.ПустаяСсылка();
Если ТипЗнч(Знч) = Тип("СправочникСсылка.Организации") Тогда
ИначеЕсли Знч = Тип("СправочникОбъект.Организации") Тогда
ИначеЕсли ТипЗнч(Знч) = Тип("ДокументСсылка.ПоступлениеТоваров") Тогда
ИначеЕсли Знч = Тип("ДокументОбъект.ПоступлениеТоваров") Тогда
КонецЕсли;
Регистры могут быть представлены различными типами. Имя типа регистра составное:
РегистрТипрегистраТипдоступа.ИмяРегистра
Типы 1С регистров:
- Сведений
- Накопления
- Бухгалтерии
- Расчета.
Типов доступов к регистру несколько. Чаще всего используются:
- НаборЗаписей
- Список
- Выборка
- Запись
- КлючЗаписи.
Итого, пример:
Если ТипЗнч(Знч) = Тип("РегистрСведенийСписок.ИмяРегистра") Тогда
ИначеЕсли Знч = Тип("РегистрНакопленияНаборЗаписей.ИмяРегистра") Тогда
КонецЕсли;
Типы 1С
Язык 1С позволяет работать со множеством объектов, создаваемых динамически в программе, например – массив, список значений, таблица значений, структура…
Такие типы 1С указываются по их названию (одним словом, без пробелов). Например:
Если ТипЗнч(Знч) = Тип("Массив") Тогда
ИначеЕсли Знч = Тип("СписокЗначений") Тогда
КонецЕсли;
Определение значения ссылочного типа 1С
Работа со всеми объектами базы данных (справочники, документы…) ведется через ссылки. Например, если мы хотим в документе сделать реквизит – справочник, то его тип 1С будет «СправочникСсылка.ИмяСправочника».
Мы можем определить является ли ссылка справочником или документом с помощью метода ТипВсеСсылки()
Например:
Значение = Справочники.Организации.ПустаяСсылка();
Если Справочники.ТипВсеСсылки().Содержит( ТипЗнч(Значение) ) Тогда
//это справочник
ИначеЕсли Документы.ТипВсеСсылки().Содержит( ТипЗнч(Значение)) Тогда
//это документ
КонецЕсли;
Работа с типами 1С в запросе
В запросе тип 1С можно проверить двумя способами.
Первый – аналогично описанному, но в имени типа 1С не указывается «Ссылка» или «Объект», то есть вместо «СправочникСсылка.Организации» пишем «Справочник.Организации»
Получение доступных типов 1С
У множества объектов есть свойство .ТипЗначения, которое содержит список типов 1С:
- Поле на форме толстого клиента
ЭлементыФормы.ИмяПоля.ТипЗначения - Поле на форме тонкого клиента (исключение: называется ДоступныеТипы)
Элементы.ИмяПоля.ДоступныеТипы - Колонка таблицы значений, дерева значений
- Реквизит формы
- Элемент отбора
- …
Как работать с этим списком типов 1С в поле .ТипЗначения – см. «ОписаниеТипов» в разделе «Язык 1С».
Работа с типами 1С реквизитов в метаданных конфигурации
При добавлении и редактировании реквизитов в конфигураторе программист указывает тип(ы) 1С реквизита. В программном коде на языке 1С можно получить (узнать) тип(ы) 1С реквизита.
Подробнее про работу с метаданными см. далее «Работа с метаданными».
Основные методы:
- У объекта 1С вызвать метод Метаданные(), который возвращает метаданные конкретного объекта и далее работать со списком реквизитов (и реквизитов табличной части)
Документы.ПоступлениеТоваров.ПустаяСсылка().Метаданные().Реквизиты
- Использовать глобальную переменную «Метаданные», которая возвращает все метаданные конфигурации, и далее выйти на реквизиты конкретного объекта
Метаданные.Документы.ПоступлениеТоваров.Реквизиты
У реквизита есть свойство .Тип, которое содержит список типов 1С, установленный в конфигураторе у этого реквизита.
Как работать с этим списком типов 1С – см. «ОписаниеТипов» в разделе «Язык 1С».
Указать фильтр типов 1С
У многих объектов возможно указать фильтр типов значений 1С, возможных к использованию, например:
- Список значений (.ДоступныеЗначения)
- Поле формы управляемого клиента (.ДоступныеТипы)
Там, где фильтра не доступен к изменению, доступно указать фильтр в методе объекта. Например у колонки таблицы (дерева) значений есть .ТипЗначения и мы не можем его изменять, но при добавлении колонки с помощью метода .Добавить() вторым параметром можно указать список доступных типов 1С.
Чтобы указать список типов 1С для фильтра – используется список типов 1С, как с ним работать – см. «Описание типов» в разделе «Язык 1С».
Загрузка…
Подскажите, как получить тип реквизита справочника в форме строки?
1C | ||
|
Например, если реквизит с именем «БазоваяЕдиницаИзмерения» имеет тип «СправочникСсылка.КлассификаторЕдиницИзмерения «, то у меня в сообщении он выдает просто синоним справочника, на который ссылается реквизит: «Классификатор единиц измерения».
А нужно получить строку со значением «СправочникСсылка.КлассификаторЕдиницИзмерения «.
Не так давно пришлось приводить конфигурацию заказчика в соответствие с законом «О защите персональных данных», который гласит, что при отказе клиенту в одобрении заявки все личные данные о нем должны удаляться из информационной системы обработки персональных данных, которой является 1С. Реквизитов и таблиц с личными данными было достаточно много, поэтому вручную прописывать очистку было нецелесообразно. А удалять сам элемент справочника было нельзя, потому что к нему был привязан документ рассмотрения заявки, и удаление нарушило бы логическую целостность информационной базы.
Поэтому необходим был механизм, который позволил бы получить полный список реквизитов и табличных частей. Для этого у объектов 1С существует встроенная функция Метаданные().
Эта функция возвращает значение особого типа — ОбъектМетаданных. В нем содержатся практически все свойства объекта. Например для элемента справочника это будут: длина наименования и кода, автонумерация, основные формы, вообще все существующие формы, представление объекта, иерархичность, макеты и многое другое.
В нашем случае потребуются Реквизиты и Табличные части. Эти компоненты метаданных содержат значение КоллекцияОбъектовМетаданных, которую можно обойти в цикле Для каждого.
У каждого из элементов коллекции тоже много свойств, в частности есть очень полезное свойство Тип, через которое можно получить тип того или иного реквизита. Полный список свойств можно узнать, например, в режиме отладки через команду Вычислить выражение. Мне же для обращения к реквизиту или табличной части потребуется свойство Имя.
В итоге модуль, очищающий реквизиты и табличные части, выглядит так:
Контрагент=КонтрагентСсылка.ПолучитьОбъект();
//Переменная КонтрагентСсылка должна содержать ссылку на элемент</p>
Для Каждого Реквизит Из Контрагент.Метаданные().Реквизиты Цикл
Контрагент[Реквизит.Имя] = Неопределено;
КонецЦикла;
Для Каждого ТаблЧасть Из Контрагент.Метаданные().ТабличныеЧасти Цикл
Контрагент[ТаблЧасть.Имя].Очистить();
КонецЦикла;
Контрагент.Записать();
Функция Метаданные() применяется как для самого объекта, так и для ссылки на него. В нашем случае необходимо было изменить значения реквизитов, поэтому объект нужно было получить. Данная функция работает не только для справочников, но и для других объектов конфигурации 1С, но состав свойств будет иным.
Приведенный в заметке пример — это только один из многочисленных способов применения функции Метаданные(). Другие варианты и проблемы с использованием метаданных готов обсудить в комментариях.
В этой статье разберем метаданные 1С. Метаданные или объекты метаданных в 1С – это «кирпичики», из которых строится конфигурация 1С. Узнаем, что такое метаданные (объекты метаданных) и научимся получать значения свойств объектов метаданных.
В учебной конфигурации, справочник Номенклатура – это объект метаданных. Документ Закупка товаров – тоже объект метаданных.
Все объекты метаданных 1С перечислены в дереве конфигурации.
У объектов метаданных имеются прототипы. Визуально в дереве конфигурации прототипы представлены в виде веток дерева.
Например, у справочника Номенклатура прототип Справочники.
А у документа Закупка товаров – прототип Документы.
У объектов одного прототипа похожие свойств и методы. Кроме принадлежности к прототипу свойства и методы объектов метаданных определяются дополнительными характеристиками. Например, включена у справочников иерархия или нет.
В процессе конфигурирования разработчик настраивает свойства объектов метаданных. Например, длина кода справочника 1С это свойство. В учебной конфигурации у справочника Номенклатура длина кода 9.
А у справочника Валюта – 3.
На свойства объекта метаданных можно посмотреть, как в редакторе объекта. Редактор открывается при двойном клике мышкой по объекту. Так и в палитре свойств объекта. Для того, чтобы открыть палитру свойств, следует выделить объект, вызвать контекстное меню и выполнить команду «Свойства».
После, справа откроется палитра свойств объекта метаданных, в которой можно прочитать или отредактировать разные свойства объекта. Например, длину наименования.
К свойствам объектов метаданных можно обратиться при помощи программного кода. Сделать это можно воспользовавшись свойством глобального контекста, которое так и называется Метаданные.
Это свойство является коллекцией объектов метаданных и включает в себя все метаданные конфигурации 1С, которые даже не созданы.
У свойства Метаданные имеются свойства, которые отображают прототипы объектов. Это тоже коллекции. Например, для справочников имеется свое свойство.
Которое, также является коллекцией.
В этой коллекции содержатся все объекты метаданных, которые входят в ветку Справочники дерева конфигурации 1С.
Мы можем прочитать свойство того или иного объекта метаданных. Например, длину кода у справочника Валюта.
Поскольку свойство Метаданные и его свойства, которые соответствуют прототипам, являются коллекциями, то их можно обойти циклом.
Например, обойдем циклом справочники и выведем имя справочника, синоним и длину кода.
Для Каждого стрСправочника из Метаданные.Справочники Цикл Сообщить("Имя " + стрСправочника.Имя + ", синоним: " + стрСправочника.Синоним + " (длина кода: " + стрСправочника.ДлинаКода + ")"); КонецЦикла;
В учебной конфигурации, у этого кода будет следующий результат.
Обратите внимание, что этот код должен выполняться в серверном контексте (или в клиентском на толстом клиенте), поскольку у свойства Метаданные доступность Сервер, Толстый клиент и т.д.
Кроме свойств объекта можно получить доступ к свойствам реквизитов при помощи всё того же свойства глобального контекста Метаданные. Для того, чтобы обратиться к реквизитам объекта, необходимо получить доступ к этому объекту посредством свойства глобального контекста Метаданные, а потом уже обратиться к свойству Реквизиты полученного объекта.
Например, к реквизитам конкурентного справочника можно обратиться так:
РеквизитыСправочника = Метаданные.Справочники.Контрагенты.Реквизиты;
А к реквизитам конкурентного документа – так:
РеквизитыДокумента = Метаданные.Документы.ЗакупкаТоваров.Реквизиты;
Получаемые реквизиты являются коллекцией, которая содержит все реквизиты объекта. Её также можно обойти циклом и прочитать тот или иной реквизит.
РеквизитыДокумента = Метаданные.Документы.ЗакупкаТоваров.Реквизиты; Сообщить("Выводим реквизиты документа " + Метаданные.Документы.ЗакупкаТоваров.Синоним); Для Каждого стрРеквизит из РеквизитыДокумента Цикл Сообщить(" Имя: " + стрРеквизит.Имя + ", синоним " + стрРеквизит.Синоним); КонецЦикла;
Результат работы этого кода в учебной конфигурации будет следующим.
Некоторые свойства объектов имеют перечисленный тип, т.е. перечисление определенных значений. Например, у документов имеется свойство Проведение. У этого свойства есть несколько значений: Разрешить и Запретить. Свойство Проведение и является перечисленным типом.
При помощи свойства глобального контекста Метаданные мы можем проверить какое значение перечисленного типа установлено у того или иного объекта. Для этого нужно воспользоваться свойством СвойстваОбъектов. Оно содержит в себе все перечисленные типы и их значения.
Мы можем сравнить значение перечисленного типа в реквизите объекта метаданных со значением из коллекции соответствующего типа в свойстве СвойстваОбъектов. Например, выведем все документы и сообщим можно эти документы проводить или нельзя.
Для Каждого стрДокумент Из Метаданные.Документы Цикл Сообщить("Выводим " + стрДокумент.Представление() + "(" + стрДокумент.ПолноеИмя() + ")"); Если СтрДокумент.Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить Тогда Сообщить(Символы.Таб + "Документ можно проводить"); ИначеЕсли СтрДокумент.Проведение = Метаданные.СвойстваОбъектов.Проведение.Запретить Тогда Сообщить(Символы.Таб + "Документ нельзя проводить"); КонецЕсли; КонецЦикла;
Как вы видите, при помощи свойства глобального контекста Метаданные можно получать очень подробную информацию об объектах конфигурации, эта информация может вам пригодиться при написании различных алгоритмов.
Читайте также по теме:
Объект в 1С
Ссылка в 1С
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009
-
Извините за тему, не знала как назвать
Вообщем, вот такая запись — это один вариант :
НаименованиеСправочника = ТИПРеквизита.Метаданные().Имя; ЗначениеРеквизита = Справочники[НаименованиеСправочника].НайтиПоНаименованию(СтрЗначение);
Тут все правильно , работает.
Но проблема в том, что ТИПРеквизита, это переменное значение: справочник, перечисление и что-там еще есть в ПланеВидовХарактеристикСубконто.Подскажите как прописать 2ю строку так, чтобы это работало для сслыки любого типа.
Я б уже и через Если сделала б, но не знаю как определить что это справочник, а не перечисление напр.
Надеюсь понятно описала суть проблемы) -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Составной тип у реквизита выставьте и отметьте всевозможные типы.
-
разве это то о чем я спросила?
ТИПРеквизита определяется программно, я его не знаю зарание.
Если это будет перечисление , то вторая строка кода , приведенного выше , явно не сработает… -
Offline
nbIpKuH_BaH9I
Модераторы
Команда форума
Модератор- Регистрация:
- 16 сен 2009
- Сообщения:
- 8.117
- Симпатии:
- 550
- Баллы:
- 204
Если ТипЗнч(ВашеЗначение) = Тип("СправочникСсылка.Номенклатура") Тогда // пропишите что хотите КонецЕсли;
— Объединение сообщений, 17 сен 2015 —
Не перечьте нам никогда
-
Я не могу проверять на равенство определенному справочнику! Их огромное количество , и какой конкретно из них , неизвестно заранее
— Объединение сообщений, 17 сен 2015 —
ой , а я это вообще не Вам писала, а
alexburn -
Offline
nbIpKuH_BaH9I
Модераторы
Команда форума
Модератор- Регистрация:
- 16 сен 2009
- Сообщения:
- 8.117
- Симпатии:
- 550
- Баллы:
- 204
У реквизита есть тип. Он явно указан в конфигураторе. Давайте тогда полностью опишите задачу?
-
загрузка из excel в док. Установка правил ссответствия счетов БУ и МСФО, вот задача
— Объединение сообщений, 17 сен 2015 —
у реквизита есть, но мне надо заполнить его автоматом
В коде выше реквизит — это как бы не какойто там реквизита документа
-
Offline
shurikvz
Модераторы
Команда форума
Модератор- Регистрация:
- 1 окт 2009
- Сообщения:
- 8.547
- Симпатии:
- 344
- Баллы:
- 104
Если Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(<...>)) Тогда ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(<...>)) Тогда ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипЗнч(<...>)) Тогда и.т.д.
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.889
- Симпатии:
- 1.029
- Баллы:
- 204
Имя объекта можно узнать из метаданных ссылки на объект:
СсылкаНаОбъект.Метаданные().Имя;
ТипОбъекта можно получить через ТипВсеСсылки у менеждера, сам менеджер придется определить через условие, благо менеджеров не много.
-
Offline
rur39
- Регистрация:
- 15 мар 2016
- Сообщения:
- 1
- Симпатии:
- 0
- Баллы:
- 1
Функция ПреобразоватьЗначенияПеречисленияВUUID(ЗначенияПеречисления) Экспорт
Если Не ЗначениеЗаполнено(ЗначенияПеречисления) Тогда
Возврат «»;
КонецЕсли;
ЗначВнутр = ЗначениеВСтрокуВнутр(ЗначенияПеречисления);
Массив = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ЗначВнутр, «:»);
Если Не Массив.Количество() = 2 Тогда
Возврат «»;
КонецЕсли;
UUID = СтрЗаменить(Массив[1], «}», «»);
Если Не СтрДлина(UUID) = 32 Тогда
Возврат «»;
КонецЕсли;
UUID = Лев(UUID, + «-» + Сред(UUID, 9, 4) + «-» + Сред(UUID, 13, 4) + «-» + Сред(UUID, 18, 4) + «-» + Прав(UUID, 12);
Попытка
ф = новый Уникальныйидентификатор(UUID);
Исключение
Возврат «»;
КонецПопытки;
Возврат UUID;КонецФункции
- Похожие темы
-
- Ответов:
- 13
- Просмотров:
- 11.823
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 47
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1Cv8.1CD — Файл данных достиг максимального размера! 8
1С выдает предупреждение » Файл данных достиг максимального размера» .
Подскажите из — за чего это и как можно решить ?
Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10 гигабайтам или размер ка
1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей.
1С Предприятие что это? 12
Что такое 1С?
1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » — конкретный продукт, который выпускает компания 1С .
Что такое
Посмотреть все результаты поиска похожих