Есть параметр функции, в который передается либо объект, либо ссылка. Это может быть любой документ. Как понять - объект это, или ссылка?
Конструкция типа
Если Найти(ТипЗнчСтр(Документ), "ДокументОбъект") <> 0 Тогда
КонецЕсли;
Не вполне надежна, т.к. в наименовании документа может встретиться "ДокументОбъект"
Конструкция типа
Если Найти(ТипЗнчСтр(Документ), "ДокументОбъект") <> 0 Тогда
КонецЕсли;
Не вполне надежна, т.к. в наименовании документа может встретиться "ДокументОбъект"
По теме из базы знаний
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Обзор полезных методов БСП 3.1.4
- Расширение глобального поиска 1С, или Глобальный поиск "на максималках"
- Что нам стоит обмен настроить, или Как кролик спас «зоопарк»
- Самые используемые методы БСП 3.1.9
Найденные решения
ДокументыМенеджер.ТипВсеСсылки (DocumentsManager.AllRefsType)
ДокументыМенеджер (DocumentsManager)
ТипВсеСсылки (AllRefsType)
Синтаксис:
ТипВсеСсылки()
Возвращаемое значение:
Тип: ОписаниеТипов.
Описание:
Получает описание типов, содержащее типы ссылок документов.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
МассивТипов = ЭлементыФормы.ПолеВводаВариант.ТипЗначения.Типы();
Для каждого ЭлементМассива Из МассивТипов Цикл
Если Документы.ТипВсеСсылки().СодержитТип(ЭлементМассива) Тогда
МассивНужныхТипов.Добавить(ЭлементМассива);
КонецЕсли;
КонецЦикла;
ДокументыМенеджер (DocumentsManager)
ТипВсеСсылки (AllRefsType)
Синтаксис:
ТипВсеСсылки()
Возвращаемое значение:
Тип: ОписаниеТипов.
Описание:
Получает описание типов, содержащее типы ссылок документов.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
МассивТипов = ЭлементыФормы.ПолеВводаВариант.ТипЗначения.Типы();
Для каждого ЭлементМассива Из МассивТипов Цикл
Если Документы.ТипВсеСсылки().СодержитТип(ЭлементМассива) Тогда
МассивНужныхТипов.Добавить(ЭлементМассива);
КонецЕсли;
КонецЦикла;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Kutuzov, можно вот так
Попытка
СсылкаОбъекта = Объект.Ссылка;
ОбъектОбъекта = СсылкаОбъект.ПолучитьОбъект();
Исключение
СсылкаОбъекта = Null;
ОбъектОбъекта = Неопределено;
КонецПопытки;
ЭтоОбъектныйТип = НЕ (СсылкаОбъекта = Null);
ЭтоОбъект = ЭтоОбъектныйТип И ТипЗнч(ОбъектОбъекта) = ТипЗнч(Объект);
Показать
Можно сделать проверку следующим образом (Работает для всех документов(!)):
Если ТипЗнч(Первый) = Тип("ДокументСсылка."+ТипЗнч(Первый)) Тогда
//ссылка
...
ИначеЕсли ТипЗнч(Первый) = Тип("ДокументОбъект."+ТипЗнч(Первый)) Тогда
//объект
.....
КонецЕсли;
Показать
ДокументыМенеджер.ТипВсеСсылки (DocumentsManager.AllRefsType)
ДокументыМенеджер (DocumentsManager)
ТипВсеСсылки (AllRefsType)
Синтаксис:
ТипВсеСсылки()
Возвращаемое значение:
Тип: ОписаниеТипов.
Описание:
Получает описание типов, содержащее типы ссылок документов.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
МассивТипов = ЭлементыФормы.ПолеВводаВариант.ТипЗначения.Типы();
Для каждого ЭлементМассива Из МассивТипов Цикл
Если Документы.ТипВсеСсылки().СодержитТип(ЭлементМассива) Тогда
МассивНужныхТипов.Добавить(ЭлементМассива);
КонецЕсли;
КонецЦикла;
ДокументыМенеджер (DocumentsManager)
ТипВсеСсылки (AllRefsType)
Синтаксис:
ТипВсеСсылки()
Возвращаемое значение:
Тип: ОписаниеТипов.
Описание:
Получает описание типов, содержащее типы ссылок документов.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
МассивТипов = ЭлементыФормы.ПолеВводаВариант.ТипЗначения.Типы();
Для каждого ЭлементМассива Из МассивТипов Цикл
Если Документы.ТипВсеСсылки().СодержитТип(ЭлементМассива) Тогда
МассивНужныхТипов.Добавить(ЭлементМассива);
КонецЕсли;
КонецЦикла;
(8) (14) SeverBaP,
возможно ... но только для документов.
вариант (5) - универсален - для любых ссылочных типов
к тому же он учитывает,
что перечисления особый "ссылочный" тип - у них нет объекта
и что возможно могут передаваться не "объектного" типа значения.
возможно ... но только для документов.
вариант (5) - универсален - для любых ссылочных типов
к тому же он учитывает,
что перечисления особый "ссылочный" тип - у них нет объекта
и что возможно могут передаваться не "объектного" типа значения.
Метод БСП.
Если БСП нет, можно посмотреть внутри - реализация простая, основанная на способе из (7).
Получают .ТипВсеСсылки() всех менеджеров ссылочных типов.
ОбщегоНазначения.ЭтоСсылка(ТипЗнч(Док));
Если БСП нет, можно посмотреть внутри - реализация простая, основанная на способе из (7).
Получают .ТипВсеСсылки() всех менеджеров ссылочных типов.
Обобщу.
Три способа:
По замеру производительности самый быстрый - первый, самый медленный второй.
Три способа:
ПоСсылке1 = ОбщегоНазначения.ЭтоСсылка(ТипЗнч(Параметр)); //из БСП
ПоСсылке2 = ТипЗнч(Параметр)= Тип("ДокументСсылка."+Параметр.Метаданные().Имя);
ПоСсылке3 = СтрНайти(XMLТипЗнч(Параметр).ИмяТипа,"DocumentRef")>0;
По замеру производительности самый быстрый - первый, самый медленный второй.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот