Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 16:06
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Загрузка из Excel  (Прочитано 7457 раз)

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

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Загружаю номенклатуру из Excel, счтывает по строкам номенклатуру все нормально но доходит до строки в экселевском файле где стоит группа номенклатуры и вываливается с ошибкой СпрЕдиницы.Записать();  Проверка идет по Артиклу, в экселе в строке нет такого столбца артикул. В номенклатуре не нужны группы, запись идет в корень справочника. Подскажите пожалуйста как обойти такие строки в обработке ? Для примера пропустить строку 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;


Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Re: Загрузка из Excel
« Ответ #1: 16 Окт 2011, 20:21 »
Проверка идет по Артиклу, в экселе во 2ой строке нет такого столбца артикул

Оффлайн chuevsf

  • Хочу! Хочу! Хочу! Мышь на палочке!
  • Глобальный модератор
  • *****
  • Сообщений: 1376
  • РЕПУТАЦИЯ: 345
  • КПД: 25%
  • Регистрация: 2010-07-08
    • Skype: chuevsf
  • Сайт: 
  • Профессия: Программист 1С
Re: Загрузка из Excel
« Ответ #2: 16 Окт 2011, 21:02 »
Ставь условие что артикула у тебя число. Если не число, то значит группа.

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Re: Загрузка из Excel
« Ответ #3: 16 Окт 2011, 21:19 »
Подтолкни пожалуйста как это написать

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
Re: Загрузка из Excel
« Ответ #4: 16 Окт 2011, 21:25 »
Если Артикул используется и для элемента, и для группы, то ошибка вываливается из-за того, что НайтиПоРеквизиту может найти группу, а группу нельзя установить владельцем справочника Единицы.
Тогда должно помочь
Если СпрНом.ЭтоГруппа()=0 Тогда
......
КонецЕсли;

Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Re: Загрузка из Excel
« Ответ #5: 16 Окт 2011, 22:24 »
Попробуй перед своим кодом
Если ПустоеЗначение(АртиклExcel)=1 Тогда
продолжить;
КонецЕсли;
Или
Если Число(АртиклExcel)>0 Тогда
продолжить;
КонецЕсли;
Кнопочка Спасибо - слева!

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Re: Загрузка из Excel
« Ответ #6: 17 Окт 2011, 14:30 »
Если Число(АртиклExcel)=0 Тогда
продолжить;
КонецЕсли;

Спасибо, вот так сработало, а как мне отрезать первые пять символов строки слева если там есть название [NEW] чтобы в прайс попадало только название.
1. 122218   [NEW] ПЭВМ X5000B/PRO (X5338PRi): Core i5-2500/ 4 Гб/ 1 Тб/ 1 Гб Radeon HD6950/ DVDRW/ Win7 Premium

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Re: Загрузка из Excel
« Ответ #7: 17 Окт 2011, 14:36 »
Если Врег(Лев(ТоварExcel,5))="[NEW]" Тогда
ТоварExcel = СокрЛП(Прав(ТоварExcel,(СтрДлина(ТоварExcel)-5)));
КонецЕсли;
Кнопочка Спасибо - слева!

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Re: Загрузка из Excel
« Ответ #8: 17 Окт 2011, 14:45 »
Большое Спасибо!

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Re: Загрузка из Excel
« Ответ #9: 17 Окт 2011, 17:20 »
Подскажите пожалуйста еще один нюанс, если запускаю загрузку еще один раз то не отрабатывает
Если СпрНом.НайтиПоРеквизиту("Артикул",АртиклExcel, 1)=0  Тогда 
вернее отрабатывет в отладчике показывает что =1, но при этом
СпрНом.Новый();  
СпрНом.Наименование=ТоварExcel;
показывает первую позицию номенклатуры в экселе, которую он вроде должен был уже пройти


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
163 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal