Подскажите, ведь наверняка что-то элементарное: Есть обработка по переносу данных из Excеl в спр номенклатура ТиС 7.7. В Excel две колонки: артикул и наименование товара. Артикул в 1С уже загружен, а наименование номенклатуры загружает эта обработка. Но получается так, что артикул может повторяться, а наименование ставится только в первый найденный товар. Подскажите, пожалуйста, что нужно дописать в этой обработке, чтобы у меня для каждого одинакового артикула ставилось одно и тоже наименование. Заранее спасибо! Вот обработка:
Процедура Сформировать()
обЭксел = СоздатьОбъект("Excel.Application"); //создаем объект
НашФайл = обЭксел.Workbooks.Open(СокрЛП(ИмяФайла)); //Открываем файл
НашЛист = НашФайл.Sheets(3); //Устанавливаем нужный лист
//Знач1 = НашЛист.Cells(1,1); // Считываем значение, здесь: из первой ячейки первой строки
//Если нужно считать несколько значений то организуем цикл
СпрНом=СоздатьОбъект("Справочник.Номенклатура");
Для i = 3 По 10 Цикл
арт = НашЛист.Cells(i,2).Value;
Если СпрНом.НайтиПоРеквизиту("Артикул",Арт,1)=1 тогда
Сообщить("Найден");
зщ=НашЛист.Cells(i,3).Value;
Сообщить(зщ);
СпрНом.Наименование=Строка(зщ);
СпрНом.ПолнНаименование=Строка(зщ);
СпрНом.Записать();
иначе
СпрНом.Новый();
КонецЕСли;
КонецЦикла;
ОбЭксел.WorkBooks.close();
ОбЭксел.Quit();
КонецПроцедуры
Процедура Сформировать()
обЭксел = СоздатьОбъект("Excel.Application"); //создаем объект
НашФайл = обЭксел.Workbooks.Open(СокрЛП(ИмяФайла)); //Открываем файл
НашЛист = НашФайл.Sheets(3); //Устанавливаем нужный лист
//Знач1 = НашЛист.Cells(1,1); // Считываем значение, здесь: из первой ячейки первой строки
//Если нужно считать несколько значений то организуем цикл
СпрНом=СоздатьОбъект("Справочник.Номенклатура");
Для i = 3 По 10 Цикл
арт = НашЛист.Cells(i,2).Value;
Если СпрНом.НайтиПоРеквизиту("Артикул",Арт,1)=1 тогда
Сообщить("Найден");
зщ=НашЛист.Cells(i,3).Value;
Сообщить(зщ);
СпрНом.Наименование=Строка(зщ);
СпрНом.ПолнНаименование=Строка(зщ);
СпрНом.Записать();
иначе
СпрНом.Новый();
КонецЕСли;
КонецЦикла;
ОбЭксел.WorkBooks.close();
ОбЭксел.Quit();
КонецПроцедуры
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Заменить:
на код // - строки с изменениями:
Код |
---|
Если СпрНом.НайтиПоРеквизиту("Артикул",Арт,1)=1 тогда
Сообщить("Найден");
зщ=НашЛист.Cells(i,3).Value;
Сообщить(зщ);
СпрНом.Наименование=Строка(зщ);
СпрНом.ПолнНаименование=Строка(зщ);
СпрНом.Записать();
иначе
СпрНом.Новый();
КонецЕСли;
Показать полностью |
на код // - строки с изменениями:
Код |
---|
Найден = 0; //
Пока СпрНом.НайтиПоРеквизиту("Артикул",Арт,1)=1 Цикл //
Найден = 1; //
Сообщить("Найден");
зщ=НашЛист.Cells(i,3).Value;
Сообщить(зщ);
СпрНом.Наименование=Строка(зщ);
СпрНом.ПолнНаименование=Строка(зщ);
СпрНом.Записать();
КонецЦикла; //
Если Найден = 0 Тогда //
СпрНом.Новый();
КонецЕсли;
Показать полностью |
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот