Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
10 окт 2024, 23:10

Программное создание элемента справочника на основе данных ТабДок

Автор helgе, 08 ноя 2018, 11:57

0 Пользователей и 1 гость просматривают эту тему.

helgе

Ситуация такая: есть внешняя обработка есть файл *.xls, он загружается в ТабДок в этом документе к примеру есть поля: "Код", "Наименование", "Артикул" и там есть значения ну  типа: "00000025", "Кирпич", "НБ-789000". Так вот, задание такое, надо чтобы новый элемент справочника создавался программно, но для этих полей (Код,Артикул,Наименование) данные брались из ТабличногоДокумента.
Конфигурация УТ10.3.
Я сделал так:
Процедура ЗагрузитьНажатие(Элемент)
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать( ВыбратьФайл);
ТабДок.Показать("Мой файл");

РазмерТаблицы=ТабДок.ВысотаТаблицы;

Для строка=2 ПО РазмерТаблицы Цикл
НовыйСправочник=Справочники.Номенклатура.СоздатьЭлемент();
НовыйСправочник.Код=ТабДок.ПолучитьОбласть(Строка,1,Строка,1);
НовыйСправочник.Артикул=ТабДок.ПолучитьОбласть(Строка,2,Строка,2);
НовыйСправочник.Наименование=ТабДок.ПолучитьОбласть(Строка,3,Строка,3);
НовыйСправочник.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
НовыйСправочник.ЕдиницаХраненияОстатков = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
НовыйСправочник.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
НовыйСправочник.Записать();
    КонецЦикла;
КонецПроцедуры

ТабДок показывает, но элемент справочника не создаёт.:dfbbdrfb:
Выдаёт ошибку: ""Ошибка при вызове метода контекста (Записать)  НовыйСправочник.Записать();""

oleg-x

Так посмотрите перед тем как записать, какие значения принимают реквизиты справочника.

    НовыйСправочник.Код=ТабДок.ПолучитьОбласть(Строка,1,Строка,1); //Зачем присваивать код, он формируется автоматически, если хотите свой, то проверяйте уникальность кода перед присваиванием.
НовыйСправочник.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");//Здесь все ок, а вот дальше косяк.
НовыйСправочник.ЕдиницаХраненияОстатков = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");  // в УТ 10.3 это подчиненный справочник, у нового элемента его предварительно надо создать, если и найдется, то владелец будет другая номенклатура.
//Должно быть так
НовыйСправочник.ЕдиницаХраненияОстатков = фСоздатьЕденицуХраненияОстатков();

Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Похожие темы (5)

Рейтинг@Mail.ru

Поиск