Имя: Пароль:
1C
1С v8
Проблема загрузки с Excel
, ,
0 Vendetta
 
25.11.13
11:18
Добрый день,возникла такая проблема: идет загрузка в документ из excel,все нормально записывает в документ, но если я хочу добавить строки или изменяю как то документ excel и стараюсь повторно сделать загрузку в документ,загружает все те же самые данные,как будто бы ничего не менялось.
Подскажите в чем может быть проблема?
1 Wobland
 
25.11.13
11:19
в незаписанности екселевского файла. следующий
2 Vendetta
 
25.11.13
11:21
нужно программно записать ексель?
3 manyak
 
25.11.13
11:22
код загрузки в студию!
4 Gusarm
 
25.11.13
11:22
нужно его просто записать
5 Vendetta
 
25.11.13
11:27
вот код загрузки:
&НаКлиенте
Функция ЗагрузитьИзExcelСписокНоменклатурыИЦены()
    строкаОкончание = 0;
    ЗагруженноеКоличество = нЕОПРЕДЕЛЕНО;
    
    ПутьКФайлу = Объект.ПутьКФайлу;
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.Application.Workbooks.Open(ПутьКФайлу);
    Исключение
        Возврат ЗагруженноеКоличество;
    КонецПопытки;
    
    НомерЛиста = 2;
    Sh = Excel.Sheets(НомерЛиста);
    
    ТекСтрока = Объект.НомерНачальнойСтрокиВExcel - 1;
    ПрерватьЦикл = 0;
    Пока 1 = 1 Цикл
        ТекСтрока = ТекСтрока + 1;
        НаименованиеТовара = СокрЛП(Sh.Cells(ТекСтрока,Объект.НомерСтолбцаАртикулВExcel).Value);
        Если (СокрЛП(НаименованиеТовара) = "" И НЕ СокрЛП(Sh.Cells(ТекСтрока,3).Value) = "") ИЛИ СокрЛП(НаименованиеТовара) = "отсутствует" Тогда
            Сообщить("Нет такого Артикула "+ СокрЛП(Sh.Cells(ТекСтрока,3).Value));
        КонецЕсли;
        НаименованиеТовара = стрЗаменить(НаименованиеТовара,символ(160),"");
        Если строкаОкончание = 0 Тогда
            Если ПрерватьЦикл = 10 Тогда
                Прервать;
            КонецЕсли;    
        Иначе
            Если ТекСтрока > строкаОкончание Тогда
                Прервать;
            КонецЕсли;    
        КонецЕсли;    
        
        Если ПустаяСтрока(НаименованиеТовара) = 1 Тогда
            ПрерватьЦикл = ПрерватьЦикл + 1;
            Продолжить;
        КонецЕсли;    
        
        ПрерватьЦикл=0;
        
        Попытка
            КоличествоФакт = Число(Sh.Cells(ТекСтрока,Объект.НомерСтолбцаЦенаВExcel).Value);
        Исключение
            КоличествоФакт = 0
        КонецПопытки;    
        
        Если КоличествоФакт = 0 Тогда Продолжить; КонецЕсли;
        
        Номенклатура = НайтиНоменклатуруПрисланнуюИзExcel(НаименованиеТовара, КоличествоФакт);
        Если НЕ Номенклатура  ТОгда
            Сообщить("Нулевое Количество Товара " + НаименованиеТовара+"/"+СокрЛП(Sh.Cells(ТекСтрока,3).Value)) ;//+ "    " + Строка(Номенклатура) + "    " + Цена_01);
        //ИНаче
        //    Сообщить("Найден" + НаименованиеТовара + "    " + Строка(Номенклатура) + "    " + Цена_01);
        КонецЕсли;
        //Если ТекСтрока > 100 ТОгда Прервать; КонецЕсли;
    КонецЦикла;    
    
    
    ЗагруженноеКоличество = 10;
    СообщениеПользователю = Нстр("ru = 'Из прайс-листа %ПутьКФайлу% загружено новых позиций: %ЗагруженноеКоличество%'");
    СообщениеПользователю = СтрЗаменить(СообщениеПользователю,"%ЗагруженноеКоличество%", ЗагруженноеКоличество);
    СообщениеПользователю = СтрЗаменить(СообщениеПользователю,"%ПутьКФайлу%", ПутьКФайлу);
    
    
    Excel.Quit();
    Возврат ЗагруженноеКоличество;
КонецФункции
6 Apokalipsec
 
25.11.13
11:29
сколько экселевских процессов висит?))
7 Vendetta
 
25.11.13
11:30
один)
8 Gusarm
 
25.11.13
11:30
(5) у тебя документ Excel не меняется в программе. После внесения изменений сохрани сам документ. и прогоняй обработкой ещё раз
9 Vendetta
 
25.11.13
11:43
а подскажи пожалуйста как это сделать программно
10 samozvanec
 
25.11.13
11:46
(9) код написать
11 Kupogun
 
25.11.13
11:46
saveAs не вижу . . .
12 CountR
 
25.11.13
11:50
КнигаЭксель.Save()
13 Vendetta
 
25.11.13
11:53
спасибо!)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший