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

Загрузка в ТЧ из Excel

Автор mashencev_anton, 15 мая 2015, 09:35

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

mashencev_anton

Заполняю ТЧ обработки из EXCEL вот таким вот образом для примера:
Попытка
        ДокExcel = ПолучитьCOMОбъект(ИмяФайла);
        Лист = ДокExcel.Sheets(1);
    Исключение
        Предупреждение("Документ не открыт!!!");
        Возврат;
    КонецПопытки;
   
   
    ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;
    Для Колонка = 1 по ВсегоКолонок цикл
            Значение = СокрЛП(Лист.Cells(Колонка).Value);
       
           
            а=Объект.Товары.Добавить();
            а.Номенклатура=Значение;
           
        КонецЦикла;

и вот собственно в чем вопрос: Почему когда заполняемый реквизит ТЧ "Номенклатура" имеет ссылочный тип, то он не заполняется, а если тип СТРОКА то заполняется?

vitasw

потому что типы разные. нельзя впихнуть невпихуемое.

mashencev_anton

Цитата: vitasw от 15 мая 2015, 09:41
потому что типы разные. нельзя впихнуть невпихуемое.
это печально(((( а как быть?

Kironten

Цитата: mashencev_anton от 15 мая 2015, 09:49
Цитата: vitasw от 15 мая 2015, 09:41
потому что типы разные. нельзя впихнуть невпихуемое.
это печально(((( а как быть?
Как и все в таком случае: Ищите в базе элемент по коду, по наименованию, по цвету глаз, по религиозной принадлежности, по сочетанию этого всего.
Получайте ссылку (если находите) и уже её пишите в ТЧ.

mashencev_anton

Возвращаясь к прошлому...Как 1с получает данные из Excel??  Можно ли выбрать данные только определенного столбца?

Дмитрий@

ЦитироватьВозвращаясь к прошлому...Как 1с получает данные из Excel??  Можно ли выбрать данные только определенного столбца?
Как в программе вы зададите так они и будут выбиратся, все в ваших руках.

mashencev_anton

Цитата: Дмитрий@ от 19 мая 2015, 15:38
ЦитироватьВозвращаясь к прошлому...Как 1с получает данные из Excel??  Можно ли выбрать данные только определенного столбца?
Как в программе вы зададите так они и будут выбиратся, все в ваших руках.
Как получить определенную колонку из Excel?

Дмитрий@

Вам нужно почитать про оператор Cells, его аргумент может иметь несколько видов.

mashencev_anton

В общем сделал так:
&НаКлиенте
Процедура ЗаполнитьТЧ(Команда)

Объект.Товары.Очистить();                      

Попытка
COMОбъект = Новый COMОбъект("Excel.Application");
Workbook   = COMОбъект.Workbooks.Open(ИмяФайла);
ExcelЛист  = COMОбъект.Sheets(1);
ActiveCell = COMОбъект.ActiveCell.SpecialCells(11);
RowCount = ActiveCell.Row;
ColumnCount = ActiveCell.Column;

Для Строка = 1 По RowCount Цикл   
Для Колонка = 1 По ColumnCount Цикл
Значение = СокрЛП(ExcelЛист.Cells(Строка,2).Value);
Значение2 = СокрЛП(ExcelЛист.Cells(Строка,1).Value);
Значение3 = СокрЛП(ExcelЛист.Cells(Строка,3).Value);
КонецЦикла; 

ДанныеНаСервере(Значение,Значение2,Значение3);
КонецЦикла;
WorkBook.Close();
Исключение
COMОбъект.Quit();
COMОбъект = 0;
СообщениеОбОшибке = НСтр("ru = 'Не удалось прочитать данные из файла. Подробности: '")
+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение СообщениеОбОшибке; 

КонецПопытки;                   

КонецПроцедуры


&НаСервере
Процедура  ДанныеНаСервере(Значение,Значение2,Значение3)

НоваяСтрока=Объект.Товары.Добавить();
НайденноеЗначение=Справочники.Номенклатура.НайтиПоНаименованию(Значение,Истина);
НоваяСтрока.Номенклатура=НайденноеЗначение;
НоваяСтрока.Атрикул=Значение2;
НоваяСтрока.ЦенаИзПрайса=Значение3;

КонецПроцедуры
работает так как нужно, но я сомневаюсь в правильности решения...

Теги:

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

Рейтинг@Mail.ru

Поиск