Здравствуйте
Нужна помощь
Программированию в 1с еще только учусь, так что не будьте строги
Делаю простую загрузку из excel в 1с в табличную часть
Загрузка работает, все хорошо, но столкнулся с проблемой -
я загружаю номенклатуру по артикул, а артикул может совпадать с разными номенклатурами и из-за этого при загрузке, она загружает первое попавшее (не совсем уверен что он загружает) и вот вопрос, у меня в excel файле есть наименование и артикул, не могу придумать, как мне сделать проверку, что после загрузке артикула, чтобы он еще проверял совпадение по наименованию
То есть загрузил артикул, и если совпадение одно, то он загружает, а если нашел 2 то уже идет в excel и берет наименование
Надеюсь все понятно описал
подтолкните на мысль как это реализовать, или сделать как то по другому
вод код который написал
Нужна помощь
Программированию в 1с еще только учусь, так что не будьте строги
Делаю простую загрузку из excel в 1с в табличную часть
Загрузка работает, все хорошо, но столкнулся с проблемой -
я загружаю номенклатуру по артикул, а артикул может совпадать с разными номенклатурами и из-за этого при загрузке, она загружает первое попавшее (не совсем уверен что он загружает) и вот вопрос, у меня в excel файле есть наименование и артикул, не могу придумать, как мне сделать проверку, что после загрузке артикула, чтобы он еще проверял совпадение по наименованию
То есть загрузил артикул, и если совпадение одно, то он загружает, а если нашел 2 то уже идет в excel и берет наименование
Надеюсь все понятно описал
подтолкните на мысль как это реализовать, или сделать как то по другому
вод код который написал
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open("D:\3.xlsx");
Excel.Sheets(1).Select();
a=2;
Док = Документы.ИнвентаризацияТоваровНаСкладе.СоздатьДокумент();
Пока a<2845 Цикл
тч = док.Товары.Добавить();
тчнайти = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Excel.Cells(a,3).Value());
тч.Номенклатура = тчнайти;
тч.КоличествоУчет = Excel.Cells(a,8).Value();
тч.Количество = Excel.Cells(a,6).Value();
тч.Коэффициент = "1";
тч.ЕдиницаИзмерения = тчнайти.ЕдиницаХраненияОстатков;
тч.Цена = Excel.Cells(a,5).Value();
тч.Сумма = Excel.Cells(a,7).Value();
тч.СуммаРегл = Excel.Cells(a,9).Value();
тч.СуммаУчет = Excel.Cells(a,9).Value();
a=a+1;
КонецЦикла;
Док.Дата = ТекущаяДата();
Док.Записать();
Excel.Quit();
Сообщить("Всё готово");
ПоказатьПо теме из базы знаний
Найденные решения
ПРимерно так должно быть. Писал от руки поэтому могут быть ошибки
тч.Номенклатура = НайтиНоменклатуру("ячейканаименования", Excel.Cells(a,3).Value());
Функция НайтиНоменклатуру(Наименование, Артикул);
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать Ссылка
Из Справочники.номенклатура
Где Артикул = &Артикул
И Наименование = &Наименование";
Запрос.установитьПараметры("Артикул",Артикул);
Запрос.установитьПараметры("Наименование",Наименование);
Выборка = Запрос.выполнить().выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.ссылка;
Иначе
Возврат Справочники.Номенклатура.ПустаяСсылка();
КонецЕсли;
КонецФункции;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ПРимерно так должно быть. Писал от руки поэтому могут быть ошибки
тч.Номенклатура = НайтиНоменклатуру("ячейканаименования", Excel.Cells(a,3).Value());
Функция НайтиНоменклатуру(Наименование, Артикул);
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать Ссылка
Из Справочники.номенклатура
Где Артикул = &Артикул
И Наименование = &Наименование";
Запрос.установитьПараметры("Артикул",Артикул);
Запрос.установитьПараметры("Наименование",Наименование);
Выборка = Запрос.выполнить().выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.ссылка;
Иначе
Возврат Справочники.Номенклатура.ПустаяСсылка();
КонецЕсли;
КонецФункции;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот