| 
    
            
         
         | 
    
    
  | 
Связь данных из 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).Текст); КонецЕсли; ну так на всякидку ;)  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |