Обновление конфигураций на БСП, у которых в расширениях есть собственные объекты с данными

Программирование - Практика программирования

79
Показан способ обновления конфигураций, основанных на БСП, в тех случаях, когда в расширениях имеются собственные объекты данных (Справочники, Документы, Регистры сведений, Планы обмена).

Как все хорошо начиналось

Платформа версии 8.3.11 принесла программистам новую, доселе не виданную радость - возможность создавать в расширениях свои объекты, хранящие данные. Чем я и решил воспользоваться. Насоздавал в расширении справочников, регистров, и начал радоваться жизни... ровно до того момента, как  решил накатить штатное обновление конфигурации.

Беда пришла откуда не ждали

При обновлении вдруг выползло страшное окошко, которое ничего хорошего не обещало:

Первая мысль - "WTF?", ведь до этого расширение работало и ни на что не жаловалось.

Вторая мысль - ок, я сделаю как ты просишь, только не бей. И вот тут облом! Сообщение любезно подсказывает, что можно сделать, но эти действия ни к чему не приводят!

За чашечкой кофе приходит третья мысль - хочешь записи в справочниках? Будут тебе записи в справочниках! Быстренько пишу обработку, которая эти записи туда вносит (ну не то чтобы быстренько... пришлось поковырять исходники), запускаю... И ничего! И не просто ничего, а ничего с приколом - мои с любовью внесенные записи оказались помечены на удаление. "WTF?" снова подумал я и сел курить исходники более вдумчиво.

Ларчик открывался достаточно просто

В модуле менеджера справочника ИдентификаторыОбъектовМетаданных есть функция СвойстваКоллекцийОбъектовМетаданных, а в ней вот такие строки:

    // Роли
	Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
	Строка.Идентификатор   = Новый УникальныйИдентификатор("115c4f55-9c20-4e86-a6d0-d0167ec053a1");
	Строка.Имя             = "Роли";
	Строка.Синоним         = НСтр("ru = 'Роли'");
	Строка.ИмяВЕдЧисле     = "Роль";
	Строка.СинонимВЕдЧисле = НСтр("ru = 'Роль'");
	Строка.БезДанных       = Истина;
	Строка.БезКлючаОбъектаМетаданных = Истина;
	Строка.ОбъектыРасширений = Истина;
	
	// ПланыОбмена
	Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
	Строка.Идентификатор   = Новый УникальныйИдентификатор("269651e0-4b06-4f9d-aaab-a8d2b6bc6077");
	Строка.Имя             = "ПланыОбмена";
	Строка.Синоним         = НСтр("ru = 'Планы обмена'");
	Строка.ИмяВЕдЧисле     = "ПланОбмена";
	Строка.СинонимВЕдЧисле = НСтр("ru = 'План обмена'");
	
	// Справочники
	Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
	Строка.Идентификатор   = Новый УникальныйИдентификатор("ede89702-30f5-4a2a-8e81-c3a823b7e161");
	Строка.Имя             = "Справочники";
	Строка.Синоним         = НСтр("ru = 'Справочники'");
	Строка.ИмяВЕдЧисле     = "Справочник";
	Строка.СинонимВЕдЧисле = НСтр("ru = 'Справочник'");
Что наводит на мысль - БСП писалась во времена, когда добавлять свои объекты в расширение было нельзя, и она тупо не в курсе что такое бывает в природе. За это "знание" реквизит Строка.ОбъектыРасширений. Окей, давайте ей объясним! 
    // Справочники
	Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
	Строка.Идентификатор   = Новый УникальныйИдентификатор("ede89702-30f5-4a2a-8e81-c3a823b7e161");
	Строка.Имя             = "Справочники";
	Строка.Синоним         = НСтр("ru = 'Справочники'");
	Строка.ИмяВЕдЧисле     = "Справочник";
	Строка.СинонимВЕдЧисле = НСтр("ru = 'Справочник'");
	Строка.ОбъектыРасширений = Истина;

Запускаем, ждем, ошибка пропала, записи в нужных справочниках создались. Почти чудо. Почему почти? Потому что через некоторое время в ходе обновления мы получим вторую ошибку:

Вот тут есть два пути:

  1. Добавить наши объекты в нужные обработчики. Это конечно самый правильный путь, но это снятие с поддержки. А именно снятия с поддержки мы и хотим избежать используя расширения.
  2. Заставить систему игнорировать наши объекты, для этого в модуле ИнтеграцияСТехнологиейСервиса есть процедура ПриОпределенииИсключенийНеразделенныхДанных

Вот теперь красота и умиротворение.

В присоединенном файле находится расширение, оно полностью повторяет то что написано в статье. Просто добавьте его в свою конфигурацию перед обновлением.

Надеюсь мой опыт кому-то пригодится и поможет сэкономить несколько часов жизни. Обсуждения и конструктивная критика приветствуются.

79

Скачать файлы

Наименование Файл Версия Размер
Обновление конфигураций на БСП, у которых в расширениях есть собственные объекты с данными:
.cfe 7,95Kb
12.02.18
28
.cfe 7,95Kb 28 Скачать

См. также

Комментарии
Сортировка: Древо
1. kwazi 222 12.02.18 22:26 Сейчас в теме
какой режим совместимости у конфигурации?
2. t.v.s. 79 12.02.18 22:28 Сейчас в теме
(1)
"Не использовать", если у вас платформа 8.3.11;
"8.3.11", если у вас платформа 8.3.12
3. mitia.mackarevich 28 13.02.18 13:51 Сейчас в теме
Смотрите на версию БСП, раньше такая же проблема с ролями была. Прежде чем что то добавить в типовой на базе БСП, имеет смысл посмотреть какие типы объектов расширения она поддерживает (сама БСП). Для этого есть справочник "Идентификаторы объектов расширения" . Раньше такая проблема была с ролями, в 2.4 проблему решили. Поэтому эта проблема не новость
4. t.v.s. 79 13.02.18 13:58 Сейчас в теме
(3) Вы правы, что нужно смотреть какие возможности поддерживает БСП. Моя статья о том, что делать, когда "нельзя, но очень хочется"
5. Dmitriy_Kolesnikov 13.02.18 19:58 Сейчас в теме
Интересно, а в ИТС вы об этом писали? Разработчики в курсе?
6. t.v.s. 79 13.02.18 20:03 Сейчас в теме
(5)Я полагаю, что разработчики в курсе и с новых версиях БСП это будет исправлено
user676977_slkruto; +1 Ответить
7. user676977_slkruto 13.03.18 15:47 Сейчас в теме
Виктор, спасибо! Тоже столкнулся с такой ошибкой при обновлении. С этим расширением все прошло отлично!
8. zender911 15.03.18 17:41 Сейчас в теме
Заставить систему игнорировать наши объекты, для этого в модуле ИнтеграцияСТехнологиейСервиса есть процедура ПриОпределенииИсключенийНеразделенныхДанных

Так, а что конкретно прописали, можно поподробнее ?
9. t.v.s. 79 16.03.18 07:00 Сейчас в теме
(8)
&После("ПриОпределенииИсключенийНеразделенныхДанных")
Процедура Фикс_ПриОпределенииИсключенийНеразделенныхДанных(Исключения)
	
	//Раскомментировать Возврат, если используется разделение
	//Возврат;
	
	Если Метаданные.ЕстьИзмененияРасширениямиКонфигурации() Тогда
		//Справочники
		Для Каждого ОбъектМетаданных Из Метаданные.Справочники Цикл
			Расш = ОбъектМетаданных.РасширениеКонфигурации();
			Если Расш <> Неопределено Тогда
				Если ОбъектМетаданных.ПринадлежностьОбъекта = Метаданные.СвойстваОбъектов.ПринадлежностьОбъекта.Собственный Тогда
					Исключения.Добавить(ОбъектМетаданных);					
				КонецЕсли;
			КонецЕсли;
		КонецЦикла;
		//Регистры сведений
		Для Каждого ОбъектМетаданных Из Метаданные.РегистрыСведений Цикл
			Расш = ОбъектМетаданных.РасширениеКонфигурации();
			Если Расш <> Неопределено Тогда
				Если ОбъектМетаданных.ПринадлежностьОбъекта = Метаданные.СвойстваОбъектов.ПринадлежностьОбъекта.Собственный Тогда
					Исключения.Добавить(ОбъектМетаданных);
				КонецЕсли;
			КонецЕсли;
		КонецЦикла;
		//Документы
		Для Каждого ОбъектМетаданных Из Метаданные.Документы Цикл
			Расш = ОбъектМетаданных.РасширениеКонфигурации();
			Если Расш <> Неопределено Тогда
				Если ОбъектМетаданных.ПринадлежностьОбъекта = Метаданные.СвойстваОбъектов.ПринадлежностьОбъекта.Собственный Тогда
					Исключения.Добавить(ОбъектМетаданных);
				КонецЕсли;
			КонецЕсли;
		КонецЦикла;
		//Планы обмена
		Для Каждого ОбъектМетаданных Из Метаданные.ПланыОбмена Цикл
			Расш = ОбъектМетаданных.РасширениеКонфигурации();
			Если Расш <> Неопределено Тогда
				Если ОбъектМетаданных.ПринадлежностьОбъекта = Метаданные.СвойстваОбъектов.ПринадлежностьОбъекта.Собственный Тогда
					Исключения.Добавить(ОбъектМетаданных);
				КонецЕсли;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;

КонецПроцедуры
Показать
10. zender911 18.03.18 15:37 Сейчас в теме
Огромное спасибо, все получилось. Только один вопрос, ну это понятно, что не к вам, а к разработчикам. Получается все равно нужно править конфигурацию, а вроде как, этого мы хотели избежать с помощью расширений, ну может исправят в будущем...
11. t.v.s. 79 18.03.18 19:08 Сейчас в теме
(10) Ну теоретически можно и не править, расширением оно тоже работает.
Другое дело, что если вы хотите использовать новые возможности, то нужно режим совместимости у конфигурации менять. Но это меняет только корень, да и в последующем новые релизы будут штатно поддерживать 8.3.11
12. hanio 46 07.06.18 09:29 Сейчас в теме
Дорогой ты просто чудо сделал понимаешь? я думал все кранты моему расширению придется подождать обновления БСП в конфигурации ЗУП 3.1, потом накатить обновления и уже потом цеплять расширение. Но с твоим расширением все идентификаторы появились даже на моей версии БВСП 2.4.2.124. ТАК ДЕРЖАТЬ!!!
Новиков; +1 Ответить
13. hanio 46 07.06.18 10:07 Сейчас в теме
Виктор вы не забудете что там еще перечисления и прочее будет появляться я уже перешел на платформу 8.3.121440 из-за перечислений так что думаю надо свое расширение вам своевременно обновлять.
14. t.v.s. 79 07.06.18 15:01 Сейчас в теме
В ближайшем будущем проверю как дела с перечислениями, если что доделаю расширение. Мы на 8.3.12 перешли совсем недавно, месяца три назад
15. dinn 08.06.18 11:04 Сейчас в теме
Спасибо! Реально с расширениями пока как на минном поле, вроде с поддержки не снимаешь и должно быть меньше времени уходить, но функционал расширения всеравно приходится проверять и адаптировать под обновления конфигурации.
16. Brawler 387 09.06.18 12:19 Сейчас в теме
Я до такого сам дошел, однако не все проблемы это дело решает.

В типовых бывает есть и проверка версии текущего режима совместимости установленного в конфе с тем что в коде зашит как поддерживаемый.
Тогда приходится лезть и ломать эту проверку все так же редактируя типовыую.

В БСП 3.Х ряд проблем 1С уже порешала давно, однако в типовых пока этой БСП не видел.
17. t.v.s. 79 09.06.18 13:10 Сейчас в теме
(16)
В БСП 3.Х ряд проблем 1С уже порешала давно, однако в типовых пока этой БСП не видел.

Есть стойкое ощущение, что мы БСП 3 еще не скоро увидим в типовых

Тогда приходится лезть и ломать эту проверку все так же редактируя типовыую.

Либо опять же перекрывать проверку в расширении.
18. Brawler 387 09.06.18 13:49 Сейчас в теме
(17) пытался, но видимо в ряде ситуаций перекрываемый код не хочет перекрываться при запуске системы, возможно это багофичи такие в платформе
25. user627612_petroa 28.06.18 10:09 Сейчас в теме
(17)
Есть стойкое ощущение, что мы БСП 3 еще не скоро увидим в типовых

Поддерживаю )))

(17)
Либо опять же перекрывать проверку в расширении.

Верно, у меня получилось
19. Brawler 387 14.06.18 19:26 Сейчас в теме
Придумали как обходить ошибки связанные со сменой режима совместимости с 8.3.10 на 8.3.12?
Например, если к примеру в ERP под юзером с правами маркетолога и манагера по продажам попытаться открыть справочник номенклатуры то ловится ошибка


{ОбщийМодуль.ПодборТоваровСервер.Модуль(2872)}: Поле объекта не обнаружено (ВидыНоменклатурыСоздать)
Форма.Элементы.ВидыНоменклатурыСоздать.Видимость = Ложь;


Я воспринимаю это как ошибку платформы, так как что-то не нашел в описании к платформе 8.3.12 такого нового поведения.

Суть того что происходит: В форме списка номенклатуры есть панель справа в которой можно осуществлять навигацию по иерархии папок или видов номенклатуры. В навигации по видам номенклатуры используется динамический список по справочнику ВидыНоменклатуры. В этом списке есть контекстное меню с добавленными разработчиками конфигурации вручную командами типа Создать, СоздатьГруппу... Команды самые стандартные, платформенные. В коде же разработчики конфы проверяют есть ли у юзера права на редактирование справочника ВидыНоменклатуры и если их нет, то программно прячут пункты контекстного меню. Но вот на 8.3.12 по видимому платформа стала сама прятать эти пункты меню со стандартными командами, если у юзера нет прав. В итоге имеем массу ошибок. Было дело думаю давай заглушек расширением наставлю, а оно то в одном месте, то в другом глюк, и сразу бросил это дело, так как так можно всю конфу заплатками облепить.
20. t.v.s. 79 14.06.18 19:47 Сейчас в теме
(19) Мы для себя решили не бороться с такими глюками, а просто подождать пока конфа "дорастет" до нужной версии платформы. В критичных местах нивелируем кодом типа.
&НаСервере
Процедура ПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка)
	
	// Добавление этих элементов необходимо для того, чтобы при выполнении штатного кода модуля "ПодборТоваровСервер"
	// не вываливалось с ошибкой об их отсутствии (функция "УстановитьСтраницуВариантаНавигации()" (2865))
	// при попытке открыть подбор номенклатуры под пользователем, у которого нет прав на изменение видов номенклатуры.
	Если Элементы.Найти("ВидыНоменклатурыСоздать") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ВидыНоменклатурыСоздать", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("ВидыНоменклатурыСоздатьГруппу") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ВидыНоменклатурыСоздатьГруппу", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("ВидыНоменклатурыИзменить") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ВидыНоменклатурыИзменить", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("ВидыНоменклатурыСкопировать") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ВидыНоменклатурыСкопировать", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("ВидыНоменклатурыУстановитьПометкуУдаления") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ВидыНоменклатурыУстановитьПометкуУдаления", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("СоздатьВидНоменклатуры") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СоздатьВидНоменклатуры", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("СоздатьГруппуВидовНоменклатуры") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СоздатьГруппуВидовНоменклатуры", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("СоздатьГруппуНоменклатуры") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СоздатьГруппуНоменклатуры", Тип("КнопкаФормы"));
	КонецЕсли;
	
	Если Элементы.Найти("ИерархияНоменклатурыКонтекстноеМенюСоздатьГруппу") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ИерархияНоменклатурыКонтекстноеМенюСоздатьГруппу", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("ИерархияНоменклатурыКонтекстноеМенюИзменить") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ИерархияНоменклатурыКонтекстноеМенюИзменить", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("ИерархияНоменклатурыКонтекстноеМенюСкопировать") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ИерархияНоменклатурыКонтекстноеМенюСкопировать", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("ИерархияНоменклатурыКонтекстноеМенюУстановитьПометкуУдалени­я") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("ИерархияНоменклатурыКонтекстноеМенюУстановитьПометкуУдалени­я", Тип("КнопкаФормы"));
	КонецЕсли;
	
	Если Элементы.Найти("СписокСтандартныйПоискНоменклатураСоздать") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СписокСтандартныйПоискНоменклатураСоздать", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("СписокСтандартныйПоискНоменклатураСкопировать") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СписокСтандартныйПоискНоменклатураСкопировать", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("СписокСтандартныйПоискНоменклатураУстановитьПометкуУдаления­") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СписокСтандартныйПоискНоменклатураУстановитьПометкуУдаления­", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("СписокРасширенныйПоискНоменклатураСоздать") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СписокРасширенныйПоискНоменклатураСоздать", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("СписокРасширенныйПоискНоменклатураСкопировать") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СписокРасширенныйПоискНоменклатураСкопировать", Тип("КнопкаФормы"));
	КонецЕсли;
	Если Элементы.Найти("СписокРасширенныйПоискНоменклатураУстановитьПометкуУдаления­") = Неопределено Тогда
		НовЭлемент = ЭтаФорма.Элементы.Добавить("СписокРасширенныйПоискНоменклатураУстановитьПометкуУдаления­", Тип("КнопкаФормы"));
	КонецЕсли;
	
КонецПроцедуры
Показать

Костыль конечно, но городить что-то более основательное нет желания, потом все равно исправят
21. Brawler 387 14.06.18 20:46 Сейчас в теме
(20) ну да, временный компромисс
22. t.v.s. 79 14.06.18 20:52 Сейчас в теме
(21) А чтобы не городить такое в куче мест, можно перехватить процедуру ПриСозданииНаСервере из переопределяемого общего модуля. По крайней мере в УТ, КА и ERP 95% форм в него заходят. Весь код в одном месте будет и удалить потом легко
Grigoripal; +1 Ответить
23. Brawler 387 14.06.18 21:11 Сейчас в теме
(22) Идея понятна.
Если не секрет, какой объем затычек таким образом сделан?
В 1С не писали по этой фиче?
Может это реально косяк такой.
Хотя с другой стороны судя по тому количеству кода, что они пишут сейчас в типовой сами, наверное это их забадало и решили платформу научить делать скрытие кнопок самостоятельно.
24. user627612_petroa 28.06.18 10:01 Сейчас в теме
Спасибо Вам! Помогло данное решение.
26. Help Center 28.06.18 10:23 Сейчас в теме
27. wing 20 04.07.18 19:29 Сейчас в теме
А что делать, если все выше написанное не помогает? При обновлении все равно выдается сообщение об ошибке...
1С жалуется на справочник и регистр сведений.

В расширении перекрыт метод &После("ПриОпределенииИсключенийНеразделенныхДанных") модуля ИнтеграцияСТехнологиейСервиса, в менеджере справочника ИдентификаторыОбъектовМетаданных перекрыт &Вместо("СвойстваКоллекцийОбъектовМетаданных").
Чего ей ещё не хватает?
28. t.v.s. 79 04.07.18 21:06 Сейчас в теме
(27) Какая у вас версия платформы и режим совместимости? И скриншот ошибки было бы неплохо
29. wing 20 05.07.18 05:14 Сейчас в теме
(28) Да ошибка та же, что у вас в заголовке темы, только имена объектов другие: справочник и регистр сведений.
Платформа 8.3.11.3034, режим совместимости: не использовать. Конфигурация УП. Модифицированная псевдофранчами (судя по ужастному коду). Пытался обновить до версии 2.4.2.144. Но первый запуск после обновления вызывает "рекурсию": упомянутая выше ошибка с возможностью лишь выйти, перезапустить, или открыть обработку, т.е. обновление не завершается.
30. t.v.s. 79 05.07.18 06:34 Сейчас в теме
(29) А расширение вообще применилось? Снимите у него безопасный режим и защиту от опасных действий
31. wing 20 05.07.18 07:13 Сейчас в теме
(30) Спасибо большое. Поиграть с галками расширения не догадался. Самим расширением то пользуемся уже давно, т.е. оно не могло не примениться. Если б оно было новое, то проще было бы отключить, но данные терять не хочется...
32. wing 20 05.07.18 07:23 Сейчас в теме
Вопрос не совсем по статье, но тоже в тему расширений, вдруг уже были мысли: Как будет правильно настроить обновление данных при изменении версии расширения? Какие модули и функции стоит перекрыть, и как проверить сам факт изменения версии, чтобы вызвать нужные обработчики?

Ситуация на данный момент самая стандартная: производится перенос изменений из основной базы в расширение. Это должно вызвать и перенос данных в объекты расширения. Для каждого этапа ваять отдельную обработку переноса несколько нелогично. Корректнее было бы использовать типовой механизм обновления, но с опорой уже на версию расширения, а не подсистемы.
33. t.v.s. 79 05.07.18 07:28 Сейчас в теме
(32) Таким вопросом не задавался, но думаю стоит посмотреть как это сделано в БСП и перекрыть нужные методы
34. wing 20 06.07.18 09:50 Сейчас в теме
(33) Этот вопрос решил. там всего 2 модуля надо перекрыть и один добавить. Довольно просто.

Но при переносе объектов из конфы в расширение обнаружена серьезная проблема: Есть справочник, в котором есть только Наименование и еще один реквизит - строка без ограничений. Этот справочник невозможно открыть в 1С, - выдается ошибка "Отсутствует отображение для типа '<некий_guid>'". У справочника нет ни одной формы. Не понимаю, чего ему от меня надо...?
Еще хуже обстоит дело с регистром сведений, - выдается ошибка "Отсутствует отображение для типа '<некий_guid>'" и далее две кнопки: Закрыть или Перезапустить. Но у РС я догадываюсь о возможной причине: в одном из измерений используется перечисление, а перечисления в расширения добавлены только в 12 релизе. Будем думать, что это глюк именно 11 релиза...
Но почему простейший справочник нельзя создать в расширении? - это непонятно...
Да. Пробовал менять вид расширения, - не помогает (предположил, что новые объекты будут работать только в режиме "Дополнение").
Оставьте свое сообщение