Где же ты прячешься, Таблица Значений?
При штатной загрузке данных в заказ из табличного документа не грузит, выдает ошибку:
Ошибка при вызове метода контекста (СопоставлениеДанныхТабличногоДокументаНаСервере)
{Обработка.ЗагрузкаДанныхИзВнешнегоИсточника.Форма.ПомощникЗагрузкиДанныхИзВнешнегоИсточника.Форма(2872)}:СопоставлениеДанныхТабличногоДокументаНаСервере();
{(1)}:Подключаемый_СтраницаСопоставлениеДанных_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее)
{Обработка.ЗагрузкаДанныхИзВнешнегоИсточника.Форма.ПомощникЗагрузкиДанныхИзВнешнегоИсточника.Форма(2678)}:А = Вычислить(ИмяПроцедуры);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: v Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: Value Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
Ошибка происходит где-то в процедуре СопоставлениеДанныхТабличногоДокументаНаСервере, но где именно, ведь там же нет никакого обращения к реквизитам формы:
Где в этом типовом коде обращение к реквизитам?
&НаСервере Процедура СопоставлениеДанныхТабличногоДокументаНаСервере() ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); ПараметрыВыполнения.ЗапуститьВФоне = Истина; ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Сопоставление внешних данных и данных нашей программы'"); Если Параметры.НастройкиЗагрузкиДанных.ЭтоЗагрузкаСправочника И Параметры.НастройкиЗагрузкиДанных.ПолноеИмяОбъектаЗаполнения = "Справочник.Номенклатура" Тогда ПараметрыВыполнения.Вставить("ДополнительныйРезультат", Истина); КонецЕсли; ПараметрыПроцедуры = Новый Структура; ПараметрыПроцедуры.Вставить("ТаблицаСопоставленияДанных", ТаблицаСопоставленияДанных.Выгрузить()); ПараметрыПроцедуры.Вставить("НастройкиЗагрузкиДанных", Параметры.НастройкиЗагрузкиДанных); ОбъектЗагрузки = ЗагрузкаДанныхИзВнешнегоИсточника.ОбъектЗагрузкиПоПолномуИмени(Параметры.НастройкиЗагрузкиДанных.ПолноеИмяОбъектаЗаполнения); ИмяМетодаДлительнойОперации = СтрШаблон("%1.%2.СопоставитьЗагружаемыеДанныеИзВнешнегоИсточника", СокрЛП(ОбъектЗагрузки.ОбъектЗагрузки.Родитель.Имя), СокрЛП(ОбъектЗагрузки.ОбъектЗагрузки.Имя)); ФоновоеЗаданиеРезультатФормирования = ДлительныеОперации.ВыполнитьВФоне(ИмяМетодаДлительнойОперации, ПараметрыПроцедуры, ПараметрыВыполнения); ФоновоеЗаданиеИдентификатор = ФоновоеЗаданиеРезультатФормирования.ИдентификаторЗадания; ФоновоеЗаданиеАдресХранилища = ФоновоеЗаданиеРезультатФормирования.АдресРезультата; ФоновоеЗаданиеАдресДополнительногоХранилища = ФоновоеЗаданиеРезультатФормирования.АдресДополнительногоРезультата; КонецПроцедуры
Однако если суслика не видно, это не значит, что его нет. Есть еще параметры формы и код сохраняет там таблицу значений, забывая ее удалить на выходе:
Расширение по корректировке этой проблемы получается несложным, на форму ПомощникЗагрузкиДанныхИзВнешнегоИсточника обработки ЗагрузкаДанныхИзВнешнегоИсточника:
&НаСервере &Вместо("СопоставлениеДанныхТабличногоДокументаНаСервере") Процедура ТР_СопоставлениеДанныхТабличногоДокументаНаСервере() // Вставить содержимое метода. ПродолжитьВызов(); Попытка ЭтаФорма.Параметры.НастройкиЗагрузкиДанных.НастройкиПоиска.Удалить("ТаблицаДублирующихСтрок"); Исключение КонецПопытки; КонецПроцедуры
Проверяем, ставим точку останова на строке с удалением, при останове таблица есть:
После отработки удаления таблицы уже нет:
После этого обработка уже без ошибки, успешно переходит на следующий этап:
Среда: УНФ 1.6.26.172 Объем: 0.8 час
Свежие комментарии