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

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

Автор 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

Поиск