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 ошибка) отладчик видит значение Контрагент в Док.Партнер = Контрагент; // но не записывает его, как понять?
|
|