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

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

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

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

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

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