7.7 Загрузка из Excel

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем xDee, 16 окт 2011.

  1. TopicStarter Overlay
    xDee
    Offline

    xDee

    Регистрация:
    16 авг 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Загружаю номенклатуру из Excel, счтывает по строкам номенклатуру все нормально но доходит до строки в экселевском файле где стоит группа номенклатуры и вываливается с ошибкой СпрЕдиницы.Записать(); ППроверка идет по Артиклу, в экселе во 2ой строке нет такого столбца артикул. В номенклатуре не нужны группы, запись идет в корень справочника. Подскажите пожалуйста как обойти такие строки в обработке ? Для примера пропустить строку 2
    1. 122218 ПЭВМ X5000B/PRO (X5338PRi): Core i5-2500/ 4 Гб/ 1 Тб/ 1 Гб Radeon HD6950/ DVDRW/ Win7 Premium
    2. Компьютеры универсальные
    3. 122730 ПЭВМ X5000B (X531ELGi): Core i5-2400/ 4 Гб/ 1 Тб/ 1 Гб GeForce GTX560Ti/ DVDRW/ Win7 Premium

    Код:
    СпрНом=СоздатьОбъект("Справочник.Номенклатура");
    Если СпрНом.НайтиПоРеквизиту("Артикул",АртиклExcel, 1)=0 Тогда
    Сообщить("Товар с кодом "+АртиклExcel+"("+ТоварExcel+") не найден и будет записан", "!");
    СпрНом.Новый();  
    СпрНом.Наименование=ТоварExcel;
    СпрНом.Артикул=АртиклExcel;
    СпрНом.ПолнНаименование=ТоварExcel;
    СпрНом.СтавкаНДС=Перечисление.СтавкиНДС.БезНДС;
    СпрНом.ВидНоменклатуры=Перечисление.ВидыНоменклатуры.Прочее;
    КонецЕсли;
    СпрНом.Записать();
    
    СпрЕдиницы.ИспользоватьВладельца(СпрНом.ТекущийЭлемент());
    СпрЕдиницы.Новый();
    СпрЕдиницы.ОКЕИ = СпрОКЕИ.ТекущийЭлемент();
    СпрЕдиницы.Коэффициент = 1;
    СпрЕдиницы.Записать(); 
    
    СпрНом.ОсновнаяЕдиница=СпрЕдиницы.ТекущийЭлемент(); 
    СпрНом.БазоваяЕдиница=СпрЕдиницы.ТекущийЭлемент();
    СпрНом.Записать();
    КонецЦикла;
    КонецЦикла;
    xlApp.Quit();         
    xlApp = 0;
    
    
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Самое простое - проверка на число в данном случае

    Код:
    СпрНом=СоздатьОбъект("Справочник.Номенклатура"); //вот здесь зачем создаете каждый раз объект? Вынесите из цикла
    Если (Лев(АртиклExcel,1)<=Симв(47))Или(Лев(АртиклExcel,1)>=Симв(58)) Тогда
    Сообщить("Группу не грузим");
    Продолжить;
    КонецЕсли;
    Если СпрНом.НайтиПоРеквизиту("Артикул",АртиклExcel, 1)=0 Тогда
    ...
    
    
    
Похожие темы
  1. Snickbw
    Ответов:
    2
    Просмотров:
    806
  2. Ivan2014
    Ответов:
    12
    Просмотров:
    1.930
Загрузка...

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