Как выгрузить данные из таблицы значений в табличную часть документа?

  • Автор темы Karambol
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Karambol

#1
Как можно выгрузить данные из таблицы значений в табличную часть документа? Есть какая-нибудь ф-я или вручную придется обрабатывать? Заранее спасибо! :)
 
G

gudlev

#3
Делаю внешнюю обработку для загрузки из XML в Табличную часть документа ТребованиеНакладная
Вот модуль
Файл = Новый ЧтениеXML;
Файл.ОткрытьФайл(пвИмяФайла);
Файл.Прочитать();
Тип = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
//Создаем Таблицу Значений
ТаблицаЗначений = Новый ТаблицаЗначений;
ТаблицаЗначений.Колонки.Добавить("Номенклатура",Тип,"Номенклатура");
ТаблицаЗначений.Колонки.Добавить("Количество",Новый ОписаниеТипов("Число"),"Количество");
Пока Файл.Прочитать() Цикл
Если Файл.Имя = "Mat" Тогда
Если Файл.ТипУзла = ТипУзлаXML.НачалоЭлемента И Файл.ЗначениеАтрибута(4) <> "Deleted" Тогда
Номенклатура = Файл.ЗначениеАтрибута(0);
Количество = Файл.ЗначениеАтрибута(3);
НайденнаяСсылка = Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура);
Если Не НайденнаяСсылка = Справочники.Номенклатура.ПустаяСсылка() Тогда
СтрокаТабЗначений = ТаблицаЗначений.Добавить();
СтрокаТабЗначений.Номенклатура = НайденнаяСсылка;
СтрокаТабЗначений.Количество = Количество;
Иначе
Сообщить(Номенклатура + " Нет в справочнике");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Файл.Закрыть();
ТаблицаЗначений.Свернуть("Номенклатура","Количество");
СсылкаНаОбъект.Материалы.Загрузить(ТаблицаЗначений);​
Где СсылкаНаОбъект это реквизит ДокументСсылка.ТребованиеНакладная
Но из ТаблицыЗначений данные не загружаются в Табличную часть документа. Подскажите, что сделал не так?
 
E
#5
Может быть вместо:
СсылкаНаОбъект.Материалы.Загрузить(ТаблицаЗначений);

Сделать это:
СтрокаДока = СсылкаНаОбъект.Материалы.Добавить();
Номенклатура = СтрокаТабЗначений.Номенклатура;
Количество = СтрокаТабЗначений.Количество;
СсылкаНаОбъект.Записать();
 
31.08.2009
5
0
#6
Может быть вместо:
СсылкаНаОбъект.Материалы.Загрузить(ТаблицаЗначений);

Сделать это:
СтрокаДока = СсылкаНаОбъект.Материалы.Добавить();
Номенклатура = СтрокаТабЗначений.Номенклатура;
Количество = СтрокаТабЗначений.Количество;
СсылкаНаОбъект.Записать();
Во-первых, если СсылкаНаОбъект - это ссылка, а не сам объект, то её нельзя записать... И грузить в таб часть по ссылке тоже нет никакого смысла. Ведь прежде чем модифицировать объект его нужно получить. Если грузиться всё равно не будет, то, возможно, не совпадают имена колонок таблиц загружаемой и той, в которую загружают
Объект = СсылкаНаОбъект.ПолучитьОбъект();
И уже дальше работать с табличной частью Материалы ОБЪЕКТА, а не ССЫЛКИ на объект.

P.S. Опять же, всё это если СсылкаНаОбъект - действительно ссылка, а не сам объект. Решать проблему я бы начал с этого момента...
 
Статус
Закрыто для дальнейших ответов.