Загрузка из Excel

Тема в разделе "1C и всё что с ней связано", создана пользователем serduk, 1 авг 2006.

Статус темы:
Закрыта.
  1. serduk

    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
     
  2. serduk

    serduk Гость

    да уж! не много ответов.

    Нашел глюк. Глуппая ошибка:(.


    //здесь не хватало инициализации Буфер

    Буфер=ПолучитьЗначение(Эксель,1,1); // вот эта строка.забыл что Буфер только объявлен

    Пока ПустаяСтрока(Буфер)=0
    Цикл
    Буфер=ПолучитьЗначение(Эксель,к,1);
    ......

    Код работает!!!!! Ура!!
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей