S
serduk
здрасте!
Сейчас будет всем надоевшая фраза, а шо делать. Итак!
Я новичок( вот она фраза):lol:.
Решаю( уже 4 дня) задачу загрузки из Excel в базу новых товаров и обновления цен. Основная сложность: Иерархические справочники(вложеность до 3-х уровней)
Excel-файл имеет формат
!!названиеВидаТовара!!
названиеПроизводителя!!
назание товара
названиеПроизводителя
.....
Код
функция Загрузка()
ВыбратьФайл();
Если ПустаяСтрока(ИмяФайла)=1
Тогда Сообщить(" файл не выбран. Конец загрузки"); возврат 1;
КонецЕсли;
СпрТовара=СоздатьОбъект("Справочник.Товары");
Эксель=СоздатьОбъект("Excel.Application");
РабочаяКнига=Эксель.Workbooks;
РабочаяКнига.Open(ИмяФайла,0,1);
к=1;
Пока ПустаяСтрока(Буфер)=0
Цикл
Буфер=ПолучитьЗначение(Эксель,к,1);
//Буфер=AnsiToOem(Буфер);
повтор=СтрЧислоВхождений(Буфер,"!!");
Если повтор=1
Тогда ОпределитьГрпТовара(Буфер);
Иначе
Если повтор=2
Тогда ОпределитьГрпФирмы(Буфер); // процедура ищет группу, если таковой нет добавляет
Иначе
//строка содержит наименование товара
СпрТовара.ИспользоватьРодителя(грпФирмы);
Если СпрТовара.НайтиПоНаименованию(Буфер)=0
Тогда
СпрТовара.ИспользоватьДату(ДатаДок);
СпрТовара.Новый();
СпрТовара.Наименование=Строка(ПолучитьЗначение(Эксель,к,1));
СпрТовара.Остаток=СпрТовара.Остаток+Число(ПолучитьЗначение(Эксель,к,2));
СпрТовара.Прих_Цена=Число(ПолучитьЗначение(Эксель,к,3));
СпрТовара.Розн_Цена=Число(ПолучитьЗначение(Эксель,к,4));
СпрТовара.Записать();
Сообщить("Добавлен Товар");
Иначе
Если СпрТовара.ЭтоГруппа()=0
Тогда СпрТовара.Прих_Цена=Число(ПолучитьЗначение(Эксель,к,3));
СпрТовара.Розн_Цена=Число(ПолучитьЗначение(Эксель,к,4));
СпрТовара.Записать();
Иначе Сообщить("неправильно организована таблица.Работай внимательней")
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
к=к+1;
КонецЦикла;
Проблема : при запуске Документа из 1С, нажимаю загрузить , указываю файл.... и все больше ничего не происходит(ни сообщений о выполнении, ни ошибок).
В отладчике не запускал: потому что не знаю как с ним работать
В общем буду очень благодарен за любые советы. Заранее спасибо!
Кто действительно захочет помочь маякните. расскажу подробнее.ICQ 332834572
Сейчас будет всем надоевшая фраза, а шо делать. Итак!
Я новичок( вот она фраза):lol:.
Решаю( уже 4 дня) задачу загрузки из Excel в базу новых товаров и обновления цен. Основная сложность: Иерархические справочники(вложеность до 3-х уровней)
Excel-файл имеет формат
!!названиеВидаТовара!!
названиеПроизводителя!!
назание товара
названиеПроизводителя
.....
Код
функция Загрузка()
ВыбратьФайл();
Если ПустаяСтрока(ИмяФайла)=1
Тогда Сообщить(" файл не выбран. Конец загрузки"); возврат 1;
КонецЕсли;
СпрТовара=СоздатьОбъект("Справочник.Товары");
Эксель=СоздатьОбъект("Excel.Application");
РабочаяКнига=Эксель.Workbooks;
РабочаяКнига.Open(ИмяФайла,0,1);
к=1;
Пока ПустаяСтрока(Буфер)=0
Цикл
Буфер=ПолучитьЗначение(Эксель,к,1);
//Буфер=AnsiToOem(Буфер);
повтор=СтрЧислоВхождений(Буфер,"!!");
Если повтор=1
Тогда ОпределитьГрпТовара(Буфер);
Иначе
Если повтор=2
Тогда ОпределитьГрпФирмы(Буфер); // процедура ищет группу, если таковой нет добавляет
Иначе
//строка содержит наименование товара
СпрТовара.ИспользоватьРодителя(грпФирмы);
Если СпрТовара.НайтиПоНаименованию(Буфер)=0
Тогда
СпрТовара.ИспользоватьДату(ДатаДок);
СпрТовара.Новый();
СпрТовара.Наименование=Строка(ПолучитьЗначение(Эксель,к,1));
СпрТовара.Остаток=СпрТовара.Остаток+Число(ПолучитьЗначение(Эксель,к,2));
СпрТовара.Прих_Цена=Число(ПолучитьЗначение(Эксель,к,3));
СпрТовара.Розн_Цена=Число(ПолучитьЗначение(Эксель,к,4));
СпрТовара.Записать();
Сообщить("Добавлен Товар");
Иначе
Если СпрТовара.ЭтоГруппа()=0
Тогда СпрТовара.Прих_Цена=Число(ПолучитьЗначение(Эксель,к,3));
СпрТовара.Розн_Цена=Число(ПолучитьЗначение(Эксель,к,4));
СпрТовара.Записать();
Иначе Сообщить("неправильно организована таблица.Работай внимательней")
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
к=к+1;
КонецЦикла;
Проблема : при запуске Документа из 1С, нажимаю загрузить , указываю файл.... и все больше ничего не происходит(ни сообщений о выполнении, ни ошибок).
В отладчике не запускал: потому что не знаю как с ним работать
В общем буду очень благодарен за любые советы. Заранее спасибо!
Кто действительно захочет помочь маякните. расскажу подробнее.ICQ 332834572