Имя: Пароль:
1C
1С v8
Связь данных из Excel с данными 1с
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).Текст;
        ТЧ.Записать(РежимЗаписиДокумента.Проведение);
    КонецЦикла;
        Сообщить("Файл загружен");
    
КонецПроцедуры
Сразу отмечу, что данный код работает: после нажатия кнопки "Загрузить" заполняет форму обработки и создает документ "Заказы" по каждой позиции
1 PuhUfa
 
03.09.23
10:56
(0) А искать нужную номенклатуру в справочнике 1С по наименованию кто за тебя будет?
2 nodrama
 
03.09.23
11:00
1. Зачем два раза брать из Эксель
СтрокаДанных.Номенклатура = СтраницаЗаказы.Область(сч1,1).Текст;
ТЧЧ.Номенклатура = СтраницаЗаказы.Область(сч1,1).Текст;

//
Ном = Справочники.номенклатура.НайтиПоНаименованию(СтраницаЗаказы.Область(сч1,1).Текст);

СтрокаДанных.Номенклатура = Ном;
ТЧЧ.Номенклатура = Ном;
3 pandemion3
 
03.09.23
12:32
(2) Спасибо большое!
4 nodrama
 
03.09.23
12:35
(3) не за что.
Можно дописать проверку и удивить преподавателя..

Ном = Справочники.номенклатура.НайтиПоНаименованию(СтраницаЗаказы.Область(сч1,1).Текст);
Если ЗначениеЗаполнено(НОм) тогда
СтрокаДанных.Номенклатура = Ном;
Иначе
НоваяНом=Справочники.Номенклатура.СоздатьЭлемент(); ну и т.д по реквизитам.
Либо Сообщить(" не найдена номенклатура " + СтраницаЗаказы.Область(сч1,1).Текст);
КонецЕсли;
ну так на всякидку ;)