![]() |
|
1С 8.3 УФ обработка по загрузке из экселя, как перебрать группу справочника | ☑ | ||
---|---|---|---|---|
0
lirt82
17.12.15
✎
16:34
|
Есть внешняя обработка загружает данные(прайсы) от контрагентов.
Проблема как сделать Поиск По Наименованию в справочнике Номенклатура в конкретной группе "Шины"? Сейчас ищет по всему справочнику и если не находит то создает элемент вне группы "Шины". &НаКлиенте Процедура Загрузить(Команда) ...... Excel.Workbooks.Open(ИмяФайла); НомерЛиста = НомерЛистаЭксель; Лист = Excel.WorkSheets(НомерЛиста); ВсегоКолонок = Excel.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Excel.Cells(1,1).SpecialCells(11).Row; Массив = Новый Массив; Для Стр = ПерваяСтрока По ПоследняяСтрока Цикл ПолеНаим = СокрЛП(Лист.Cells(Стр, Наименование).Value); СпрНом = НайтиСправочникПоНаименованию(ПолеНаим,"Номенклатура"); // СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(ПолеНаим,,"Шины"); ПолеАртикул = ?(Артикул=0,0,СокрЛП(Лист.Cells(Стр, Артикул).Value)); ПолеТипоразмер = ?(Типоразмер=0,0,СокрЛП(Лист.Cells(Стр, Типоразмер).Value)); ........ Реквизиты = Новый Структура; Реквизиты.Вставить("Номенклатура", СпрНом); Реквизиты.Вставить("Артикул", ПолеАртикул); Реквизиты.Вставить("Типоразмер", ПолеТипоразмер); ........ Массив.Добавить(Реквизиты); КонецЦикла; ОбработатьДанные(Массив); Excel.ActiveWorkbook.Close(); Excel.Quit(); Excel = Неопределено; ОткрытьФормуМодально("ЖурналыДокументов.ЗагрузкиОтПоставщиков.ФормаСписка"); // 2 ошибка // Форма.Открыть(); //ФормаСписка = ПолучитьФорму("ЖурналыДокументов.ЗагрузкиОтПоставщиков.ФормаСписка"); //ФормаСписка.Открыть(); КонецПроцедуры &НаСервере Функция НайтиСправочникПоНаименованию(ПолеНаим,Вид) Нашли = Справочники[Вид].НайтиПоНаименованию(ПолеНаим); Если Нашли = Справочники[Вид].ПустаяСсылка() Тогда СпрОбъект = Справочники[Вид].СоздатьЭлемент(); СпрОбъект.Наименование = ПолеНаим; СпрОбъект.Записать(); Возврат СпрОбъект.Ссылка; Иначе Возврат Справочники[Вид].НайтиПоНаименованию(ПолеНаим); КонецЕсли; КонецФункции &НаСервере Процедура ОбработатьДанные(Массив) Док = Документы.ЗагрузкаДанныхИзФайлаЭксель.СоздатьДокумент(); Док.Дата = ТекущаяДата(); Док.Партнер = Контрагент; //3 ошибка Для Каждого Элемент Из Массив Цикл СтрТЧ = Док.Товары.Добавить(); СтрТЧ.Наименование = Элемент.Номенклатура; СтрТЧ.Артикул = Элемент.Артикул; ............ СтрТЧ.ЦенаОптовая = Элемент.ЦенаОптовая; ЗаполнитьЗначенияСвойств(СтрТЧ,Элемент); КонецЦикла; Док.Записать(РежимЗаписиДокумента.Запись); КонецПроцедуры 2 ошибка) при выполнении кода ОткрытьФорму(), ПолучитьФорму() выдается ошибка {Форма.Форма.Форма(78)}: Ошибка при вызове метода контекста (ОткрытьФормуМодально) ОткрытьФормуМодально("ЖурналыДокументов.ЗагрузкиОтПоставщиков.ФормаСписка"); по причине: Неизвестное имя формы. Имя: "ЖурналыДокументов.ЗагрузкиОтПоставщиков.ФормаСписка" но у журнала есть ФормаСписка! 3 ошибка) отладчик видит значение Контрагент в Док.Партнер = Контрагент; // но не записывает его, как понять? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |