Справочник из расширения не определяется через ТипВсеСсылки()

1. pm74 203 29.08.19 19:07 Сейчас в теме
Странное поведение платформы (8.3.15.1534)
Расширение содержит справочник
вот такой код
Сообщить(Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаСправочникРасширения)));
>>> Ложь
вот так
Сообщить(Метаданные.Справочники.Содержит(СсылкаСправочникРасширения.Метаданные()));
>>> Истина

чяднт?
Teplotrassamen; tkv44; axsebur; vv2; +4 Ответить
По теме из базы знаний
Найденные решения
3. dhurricane 29.08.19 20:32 Сейчас в теме
(1) Такова особенность платформы:
В расширении не поддерживается использование типа ЛюбаяСсылка. Тип ЛюбаяСсылка, использованный в расширяемой конфигурации, не включает в себя типы, предоставленные расширениями.
Ermigen; Teplotrassamen; Alexwarsis; vv2; +4 Ответить
2. Sashares 33 29.08.19 19:18 Сейчас в теме
(1)тип все ссылки не содержит объекты расширения, просто учитывайте это
Teplotrassamen; vv2; t.v.s.; +3 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 33 29.08.19 19:18 Сейчас в теме
(1)тип все ссылки не содержит объекты расширения, просто учитывайте это
Teplotrassamen; vv2; t.v.s.; +3 Ответить
3. dhurricane 29.08.19 20:32 Сейчас в теме
(1) Такова особенность платформы:
В расширении не поддерживается использование типа ЛюбаяСсылка. Тип ЛюбаяСсылка, использованный в расширяемой конфигурации, не включает в себя типы, предоставленные расширениями.
Ermigen; Teplotrassamen; Alexwarsis; vv2; +4 Ответить
4. ixijixi 1993 26.07.21 11:54 Сейчас в теме
В версии 8.3.20 анонсировали новые возможности использования ссылок на объекты расширений. Так, например, массив, полученный вызовом метода Справочники.ТипВсеСсылки().Типы(), будет содержать типы справочников как из конфигурации, так и из расширений (аналогично будут себя вести методы Документы.ТипВсеСсылки().Типы() и т.д.). Ранее эти методы возвращали только соответствующие типы, определенные в конфигурации.

https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy/
user719210; Wilds; ekaterinaeon; LosevI; Global__IT; Sashares; vv2; +7 Ответить
5. Vladimir_D 122 05.05.22 16:09 Сейчас в теме
(4)По всей видимости, надо и конфигурацию привести к 8.3.20. при совместимости 8.3.16 так же невозможно найти стандартными командами БСП
6. EvgeTrofi 127 24.05.22 16:44 Сейчас в теме
Я вот так обхожусь:
Функция ПолучитьМетаданныеТекущегоРасширения() Экспорт
	
	МассивРасширений = РасширенияКонфигурации.Получить();
	
	Для Каждого Расширение Из МассивРасширений Цикл
		рМетаданные = Новый ОбъектМетаданныхКонфигурация(Расширение.ПолучитьДанные());
		Если рМетаданные.Имя = "ОбменПоПравиламКД2" Тогда
			Возврат рМетаданные;
		КонецЕсли;
	КонецЦикла;
	Возврат Неопределено;

КонецФункции // ПолучитьМетаданныеТекущегоРасширения()

Функция ИсточникВСоставеПланаОбмена(Источник, ИмяПланаОбмена = "МиграцияПриложений") Экспорт

	МетаданныеРасширения = РасшКД2_ПовтИсп.ПолучитьМетаданныеТекущегоРасширения();
	МетаданныеПланаОбмена = МетаданныеРасширения.ПланыОбмена[ИмяПланаОбмена];
	Если ТипЗнч(Источник) = Тип("УдалениеОбъекта") Тогда
		МетаданныеИсточника = Источник.Ссылка.Метаданные();
	Иначе
		МетаданныеИсточника = Источник.Метаданные();
	КонецЕсли;
		
	Возврат МетаданныеПланаОбмена.Состав.Содержит(МетаданныеИсточника);
	
КонецФункции // ИсточникВСоставеПланаОбмена()
Показать
Yan_Malyakov; KamranV21; Teplotrassamen; gesk; opus70; devtelscargo; +6 Ответить
7. EvgeTrofi 127 24.05.22 18:45 Сейчас в теме
(6) Ну и чтобы проверить, что это справочник:
Функция ЭтоСправочникРасширения(ПроверяемыйТип) Экспорт
	МетаданныеРасширения = ВС_ПовтИсп.ПолучитьМетаданныеТекущегоРасширения();
	МетаданныеТипа = МетаданныеРасширения.НайтиПоТипу(ПроверяемыйТип);
	Возврат МетаданныеРасширения.Справочники.Содержит(МетаданныеТипа);
КонецФункции // ЭтоСправочникРасширения()
KamranV21; Teplotrassamen; gesk; doom2good; opus70; MaiorovYury; Matveev_VS; devtelscargo; Lusha_28; +9 Ответить
9. doom2good 146 02.11.23 20:09 Сейчас в теме
(7) Большое спасибо. Прикрутил к обработке выгрузки из КД 2.1 УниверсальныйОбменДаннымиXML, может кому пригодится. У меня при выгрузке значение УникальныйИдентификатор было пустое для объектов расширения как раз из-за этого.

Перем МетаданныеРасширений;

Функция ЭтоЗначениеСсылочногоТипаРасширения(Значение)
	
	Тип = ТипЗнч(Значение);
	Если Тип = Тип("Неопределено") Тогда
		Возврат Ложь;
	КонецЕсли;
	
	Если МетаданныеРасширений = Неопределено Тогда
		
		МетаданныеРасширений = Новый Массив;
		
		Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
			МетаданныеРасширений.Добавить(Новый ОбъектМетаданныхКонфигурация(Расширение.ПолучитьДанные()));
		КонецЦикла;
		
	КонецЕсли;
	
	Для Каждого МетаданныеРасширения Из МетаданныеРасширений Цикл
		
		МетаданныеТипа = МетаданныеРасширения.НайтиПоТипу(Тип);
		
		Если МетаданныеТипа <> Неопределено
			И (МетаданныеРасширения.Справочники.Содержит(МетаданныеТипа)
			ИЛИ МетаданныеРасширения.Документы.Содержит(МетаданныеТипа)
			ИЛИ МетаданныеРасширения.Перечисления.Содержит(МетаданныеТипа)
			ИЛИ МетаданныеРасширения.ПланыВидовХарактеристик.Содержит(МетаданныеТипа)
			ИЛИ МетаданныеРасширения.ПланыСчетов.Содержит(МетаданныеТипа)
			ИЛИ МетаданныеРасширения.ПланыВидовРасчета.Содержит(МетаданныеТипа)
			ИЛИ МетаданныеРасширения.БизнесПроцессы.Содержит(МетаданныеТипа)
			ИЛИ МетаданныеРасширения.БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип(Тип)
			ИЛИ МетаданныеРасширения.Задачи.Содержит(МетаданныеТипа)
			ИЛИ МетаданныеРасширения.ПланыОбмена.Содержит(МетаданныеТипа))
			Тогда
			
			Возврат Истина;
			
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат Ложь;
	
КонецФункции
Показать
Teplotrassamen; +1 Ответить
8. opus70 74 01.08.23 14:44 Сейчас в теме
(7) спасибо очень помогло ваше решение
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот