Значение не является значением объектного типа (Closed)

1. OMOIVA 29.01.21 12:32 Сейчас в теме
Доброго дня!

После обновления до 8.3.18.1289 (Обычные формы), перестала работать запись реквизита справочника.
Есть Справочник, CMS1C_Категории, в нём хранится список категорий, которые выгружаются на сайт.
Есть ФормаЭлемента, в которой существует реквизит "Описание". Судя по всему, в коде используется JS, который форматировал текст в пригодный для выгрузки на сайт.

После обновления, при записи, вылетает ошибка {Справочник.CMS1C_Категории.Форма.ФормаЭлемента.Форма(45)}: Значение не является значением объектного типа (Closed).
Т.е. изменения реквизита объекта справочника CMS1C_Категории, не сохраняется.

Участок кода отвечающий за сохранение.

Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	ЗаписатьИзображения();
	ЗаполнитьТЧКатегорииПоФильтрам();
	ЗаполнитьСтрокуConditions();
	#Если Не ВебКлиент Тогда
		Попытка	
			// Если данные в редакторе "TinyMCE" не изменялись, получить текст мы не можем.
			Если Не Элементы.ОписаниеHTML.Документ.parentWindow.Closed Тогда
				ТекстСообщения = Элементы.ОписаниеHTML.Документ.parentWindow.eval ("tinyMCE.activeEditor.getContent()");			
			КонецЕсли;
		Исключение
			ТекстСообщения = Неопределено;
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
		
		Если ТекстСообщения = Неопределено Тогда
			Возврат;
		КонецЕсли;
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
4. na688 29.01.21 13:38 Сейчас в теме +0.82 $m
Попробуйте вместо parentWindow DefaultView
и вместо eval теперь тоже надо по-другому: Элементы.ОписаниеHTML.Document.DefaultView.НазваниеМетодаJS();
т.е. как-то так:

Если Не Элементы.ОписаниеHTML.Документ.DefaultView.Closed Тогда
	ТекстСообщения = Элементы.ОписаниеHTML.Документ.DefaultView.tinyMCE.activeEditor.getContent();
КонецЕсли;
7. na688 29.01.21 21:51 Сейчас в теме
(6) Так не срабатывает?

Body.Документ.DefaultView.CKEDITOR.instances.editor1.setData( '"+html+"', function()
    |{
    |    this.checkDirty();  // true
    |});
8. OMOIVA 01.02.21 09:54 Сейчас в теме
Вот так заработало:
Body.Документ.DefaultView.CKEDITOR.instances.editor1.setData( html , "function()
    |{
	|    this.checkDirty();  // true
	|});");
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. OMOIVA 29.01.21 12:34 Сейчас в теме
Так же, есть внешняя обработка, которая так же работала до обновления.
Обработка предназначена для форматирования описания товара.

Ошибка обработки:

{ВнешняяОбработка.HTMLредактор.МодульОбъекта(148)}: Значение не является значением объектного типа (Eval)
	Body.Документ.parentWindow.Eval("CKEDITOR.instances.editor1.setData( '"+html+"', function()
3. ZergKRSK 129 29.01.21 12:58 Сейчас в теме
По этой причине никогда не бегу ставить суперновую платформу...
4. na688 29.01.21 13:38 Сейчас в теме +0.82 $m
Попробуйте вместо parentWindow DefaultView
и вместо eval теперь тоже надо по-другому: Элементы.ОписаниеHTML.Document.DefaultView.НазваниеМетодаJS();
т.е. как-то так:

Если Не Элементы.ОписаниеHTML.Документ.DefaultView.Closed Тогда
	ТекстСообщения = Элементы.ОписаниеHTML.Документ.DefaultView.tinyMCE.activeEditor.getContent();
КонецЕсли;
5. OMOIVA 29.01.21 13:46 Сейчас в теме
Огромное спасибо, Ваш код работает.
6. OMOIVA 29.01.21 13:50 Сейчас в теме
Микроскопическая просьба, как победить это?

Процедура УстановитьКодHtmlJS(Знач html, мBody) Экспорт 
	
	Body = мBody;
	
	html = СтрЗаменить(html,Символы.ПС," ");		
	
	Body.Документ.parentWindow.Eval("CKEDITOR.instances.editor1.setData( '"+html+"', function()
	|{
	|    this.checkDirty();  // true
	|});");	
	
КонецПроцедуры
Показать


Текст ошибки:
{ВнешняяОбработка.HTMLредактор.МодульОбъекта(148)}: Значение не является значением объектного типа (Eval)
Body.Документ.parentWindow.Eval("CKEDITOR.instances.editor1.setData( '"+html+"', function()
7. na688 29.01.21 21:51 Сейчас в теме
(6) Так не срабатывает?

Body.Документ.DefaultView.CKEDITOR.instances.editor1.setData( '"+html+"', function()
    |{
    |    this.checkDirty();  // true
    |});
8. OMOIVA 01.02.21 09:54 Сейчас в теме
Вот так заработало:
Body.Документ.DefaultView.CKEDITOR.instances.editor1.setData( html , "function()
    |{
	|    this.checkDirty();  // true
	|});");
9. user1973113 30.07.23 12:27 Сейчас в теме
(7)здравствуйте, вот у меня тоже не сохраняются изображения и описание, выгружаю на сайт ничего нет, а как эти коды делать и куда вписывать))))))
Оставьте свое сообщение

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