helpf.pro
Регистрация
 0 
Распечатать

Как получить менеджер объекта по переданной ссылке?

Код 1C v 8.х
 // Возвращает менеджер объекта по переданной ссылке.
// Не обрабатываются точки маршрутов бизнес-процессов.
Функция МенеджерОбъектаПоСсылке(Ссылка) Экспорт

ИмяОбъекта = Ссылка.Метаданные().Имя;
ТипСсылки = ТипЗнч(Ссылка);

Если Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат Справочники[ИмяОбъекта];
ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат Документы[ИмяОбъекта];
ИначеЕсли БизнесПроцессы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат БизнесПроцессы[ИмяОбъекта];
ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат ПланыВидовХарактеристик[ИмяОбъекта];
ИначеЕсли ПланыСчетов.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат ПланыСчетов[ИмяОбъекта];
ИначеЕсли ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат ПланыВидовРасчета[ИмяОбъекта];
ИначеЕсли Задачи.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат Задачи[ИмяОбъекта];
ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат ПланыОбмена[ИмяОбъекта];
ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда
Возврат Перечисления[ИмяОбъекта];
Иначе
Возврат НеОпределено;
КонецЕсли;

КонецФункции
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 9769
 0 
Распечатать
Возможно, вас также заинтересует
База 1С при запуске уходит в дамп и вылетает 1
В последнее время частенько обращаются пользователи у которых после замены или ремонта компьютера 1С не запускается, а точнее при открытии уходит в dump и вылетает. Как правило, решение одно: Отключить аппаратное...
Временные таблицы в отчетах СКД 0
Нужно в отчете СКД Связать Данные из Регистра Накопления ВзаиморасчетыСРаботниками и Табличной Части Документа ЗарплатаКВыплате по Ссылке на Документ и ФизЛицу! И вывести полученные данные за указанный Период(с...
Временные таблицы, что из себя представляют и как с ними работать? 5
Временные таблицы - хранятся на сервере и позволяют писать более простые запросы. Временные таблицы хранятся в объекте типа МенеджерВременныхТаблиц . Когда этот объект уничтожается, уничтожаются и временные...
Вывод (печать) таблицы значений в табличный документ 4
Пример кода быстрая Печать таблицы значений //ТПОтчета - Табличное поле с формы (Таблица значений) с данными ПострПечать = Новый ПостроительОтчета; ПострПечать.ИсточникДанных = Новый...
Выгрузка форматированного документа 1С на свой сайт 0
Пользователи в 1с ведут описание объектов, которые редактируются в объекте ФорматированныйДокумент. Необходимо обеспечить выгрузку форматированного документа на фтп. Для решения этой задачи воспользуемся методом...
Посмотреть все результаты поиска похожих
Комментарии
Oracle
21.10.2012 22:36Комментарий: 1
Oracle
Так быстрее на 30%
Код 1C v 8.2 УП
 
Перем мСоответствиеТиповМенеджера;
Перем мМассивМенеджеров;

Функция ОпределитьМенеджера(Ссылка)

Тип = ТипЗнч(Ссылка);
Для Каждого ЭлементМассива ИЗ мМассивМенеджеров Цикл
Если мСоответствиеТиповМенеджера[ЭлементМассива].СодержитТип(Тип) Тогда
Возврат ЭлементМассива;
КонецЕсли;
КонецЦикла;

//Метаданная = Метаданные.НайтиПоТипу(Тип);
//
//Если Метаданные.Константы.Содержит(Метаданная) Тогда
// Возврат Константы;
//ИначеЕсли Метаданные.РегистрыСведений.Содержит(Метаданная) Тогда
// Возврат РегистрыСведений;
//ИначеЕсли Метаданные.РегистрыНакопления.Содержит(Метаданная) Тогда
// Возврат РегистрыНакопления;
//КонецЕсли;

Возврат Неопределено;

КонецФункции

мСоответствиеТиповМенеджера = Новый Соответствие;
мМассивМенеджеров = Новый Массив;
мМассивМенеджеров.Добавить(Документы);
мМассивМенеджеров.Добавить(Справочники);
мМассивМенеджеров.Добавить(Перечисления);
мМассивМенеджеров.Добавить(ПланыСчетов);
мМассивМенеджеров.Добавить(ПланыВидовХарактеристик);
мМассивМенеджеров.Добавить(ПланыВидовРасчета);
мМассивМенеджеров.Добавить(БизнесПроцессы);
мМассивМенеджеров.Добавить(Задачи);
мМассивМенеджеров.Добавить(ПланыОбмена);
мСоответствиеТиповМенеджера[Документы] = Документы.ТипВсеСсылки();
мСоответствиеТиповМенеджера[Справочники] = Справочники.ТипВсеСсылки();
мСоответствиеТиповМенеджера[Перечисления] = Перечисления.ТипВсеСсылки();
мСоответствиеТиповМенеджера[ПланыСчетов] = ПланыСчетов.ТипВсеСсылки();
мСоответствиеТиповМенеджера[ПланыВидовХарактеристик] = ПланыВидовХарактеристик.ТипВсеСсылки();
мСоответствиеТиповМенеджера[ПланыВидовРасчета] = ПланыВидовРасчета.ТипВсеСсылки();
мСоответствиеТиповМенеджера[БизнесПроцессы] = БизнесПроцессы.ТипВсеСсылки();
мСоответствиеТиповМенеджера[Задачи] = Задачи.ТипВсеСсылки();
мСоответствиеТиповМенеджера[ПланыОбмена] = ПланыОбмена.ТипВсеСсылки();
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.