&НаСервере Функция ЗапСпр(СО) СО.Записать(); КонецФункции &НаКлиенте Процедура Загрузить(Команда) Попытка Док = ПолучитьCOMОбъект(ФайлЗагрузки); Исключение Сообщить("Неправильный формат файла"); Возврат; КонецПопытки; Для Каждого Лист из Док.WorkSheets Цикл//Док.Worksheets.Count ГруппаНаи = СокрЛП(Лист.Name); ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; Сообщить(ГруппаНаи +" колонок:"+ВсегоКолонок+" строк;"+ВсегоСтрок); Группа = Справочники.Номенклатура.НайтиПоНаименованию(ГруппаНаи,Истина,Родитель); Если Группа=Неопределено Тогда Продолжить; ИначеЕсли Группа.Пустая() Тогда Группа = Справочники.Номенклатура.СоздатьГруппу(); Группа.Наименование = ГруппаНаи; Группа.Родитель = Родитель; ЗапСпр(Группа); Группа = Группа.Ссылка; КонецЕсли; МасРек = Новый Массив(15); СпиСвв = Новый СписокЗначений; КолСвв = -1; Для Кол=1 по ВсегоКолонок Цикл НаиКол = СокрЛП(Лист.Cells(1,Кол).Value); Сообщить("колонока:"+Кол+" ="+НаиКол); Если НаиКол=Неопределено ИЛИ НаиКол="" Тогда Продолжить; ИначеЕсли НаиКол="UIC" Тогда МасРек[0] = Кол; ИначеЕсли НаиКол="Код" Тогда МасРек[1] = Кол; ИначеЕсли НаиКол="Название" Тогда МасРек[2] = Кол; ИначеЕсли НаиКол="Поставщик" Тогда МасРек[3] = Кол; ИначеЕсли НаиКол="Бренд" Тогда МасРек[4] = Кол; ИначеЕсли НаиКол="Страна производства" Тогда МасРек[5] = Кол; ИначеЕсли НаиКол="Страна дизайна" Тогда МасРек[6] = Кол; ИначеЕсли НаиКол="Вес" Тогда МасРек[7] = Кол; ИначеЕсли НаиКол="Артикул" Тогда МасРек[8] = Кол; ИначеЕсли НаиКол="Цена" Тогда МасРек[9] = Кол; ИначеЕсли НаиКол="Описание" Тогда МасРек[10] = Кол; ИначеЕсли НаиКол="Meta Title" Тогда МасРек[11] = Кол; ИначеЕсли НаиКол="Meta Description" Тогда МасРек[12] = Кол; ИначеЕсли НаиКол="Фото" Тогда МасРек[13] = Кол; ИначеЕсли НаиКол="Видео" Тогда МасРек[14] = Кол; КолСвв = 0; ИначеЕсли КолСвв>=0 Тогда СпиСвв.Добавить(Кол,НаиКол); КолСвв = КолСвв + 1; КонецЕсли; КонецЦикла; Для Стр=1 по ВсегоСтрок Цикл КонецЦикла; КонецЦикла; // мФормаПрогрессора = ПолучитьОбщуюФорму("ХодВыполненияОбработкиДанных"); // мФормаПрогрессора.НаименованиеОбработкиДанных = "Загрузка номенклатуры"; // мФормаПрогрессора.КомментарийЗначения = "Считывание данных ..."; // мФормаПрогрессора.Значение = 0; // мФормаПрогрессора.МаксимальноеЗначение = ВсегоСтрок; // мФормаПрогрессора.Открыть(); // ТекГруппа = ""; // ТекГруппаВыб = Истина; // ГрУр = Группа; // Для Строка = НачСтр По ВсегоСтрок Цикл // мФормаПрогрессора.Значение = Строка; // мФормаПрогрессора.КомментарийЗначения = "Обработка строки: "+Строка+" из "+ВсегоСтрок; // Артикул = СтрЗаменить(СокрЛП(Лист.Cells(Строка,АртикулН).Value)," ",""); // Если НЕ ЗначениеЗаполнено(Артикул) Тогда // ТекГруппа = СокрЛП(Лист.Cells(Строка,НаименованиеН).Value); // ТекГруппаВыб = Истина; // Продолжить; // КонецЕсли; // Наименование = Артикул + " " + СокрЛП(Лист.Cells(Строка,НаименованиеН).Value); // Ном = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул); // Если НЕ Ном.Пустая() Тогда // Если СокрЛП(Ном.Наименование)=Наименование Тогда // СО = Ном.ПолучитьОбъект(); // Иначе // Сообщить("ОШ:Стр."+Строка+": Ном("+Артикул+")<"+Наименование+">есть с другим наменов.("+Ном.Наименование+")", СтатусСообщения.Информация); // Продолжить; // КонецЕсли; // Иначе // СО = Справочники.Номенклатура.СоздатьЭлемент(); // //СО.Код = ; // Если ТекГруппаВыб Тогда // Если НЕ ТекГруппа="" Тогда // ТекГруппаВыб = Ложь; // СГ = Справочники.Номенклатура.СоздатьГруппу(); // СГ.Родитель = Группа; // СГ.Наименование = ТекГруппа; // СГ.ВидНоменклатуры = Товар; // СГ.Записать(); // ГрУр = СГ.Ссылка; // Иначе // ГрУр = Группа; // КонецЕсли; // КонецЕсли; // СО.Родитель = ГрУр; // СО.Наименование = Наименование; // СО.Артикул = Артикул; // СО.БазоваяЕдиницаИзмерения = Штуки; // //СО.ВесовойКоэффициентВхождения = Артикул; // //СО.ВестиОперативныйУчетОстатковНЗП = Артикул; // //СО.ВестиПартионныйУчетПоСериям = Артикул; // //СО.ВестиУчетПоСериям = Артикул; // //СО.ВестиУчетПоСериямВНЗП = Артикул; // //СО.ВестиУчетПоХарактеристикам = Артикул; // СО.ВидВоспроизводства = Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка; // СО.ВидНоменклатуры = Товар; // //СО.Комментарий = Артикул; // //СО.Набор = Артикул; // //СО.НазначениеИспользования = Артикул; // СО.НаименованиеПолное = Наименование; // //СО.НоменклатурнаяГруппа = Артикул; // //СО.НоменклатурнаяГруппаЗатрат = Артикул; // //СО.НомерГТД = Артикул; // СО.ОсновнойПоставщик = Поставщик; // //СО.ОтветственныйМенеджерЗаПокупки = Артикул; // СО.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; // //СО.СтатьяЗатрат = Артикул; // //СО.СтранаПроисхождения = Артикул; // //СО.ТребуетсяВнешняяСертификация = Артикул; // //СО.ТребуетсяВнутренняяСертификация = Артикул; // //СО.Услуга = Артикул; // //СО.ВестиСерийныеНомера = Артикул; // //СО.Комплект = Артикул; // //СО.ПорядокПрисвоенияСерийногоНомера = Артикул; // //СО.ЦеноваяГруппа = Артикул; // //СО.ОКП = Артикул; // //СО.ДополнительноеОписаниеНоменклатуры = Артикул; // СО.Записать(); // ЕдИзм = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); // //ЕдИзм.Код = СО.Ссылка; // ЕдИзм.Наименование = "шт"; // ЕдИзм.Владелец = СО.Ссылка; // ЕдИзм.ЕдиницаПоКлассификатору = Штуки; // //ЕдИзм.Вес = Штуки; // //ЕдИзм.Объем = Штуки; // ЕдИзм.Коэффициент = 1; // //ЕдИзм.ПорогОкругления = 1; // //ЕдИзм.ПредупреждатьОНецелыхМестах = 1; // ЕдИзм.Записать(); // СО.ЕдиницаДляОтчетов = ЕдИзм.Ссылка; // СО.ЕдиницаХраненияОстатков = ЕдИзм.Ссылка; // //СО.ЕдиницаИзмеренияМест = Артикул; // СО.Записать(); // КонецЕсли; //// Если НЕ ИзображениеН=0 Тогда //// Фото = Лист.Shapes(ИзображениеН);//.ShadowЛист.Cells(Строка,ИзображениеН).Value; //// МояКартинка = Новый Картинка(Фото.OLEFormat.Object); //// ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка); ////// ХранилищеКартинки = Новый ХранилищеЗначения(Фото.OLEFormat.Object);//.Fill); //// СО.ОсновноеИзображение = ХранилищеКартинки; //// //МояКартинка = Новый Картинка("C:\Мои документы\Картинка1.bmp"); //// //ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка); //// //НовНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); //// //НовНоменклатура.Наименование = "Диван ""Маргарита"""; //// //НовНоменклатура.Изображение = ХранилищеКартинки; //// //НовНоменклатура.Записать(); //// СО.Записать(); //// КонецЕсли; // // // // СО.ОсновноеИзображение = Артикул; // // // //Значение = СтрЗаменить(СокрЛП(Лист.Cells(Строка,3).Value)," ",""); // // // //ЗаказК = СокрЛП(Лист.Cells(Строка,Колонка).Value); // //ЗаказС = 0; // // // ////Сообщить(""+Значение+ЗаказК); // // // //Если НЕ ЗначениеЗаполнено(ЗаказК) Тогда // // Продолжить; // //КонецЕсли; // // // //Попытка // // ЗаказКоличество = Число(ЗаказК); // //Исключение // // Продолжить; // //КонецПопытки; // // // //Попытка // // ЗаказСумма = Число(ЗаказС); // //Исключение // // ЗаказСумма=0; // //КонецПопытки; // // // // // //Если ТипЗнч(Объект.Ссылка) = Тип("ДокументСсылка.УстановкаЦенНоменклатуры") Тогда // // // // Если НЕ ЗначениеЗаполнено(НоменклатураСсылка) Тогда // // // // Сообщить("Строка "+Строка(ТЗ.Количество()+1)+": Номенклатура с ариткулом "+Значение+" не найдена", СтатусСообщения.Информация); // // // // НоменклатураСсылка = Справочники.Номенклатура.ПустаяСсылка(); // // //Цена = 0; // // // // Иначе // // // // стр = ТЗ.Добавить(); // // стр.Номенклатура = НоменклатураСсылка; // // стр.Цена = ЗаказКоличество; // // //Цена = Ценообразование.ПолучитьЦенуНоменклатуры(НоменклатураСсылка, Неопределено, Объект.ТипЦен, Объект.Дата, НоменклатураСсылка.ЕдиницаХраненияОстатков, // // //Объект.ВалютаДокумента, Объект.КурсВзаиморасчетов, Объект.КратностьВзаиморасчетов, 0, Объект.ДоговорКонтрагента); // // // // КонецЕсли; // // // //Иначе // // // // //Цена = 0; // // // //КонецЕсли; // // // // // ////Если НЕ стр.Количество=0 тогда // //// // //// стр.Цена = Цена; // //// // ////КонецЕсли; // ////прервать; // КонецЦикла; // // //Док.Application.Quit(); // // мФормаПрогрессора.Закрыть(); // мВалютаРегламентированногоУчета = глЗначениеПеременной("ВалютаРегламентированногоУчета"); // // ////Отработка доп. колонок // //Для каждого стр из ТЗ Цикл // // стр.ЕдиницаИзмерения = стр.Номенклатура.ЕдиницаХраненияОстатков; // // стр.Валюта = мВалютаРегламентированногоУчета; // // Стр.ТипЦен = Объект.ТипыЦен[0].ТипЦен; // //КонецЦикла; // // // //Объект.Товары.Загрузить(ТЗ); // //Объект.Записать(); // // // // //xl = Новый COMОбъект("Excel.Application"); // //xl.Workbooks.Open(ФайлЗагрузки); // //rows=xl.ActiveSheet.UsedRange.Rows.Count; // //Для row = 1 По rows Цикл // // // // Если row = 1 или row = 2 Тогда // // Продолжить; // // КонецЕсли; // // // // ДатаСтроки=СокрЛП(xl.Cells(row,НомерКолонки_ДатаВозвратаДенег).Value); // // // // Если НЕ ЗначениеЗаполнено(ДатаСтроки) Тогда // // Продолжить; // // КонецЕсли; // // // // // // Если НачалоДня(Дата(ДатаСтроки))=НачалоДня(Дата) Тогда // // // // НоваяСтрока=ТЗ.Добавить(); // // НоваяСтрока.НомерНакладной=СокрЛП(xl.Cells(row,НомерКолонки_НомерНакладной).Value); // // НоваяСтрока.СуммаГруза=СокрЛП(xl.Cells(row,НомерКолонки_СуммаГруза).Value); // // НоваяСтрока.СуммаПрихода=СокрЛП(xl.Cells(row,НомерКолонки_СуммаПрихода).Value); // // НоваяСтрока.СуммаВозврата=СокрЛП(xl.Cells(row,НомерКолонки_СуммаВозврата).Value); // // НоваяСтрока.Комиссия=СокрЛП(xl.Cells(row,НомерКолонки_Комиссия).Value); // // НоваяСтрока.СтоимостьДоставки=СокрЛП(xl.Cells(row,НомерКолонки_СтоимостьДоставки).Value); // // // // НоваяСтрока.ДатаЗабораГруза=Дата(СокрЛП(xl.Cells(row,НомерКолонки_ДатаЗабораГруза).Value)); // // НоваяСтрока.ДатаДоставкиГруза=Дата(СокрЛП(xl.Cells(row,НомерКолонки_ДатаДоставкиГруза).Value)); // // НоваяСтрока.ДатаПриходаДенег=Дата(СокрЛП(xl.Cells(row,НомерКолонки_ДатаПриходаДенег).Value)); // // НоваяСтрока.ДатаВозвратаДенег=Дата(СокрЛП(xl.Cells(row,НомерКолонки_ДатаВозвратаДенег).Value)); // // // // // // КонецЕсли; // // // // //СоздатьКонрагента(СтрЗаменить(СокрЛП(xl.Cells(row,1).Value)," ",""),СтрЗаменить(СокрЛП(xl.Cells(row,2).Value)," ","")); // // // // состояние(row); // // // //КонецЦикла; // // // //xl.Quit(); КонецПроцедуры &НаКлиенте Процедура ФайлЗагрузкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ВыборФайла(Элемент); КонецПроцедуры &НаКлиенте Процедура ФайлЗагрузкиОткрытие(Элемент, СтандартнаяОбработка) ЗапуститьПриложение(ФайлЗагрузки); СтандартнаяОбработка=Ложь; КонецПроцедуры // Открывает диалог выбора файла // // Параметры: // Элемент - Элемент управления, для которого выбираем файл // ПроверятьСуществование - Если Истина, то выбор отменяется если файл не существует // &НаКлиенте Процедура ВыборФайла(Элемент, ПроверятьСуществование=Ложь) ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогФыбораФайла.Фильтр = "Таблица Excel(*.xls(x))|*.xls?|ВСЕ|*.*"; ДиалогФыбораФайла.Расширение = "xls,xlsx,*"; ДиалогФыбораФайла.Заголовок = "Выберите файл"; ДиалогФыбораФайла.ПредварительныйПросмотр = Ложь; ДиалогФыбораФайла.ИндексФильтра = 0; ДиалогФыбораФайла.ПолноеИмяФайла = ФайлЗагрузки; ДиалогФыбораФайла.ПроверятьСуществованиеФайла = ПроверятьСуществование; Если ДиалогФыбораФайла.Выбрать() Тогда ФайлЗагрузки = ДиалогФыбораФайла.ПолноеИмяФайла; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПапкаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); ДиалогФыбораФайла.Фильтр = ""; ДиалогФыбораФайла.Расширение = ""; ДиалогФыбораФайла.Заголовок = "Выберите папку"; ДиалогФыбораФайла.ПредварительныйПросмотр = Ложь; ДиалогФыбораФайла.ИндексФильтра = 0; ДиалогФыбораФайла.ПолноеИмяФайла = Папка; Если ДиалогФыбораФайла.Выбрать() Тогда Папка = ДиалогФыбораФайла.Каталог; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПапкаОткрытие(Элемент, СтандартнаяОбработка) // Вставить содержимое обработчика. КонецПроцедуры