0
pandemion3
03.09.23
✎
10:52
|
Всем привет, столкнулся с такой незадачей:
Не могу связать данные "Номенклатуры" из файла Excel с номенклатурой 1С.
Есть файл, который я загружаю в 1С.
Он загружается, но в табличной части документа поле "Номенклатура" остается пустое
Наименование номенклатуры как в файле, так и в справочнике "Номенклатура" совпадает
Программа полностью самописная (Для курсового проекта)
Буду очень благодарен, если натолкнете на правильную мысль.
Ниже представляю код загрузки
&НаСервере
Процедура ЗагрузитьНаСервере()
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(Объект.Путь);
СтраницаЗаказы = ТабДок.ПолучитьОбласть("ПродажиТовара");
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(Объект.Путь);
СтраницаЗаказы = ТабДок.ПолучитьОбласть("ПродажиТовара");
Для сч1 = 2 по СтраницаЗаказы.ВысотаТаблицы Цикл
СтрокаДанных = Объект.Заказы.Добавить();
СтрокаДанных.Номенклатура = СтраницаЗаказы.Область(сч1,1).Текст;
СтрокаДанных.Количество = СтраницаЗаказы.Область(сч1,2).Текст;
СтрокаДанных.ЦенаЗаЕдиницу = СтраницаЗаказы.Область(сч1,3).Текст;
СтрокаДанных.Сумма = СтраницаЗаказы.Область(сч1,4).Текст;
ТЧ = Документы.Продажи.СоздатьДокумент();
ТЧ.Дата = ТекущаяДата();
ТЧЧ = ТЧ.Товары.Добавить();
ТЧЧ.Номенклатура = СтраницаЗаказы.Область(сч1,1).Текст;
ТЧЧ.Количество = СтраницаЗаказы.Область(сч1,2).Текст;
ТЧЧ.Цена = СтраницаЗаказы.Область(сч1,3).Текст;
ТЧЧ.Сумма = СтраницаЗаказы.Область(сч1,4).Текст;
ТЧ.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
Сообщить("Файл загружен");
КонецПроцедуры
Сразу отмечу, что данный код работает: после нажатия кнопки "Загрузить" заполняет форму обработки и создает документ "Заказы" по каждой позиции
|
|
2
nodrama
03.09.23
✎
11:00
|
1. Зачем два раза брать из Эксель
СтрокаДанных.Номенклатура = СтраницаЗаказы.Область(сч1,1).Текст;
ТЧЧ.Номенклатура = СтраницаЗаказы.Область(сч1,1).Текст;
//
Ном = Справочники.номенклатура.НайтиПоНаименованию(СтраницаЗаказы.Область(сч1,1).Текст);
СтрокаДанных.Номенклатура = Ном;
ТЧЧ.Номенклатура = Ном;
|
|
4
nodrama
03.09.23
✎
12:35
|
(3) не за что.
Можно дописать проверку и удивить преподавателя..
Ном = Справочники.номенклатура.НайтиПоНаименованию(СтраницаЗаказы.Область(сч1,1).Текст);
Если ЗначениеЗаполнено(НОм) тогда
СтрокаДанных.Номенклатура = Ном;
Иначе
НоваяНом=Справочники.Номенклатура.СоздатьЭлемент(); ну и т.д по реквизитам.
Либо Сообщить(" не найдена номенклатура " + СтраницаЗаказы.Область(сч1,1).Текст);
КонецЕсли;
ну так на всякидку ;)
|
|