Как проверить, что тип значения относится к справочникам, документам и т.д.?
Объекты метаданных, описывающие прикладные объекты, определяют сразу несколько типов, используемых для манипулирования этими прикладными объектами во встроенном языке. Например, для документа Счет будут определены типы ДокументМенеджер.Счет, ДокументСсылка.Счет, ДокументОбъект.Счет, ДокументВыборка.Счет и ДокументСписок.Счет. В некоторых случаях нужно определить, к какому виду объектов метаданных относится конкретное значение.
Для этого можно использовать, например, следующую последовательность действий:
1С, проверка на тип документа, программно. Пример процедуры
Пример процедуры проверки на тип документа
Проверим документ на соответствие типу и выведем на экран результат проверки.
&НаСервере Процедура ПроверитьТипДокумента(СсылкаНаДокумент) Если ТипЗнч(СсылкаНаДокумент) = Тип("ДокументСсылка.СадкаВПечь") Тогда Сообщить("Это садка в печь"); Иначе Сообщить("Это не садка в печь"); КонецЕсли; КонецПроцедуры
support 2019-07-13T10:02:18+03:00 Встроенный язык 1С, Программисту |
Связанные статьи
Запрос, обход выборки с табличной частью
Помещение в хранилище нескольких объектов, одновременно
Прямое подключение к базе с запросом (файл, клиент-сервер)
Использовать обычные формы в управляемом приложении
Программно добавить кнопку в форму
Как проверить тип значения документа, справочника?
Во-первых, во встроенном языке 1С:Предприятия 8 для работы с одним прикладным объектом реализовано несколько типов. Например, задачи, которые в 1С:Предприятии 7.7 решал тип «Документ» решаются теперь несколькими типами. Они разделены по своему назначению. Тип «ДокументСсылка» используется для хранения ссылок на объект базы данных в реквизитах других объектов. Тип «ДокументОбъект» используется для записи и удаления отдельных документов. Тип «ДокументВыборка» используется для перебора документов, хранящихся в базе данных. Существуют и другие типы данных, предназначенные для работы с документом. При написании модулей используются те типы, которые необходимы для решения конкретных задач.
Во-вторых, в 1С:Предприятии 8 нет двух понятий — «Тип» и «Вид». Для каждого объекта метаданных имеется свой набор типов используемых во встроенном языке для работы с описываемым им прикладным объектом. То есть при использовании конфигурации не будет существовать такого типа как «ДокументСсылка», а будут существовать конкретные типы, например, «ДокументСсылка.Счет», «ДокументОбъект.Счет», «ДокументСсылка.Накладная», и т.д.
Кроме того, в 1С:Предприятии 8 для манипулирования типами используются не их строковые наименования, а специальный тип «Тип». Значение типа Тип может быть получено функцией Тип(), получающей в качестве параметра имя типа.
Чтобы проверить тип значения переменной нужно определить ее тип функцией ТипЗнч() и использовать функцию Тип() для получения типа по имени.
Если ТипЗнч(Основание) = Тип(«ДокументСсылка.ПриходнаяНакладная») Тогда
1с как получить тип документа
Добрый день всем.
В справочнике есть реквизит составного типа данных (документы).
Как программно определить вид документа, ссылка на который храниться в этом реквизите.
Заранее благодарю.
Ссылка.Метаданные()
Пример:
Метаданные.Справочники.Номенклатура.Реквизиты.ВидНоменклатуры.Тип.Типы()
ТипЗнч(Ссылка) = Тип(«ДокументСсылка.РеализацияТоваровУслуг»)
Ссылка.Метаданные().Имя
Строка(Ссылка); 🙂
(7) Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)) 🙂
(7)Даст что-то типа «Приходная накладная №1 от 01.01.12» 🙂
(5) огромный спс — прокатило)
остальных также благодарю .
ТЕМА ЗАКРЫТА
(9) а что ещё надо? это самое точное!)
(11) это не тип, это строковое представление объекта (ссылки)
(12) я в курсе, чо автору надо я хз. с (1) по (6) всё правильно, а автор выбрал (5)
а (5) разве не правильно?
(14)Ну вроде в сабже он ВИД спрашивал, а не тип:-)
(14) имхо впрос в сабже некорректен, тема не раскрыта. с (1) по (6) всё правильно)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену. по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший