УТ 11.4 допреквизиты

1. starjevschik 19.03.19 22:54 Сейчас в теме
11.4.7.114 (последняя вроде на сегодня версия)
Есть база, в которой некое количество видов номенклатуры. У каждого вида набор допреквизитов.
Есть такая же пустая база.
Переношу из первой во вторую виды номенклатуры с допреквизитами. Правила написал, виды, наборы, план видов характеристик. Не забыл типы значений. В видах номенклатуры все вроде нормально, допреквизиты, наборы, все ок.
Делаем новую номенклатуру - норм. Но потом открываем закладку "Карточка", кликаем там в любой допреквизит и получаем ошибку
{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(1825)}: Необрабатываемый тип параметр расшифровки.


Код процедуры вот такой. Расшифровка имеет тип Строка и выглядит вот так
ДополнительныйРеквизитЗначение_E2DBC868x68BCx11E8x8B97x000C2961BCC3_B26F9853xBF58x11E8xB9A5x000C2961BCC3


	Если Не Элементы.ГруппаГруппировкаЛевоПраво.Видимость Тогда
		Элементы.ГруппаГруппировкаЛевоПраво.Видимость=Истина;
	КонецЕсли;
	
	Если ТипЗнч(Расшифровка) = Тип("Строка")
		Или ТипЗнч(Расшифровка) = ТипЗнч(Расшифровка) = Тип("ФорматированнаяСтрока") Тогда
		ИмяЭлемента = Расшифровка;
		Гиперссылка = "";
	ИначеЕсли ТипЗнч(Расшифровка) = Тип("Структура") Тогда
		ИмяЭлемента = Расшифровка.ИмяЭлемента;
		Гиперссылка = Расшифровка.Гиперссылка;
	Иначе
		ТекстИсключения = НСтр("ru = 'Неподдерживаемый тип параметры расшифровки.'");
		ВызватьИсключение ТекстИсключения;
	КонецЕсли;
		
	Если СтрНайти(ИмяЭлемента, "ГиперссылкаПерейти") <> 0 Тогда
		ПараметрыПереходаПоГиперссылке = ПараметрыПереходаПоГиперссылке(ИмяЭлемента, Гиперссылка);
		ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ПараметрыПереходаПоГиперссылке);
	ИначеЕсли Элементы.Найти(ИмяЭлемента) <> Неопределено Тогда
		Если ЕстьПравоРедактирования Тогда
			Элементы.СтраницыКарточкаНоменклатуры.ТекущаяСтраница = Элементы.СтраницаРеквизитыНоменклатуры;
			
			РазвернутьСворачиваемуюГруппу(ИмяЭлемента);
			ТекущийЭлементВыбор = ИмяЭлемента;
			ПодключитьОбработчикОжидания("УстановитьАктивностьТекущийЭлемент",0.0001,Истина);
		Иначе
			Если Объект.Свойство(ИмяЭлемента) Тогда
				Если ТипЗнч(Объект[ИмяЭлемента]) <> Тип("Строка")
					И ТипЗнч(Объект[ИмяЭлемента]) <> Тип("Булево")
					И ЗначениеЗаполнено(Объект[ИмяЭлемента]) Тогда
					ПоказатьЗначение(,Объект[ИмяЭлемента]);
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	Иначе
		ТекстИсключения = НСтр("ru = 'Необрабатываемый тип параметр расшифровки.'");
		ВызватьИсключение ТекстИсключения;
	КонецЕсли;
Показать


Что ей надо?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dmitrij-2 45 20.03.19 06:09 Сейчас в теме
(1) Видимо не все перенесли
3. EVKash 14 20.03.19 08:30 Сейчас в теме
(1) Лишнего перенесли.
У вас строка расшифровки скорей всего из старой базы, т.е.
ДополнительныйРеквизитЗначение_E2DBC868x68BCx11E8x8B97x000C2­961BCC3_B26F9853xBF58x11E8xB9A5x000C2961BCC3
не равно названию элемента допреквизита, который формируется по уникальному идентификатору.
ИмяРеквизитаЗначение = "ДополнительныйРеквизитЗначение_" + СтрЗаменить(ВРег(Строка(ОписаниеСвойства.Набор.УникальныйИдентификатор())), "-", "x") + "_" + СтрЗаменить(ВРег(Строка(ОписаниеСвойства.Свойство.УникальныйИдентификатор())), "-", "x");
4. starjevschik 20.03.19 09:25 Сейчас в теме
(3) интересная мысль. Но УИД же не переносится явно. В реквизитах набора и свойства его нет... где ж мне его искать-то.
5. starjevschik 20.03.19 09:43 Сейчас в теме
(3) нашел в коде это место, где формируется имя реквизита на форме.
Сравнил с тем, что в ошибке. Они одинаковые.
УИДы берутся же из этой же базы, т.е. уж какие тут есть, такие и есть. Из старой базы они ни в какие отдельные реквизиты не записываются.
Пока остается непонятным.
6. EVKash 14 20.03.19 09:54 Сейчас в теме
(5)
Сравнил с тем, что в ошибке. Они одинаковые.

Если бы были одинаковые, то условие
ИначеЕсли Элементы.Найти(ИмяЭлемента) <> Неопределено Тогда

нормально отрабатывало.
7. starjevschik 20.03.19 10:11 Сейчас в теме
(6) Нет, там этих элементов на форме нет. Они выводятся в поле табличного документа, а открываются для редактирования через обработку расшифровки. Закладка "Карточка" формы элемента номенклатуры.
А! может там еще кроме табличного документа должны создаваться где-то и элементы формы? а не создаются. Может так?...
8. Tejmur 04.03.22 16:18 Сейчас в теме
(7) В итоге решили вопрос? В чем было дело?
9. starjevschik 04.03.22 16:26 Сейчас в теме
(8) наверное решил, но не помню уже совсем )
10. nano1c 171 31.10.22 20:17 Сейчас в теме
(8)
Это глюк конфигурации - если выбрать ВидНоменкл поставленный на удаление то как раз это и будет происходить, сейчас в отладчике пару часов отлавливал (1с как обычно и не чешется по этому поводу):

Процедура ЗаполнитьНаборыСДополнительнымиРеквизитами(ВсеНаборы, НаборыСРеквизитами) Экспорт
	
	Ссылки = ВсеНаборы.ВыгрузитьКолонку("Набор");
	Индекс = Ссылки.Найти(Неопределено);
	Пока Индекс <> Неопределено Цикл
		Ссылки.Удалить(Индекс);
		Индекс = Ссылки.Найти(Неопределено);
	КонецЦикла;
	
	СвойстваСсылок = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(
		Ссылки, "ПометкаУдаления, ЭтоГруппа, Предопределенный, Родитель, ИмяПредопределенныхДанных, ИмяПредопределенногоНабора");
	
	Для Каждого СвойстваСсылки Из СвойстваСсылок Цикл
		ТипСсылки = Неопределено;
		МетаданныеВладельца = МетаданныеВладельцаЗначенийСвойствНабора(СвойстваСсылки.Значение, Истина, ТипСсылки);
		
		Если МетаданныеВладельца = Неопределено Тогда
			//Возврат;    //Юрий изза одного пом. на уд. видаНоменкл происходила потеря структуры общих реквизитов!  
			продолжить;//Юрий 
		КонецЕсли;
Показать


Альтернативное решение:
МетаданныеВладельцаЗначенийСвойствНабора(СвойстваСсылки.Значение, Истина, ТипСсылки) - вот если тут вместо истина подставить ложь, тоже будет работать, но только будут показываться свойства помеченного на удаление ВидаНом.
Оставьте свое сообщение

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