&НаКлиенте
Процедура ЗагрузитьТЗ(Команда)
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Фильтр = НСтр("ru = 'Текст'; en = 'Text'")
+ "(*.xml)|*.xml";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Истина;
ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбрать() Тогда
МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
Для Каждого ИмяФайла Из МассивФайлов Цикл
ВыбФайл = Новый Файл(ИмяФайла);
//Сообщить(ИмяФайла+ НСтр("ru = '; Размер = '; en = '; Size = '")+ ВыбФайл.Размер());
файлхмл=Новый ЧтениеXML();
файлхмл.ОткрытьФайл(ИмяФайла);
пока файлхмл.Прочитать() Цикл
Если файлхмл.ТипУзла=ТипУзлаXML.НачалоЭлемента тогда
//сообщить("---------------");
стртаб=ТЗ.Добавить();
пока файлхмл.ПрочитатьАтрибут() цикл
// сообщить("Атрибут:"+файлхмл.имя+" Значение:"+файлхмл.Значение);
если файлхмл.имя="countme" тогда стртаб.количество=файлхмл.Значение;конецесли;
если файлхмл.имя="code" тогда стртаб.Номер=файлхмл.Значение;конецесли;
если файлхмл.имя="name" тогда стртаб.Название=файлхмл.Значение;конецесли;
если файлхмл.имя="fullname" тогда стртаб.ПолноеНаименование=файлхмл.Значение;конецесли;
если файлхмл.имя="opis" тогда стртаб.ОписаниеЦенник=файлхмл.Значение;конецесли;
если файлхмл.имя="group" тогда стртаб.Группа=файлхмл.Значение;конецесли;
если файлхмл.имя="rodkod" тогда стртаб.РодКод=файлхмл.Значение;конецесли;
если файлхмл.имя="rozn_price" тогда стртаб.Цена=файлхмл.Значение;конецесли;
если файлхмл.имя="shtrihkod" тогда стртаб.Штрихкод=файлхмл.Значение;конецесли;
если файлхмл.имя="comment" тогда конецесли;
если файлхмл.имя="bazedname" тогда стртаб.ЕденицаИзмерения=файлхмл.Значение;конецесли;
если файлхмл.имя="articul" тогда стртаб.Артикул=файлхмл.Значение;конецесли;
если файлхмл.имя="pic" тогда стртаб.Картинка=файлхмл.Значение;конецесли;
конеццикла;
конецесли;
Если файлхмл.ТипУзла=ТипУзлаXML.Текст тогда
конецесли;
Если файлхмл.ТипУзла=ТипУзлаXML.КонецЭлемента тогда
конецесли;
конеццикла;
конеццикла;
конецесли;
КонецПроцедуры
&НаСервере
Процедура ГруппыНоменклатурыНаСервере()
// Вставить содержимое обработчика.
для каждого стр из ТЗ цикл
если стр.группа="истина" тогда
//сообщить("Создаю группу:"+стр.название);
//проверяю, а может уже есть?
ссылканоменклатуры=справочники.Номенклатура.НайтиПоКоду(стр.Номер);
если ссылканоменклатуры=справочники.Номенклатура.ПустаяСсылка() тогда
// сообщить("--такой номенклатуры нет!Создаем!");
нп=Справочники.Номенклатура.СоздатьГруппу();
нп.Наименование=стр.название;
нп.Код=стр.Номер;
нп.Записать();
конецесли;
конецесли;
конеццикла;
КонецПроцедуры
&НаКлиенте
Процедура ГруппыНоменклатуры(Команда)
ГруппыНоменклатурыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьНоменклатуруНаСервере()
для каждого стр из ТЗ цикл
если стр.группа="ложь" тогда
//сообщить("Создаю/изменяю номенклатуру:"+стр.название);
//проверяю, а может уже есть?
ссылканоменклатуры=справочники.Номенклатура.НайтиПоКоду(стр.Номер);
если ссылканоменклатуры=справочники.Номенклатура.ПустаяСсылка() тогда
//сообщить("--такой номенклатуры нет!Создаем!");
нп=Справочники.Номенклатура.СоздатьЭлемент();
нп.Наименование=стр.название;
нп.НаименованиеПолное=стр.ПолноеНаименование;
нп.Артикул=стр.Артикул;
нп.Описание=стр.ОписаниеЦенник;
нп.Родитель=справочники.Номенклатура.НайтиПоКоду(стр.РодКод);
нп.Код=стр.Номер;
нп.ВидНоменклатуры=справочники.ВидыНоменклатуры.НайтиПоНаименованию("Без серийных номеров");
нп.ЕдиницаИзмерения=Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию(стр.ЕденицаИзмерения);
нп.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
нп.Записать();
иначе
нп=ссылканоменклатуры.ПолучитьОбъект();
нп.ВидНоменклатуры=справочники.ВидыНоменклатуры.НайтиПоНаименованию("Без серийных номеров");
нп.ЕдиницаИзмерения=Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию(стр.ЕденицаИзмерения);
нп.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
нп.ФайлКартинки=null;
фл=Справочники.НоменклатураПрисоединенныеФайлы.НайтиПоНаименованию(стр.Номер);
фф=фл.ПолучитьОбъект();
фф.ПометкаУдаления=истина;
фф.Записать();
если фл=Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка() тогда
файлк=Справочники.НоменклатураПрисоединенныеФайлы.СоздатьЭлемент();
файлк.Наименование=стр.Номер;
файлк.ФайлХранилище=Base64Значение(стр.Картинка);
файлк.ВладелецФайла=нп.Ссылка;
нп.ФайлКартинки=файлк.Ссылка;
файлк.Записать();
конецесли;
если стр.штрихкод<>0 тогда
если стр.штрихкод<>"0" тогда
если стр.штрихкод<>"" тогда
новштр=регистрысведений.Штрихкоды.СоздатьМенеджерЗаписи();
новштр.Владелец=нп.Ссылка;
новштр.ТипШтрихкода=ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
новштр.Штрихкод=стр.штрихкод;
новштр.Записать();
конецесли;
конецесли;
конецесли;
нп.Записать();
конецесли
конецесли;
конеццикла;
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьНоменклатуру(Команда)
ЗагрузитьНоменклатуруНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьВДокументНаСервере(док)
// Вставить содержимое обработчика.
если док.ссылка=документы.ПоступлениеТоваров.ПустаяСсылка() тогда
сообщить("--не выбран документ куда будем загружать данные!");
иначе
док2=этаформа.Объект.ДокументПоступления.ПолучитьОбъект();
для каждого стр из ТЗ цикл
если стр.группа="ложь" тогда
если стр.название<>"" тогда
ссылканоменклатуры=справочники.Номенклатура.НайтиПоКоду(стр.номер);
новая=док2.Товары.Добавить();
новая.номенклатура=ссылканоменклатуры;
новая.Количество=стр.количество;
новая.КоличествоУпаковок=стр.количество;
новая.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
новая.цена=стр.цена;
новая.Сумма=стр.цена*стр.количество;
конецесли;
конецесли;
конеццикла;
док2.Записать();
конецесли;
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьВДокумент(Команда)
ЗагрузитьВДокументНаСервере(этаформа.Объект.ДокументПоступления);
КонецПроцедуры