• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Karambol

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

Karambol

Стормозил.... ЗагрузитьТабличнуюЧасть()
 
G

gudlev

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

unknown181538

Отладчик!!
"Файл.ЗначениеАтрибута(0);" возвращает то, что вам надо?
 
E

ech

Может быть вместо:
СсылкаНаОбъект.Материалы.Загрузить(ТаблицаЗначений);

Сделать это:
СтрокаДока = СсылкаНаОбъект.Материалы.Добавить();
Номенклатура = СтрокаТабЗначений.Номенклатура;
Количество = СтрокаТабЗначений.Количество;
СсылкаНаОбъект.Записать();
 
I

ilyuhin

Может быть вместо:
СсылкаНаОбъект.Материалы.Загрузить(ТаблицаЗначений);

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!