Имя: Пароль:
1C
1С v8
Загрузка с excel
0 Triton_11
 
24.04.14
11:44
У меня есть данные на  excel:
Артикул     Наименование Характеристики
12          Штаны        синий
12          Штаны        синий
12          Штаны        синий
12          Штаны        синий  
13          Рубашка      белый
13          Рубашка      белый
25          Штаны        зеленый
25          Штаны        зеленый
25          Штаны        зеленый
мне необходимо по этим данным создать номенклатуру:
Штаны и Рубашка,но мне необходимо не по наименованию создавать
а по артиклу
т.е. необходимо создать:
Артикул  Наименование Характеристики
12         Штаны       синий
13         Рубашка     белый
25         Штаны       зеленый
я реализовал так но неправильно:



   Если НайденнаяСсылка = "" И Наименование = Наименование И Артикул <> Артикул Тогда
                                                       Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
                                                       Номенклатура.Наименование = Наименование;
                                                       Номенклатура.НаименованиеПолное = Наименование;
                                                       Номенклатура.Артикул = Артикул;
                                                       Номенклатура.Родитель = ТекРодитель4;
                                                       //ЕдИзмБазовая = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяЕдиницаПоКлассификатору");
                                                       Номенклатура.БазоваяЕдиницаИзмерения = ЕдИзм;
                                                       Номенклатура.СтавкаНДС = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяСтавкаНДС");
                                                       Номенклатура.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                                                       Номенклатура.ВестиУчетПоХарактеристикам = Истина;
                                                       //Номенклатура.ВестиУчетПоХарактеристикам = Ложь;
                                                       Номенклатура.Записать();
                                                       Сообщить("Создан новый элемент: ["+Артикул+"] "+Наименование);
                                                       ПроверитьЕдиницуХраненияОстатков(Номенклатура.Ссылка);
                                                       НайденнаяСсылка = Номенклатура.Ссылка;
                                                       //ЗагрузитьКартинки(НайденнаяСсылка);
                                                   Иначе
                                                       Сообщить("Элемент с артикулом ["+Артикул+"] в справочнике найден!");
                                                   КонецЕсли;




как будет верно
1 Wobland
 
24.04.14
11:45
употребить силу готовой внешней обработки
2 Triton_11
 
24.04.14
11:47
(1) программно покажи как я и так с помощью внешней обработки создаю
3 Wobland
 
24.04.14
11:47
делай интерактивно файл открыть
4 Triton_11
 
24.04.14
11:48
(3) примерно покажи как
5 el7cartel
 
24.04.14
11:49
(3) лучше на русском языке ему расскажи)))
дел-то на пять минут блин...
6 Wobland
 
24.04.14
11:55
тут нужны комиксы
http://i.imgur.com/ppPt13p.png
7 Godofsin
 
24.04.14
11:56
выгрузть в тз, тз свернуть, создавать перебором строк
8 Triton_11
 
24.04.14
11:56
(6) у меня этот код и так во внешней обработке программно покажи как
9 Godofsin
 
24.04.14
11:56
(8) =)
10 el7cartel
 
24.04.14
11:57
(8) он тебе уже показал! есть готовая обработка называется "Загрузка данных из табличного документа"! хочешь свою - тогда пиши!
11 Wobland
 
24.04.14
11:58
Обработка ЗагрузкаДанныхИзТабличногоДокумента.epf находится на диске ИТС в каталоге \1CITS\EXE\ExtReps\UniRepsXX\UploadFromTableDocument
12 salvator
 
24.04.14
11:58
(10) Предчувствую следующий вопрос ТС
13 Godofsin
 
24.04.14
11:59
(11) Нужны комиксы
14 Triton_11
 
24.04.14
11:59
(10) у меня и так эта обработка называется загрузка из excel
она все правильно загружает но необходимо чтоб по артиклю загружал
15 Triton_11
 
24.04.14
12:00
(14) создавал
16 Godofsin
 
24.04.14
12:00
(14) =)))))))
17 salvator
 
24.04.14
12:00
Автор, ты или туп как дерево, или троллишь неумело.
18 Wobland
 
24.04.14
12:02
19 el7cartel
 
24.04.14
12:03
(13) миста - самый большой комикс
20 Triton_11
 
24.04.14
12:03
Процедура ЗагрузитьНоменклатуруШтрихКодыИХарактеристики(Элемент)
       //вначале создаем группу загружаемой номенклатуры
       //выгрузим колонку в массив и удалим повторения
       КолонкаОтбора = ТабличноеПоле.ВыгрузитьКолонку("Группа1");
       МассивГруппа1 = Новый Массив;
       СоответствиеГруппа1 = Новый Соответствие;
       Для каждого ЭлементМассива Из КолонкаОтбора Цикл
           СоответствиеГруппа1.Вставить(ЭлементМассива, ЭлементМассива);
       КонецЦикла;
       Для каждого КлючИЗначение Из СоответствиеГруппа1 Цикл
           МассивГруппа1.Добавить(КлючИЗначение.Значение);
       КонецЦикла;
      
      
      
       КолонкаОтбора = ТабличноеПоле.ВыгрузитьКолонку("Группа2");
       МассивГруппа2 = Новый Массив;
       СоответствиеГруппа2 = Новый Соответствие;
       Для каждого ЭлементМассива2 Из КолонкаОтбора Цикл
           СоответствиеГруппа2.Вставить(ЭлементМассива2, ЭлементМассива2);
       КонецЦикла;
       Для каждого КлючИЗначение Из СоответствиеГруппа2 Цикл
           МассивГруппа2.Добавить(КлючИЗначение.Значение);
       КонецЦикла;
      
       КолонкаОтбора = ТабличноеПоле.ВыгрузитьКолонку("Группа3");
       МассивГруппа3 = Новый Массив;
       СоответствиеГруппа3 = Новый Соответствие;
       Для каждого ЭлементМассива3 Из КолонкаОтбора Цикл
           СоответствиеГруппа3.Вставить(ЭлементМассива3, ЭлементМассива3);
       КонецЦикла;
       Для каждого КлючИЗначение Из СоответствиеГруппа3 Цикл
           МассивГруппа3.Добавить(КлючИЗначение.Значение);
       КонецЦикла;
      
      
       КолонкаОтбора = ТабличноеПоле.ВыгрузитьКолонку("Группа4");
       МассивГруппа4 = Новый Массив;
       СоответствиеГруппа4 = Новый Соответствие;
       Для каждого ЭлементМассива4 Из КолонкаОтбора Цикл
           СоответствиеГруппа4.Вставить(ЭлементМассива4, ЭлементМассива4);
       КонецЦикла;
       Для каждого КлючИЗначение Из СоответствиеГруппа4 Цикл
           МассивГруппа4.Добавить(КлючИЗначение.Значение);
       КонецЦикла;
      
      
       // вначале создадим группы товаров с нужной структурой
      
       // 1 ветка
       Для Каждого ЭлементМассива Из МассивГруппа1 Цикл
           Элемент = ЭлементМассива ;
           СтруктураОтбора = Новый Структура;
           СтруктураОтбора.Вставить("Группа1", Элемент);
           НайденныеСтроки = ТабличноеПоле.НайтиСтроки(СтруктураОтбора);
           Если НайденныеСтроки.Количество() > 0  Тогда
               ЕстьГруппа = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Элемент));
               Если ЕстьГруппа.Пустая() Тогда
                   НовГруппа1 = Справочники.Номенклатура.СоздатьГруппу();
                   //НовГруппаЛ.Родитель = ВыбКаталог;
                   НовГруппа1.Наименование = СокрЛП(ЭлементМассива);
                   НовГруппа1.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                   НовГруппа1.Записать();
                   ТекРодитель1 = НовГруппа1.Ссылка;
               Иначе
                   ТекРодитель1 = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива));
               КонецЕсли;         
               // 2 ветка
              
               Для Каждого ЭлементМассива2 Из МассивГруппа2 Цикл  
                   СтруктураОтбора.Вставить("Группа2", ЭлементМассива2);
                   НайденныеСтроки = ТабличноеПоле.НайтиСтроки(СтруктураОтбора);
                  
                   Если НайденныеСтроки.Количество() > 0  Тогда
                       ЕстьГруппа = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива2),,ТекРодитель1);
                      
                       Если  ЭлементМассива2 =  "" Тогда
                           ТекРодитель2 = ТекРодитель1;    
                       иначе         
                           Если ЕстьГруппа.Пустая() Тогда
                               НовГруппа2 = Справочники.Номенклатура.СоздатьГруппу();
                               НовГруппа2.Родитель = ТекРодитель1;
                               НовГруппа2.Наименование = СокрЛП(ЭлементМассива2);
                               НовГруппа2.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                               НовГруппа2.Записать();
                               ТекРодитель2 = НовГруппа2.Ссылка;
                           Иначе
                               ТекРодитель2 = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива2),,ТекРодитель1);
                           КонецЕсли;
                       КонецЕсли;
                      
                       // 3 ветка
                      
                       Для Каждого ЭлементМассива3 Из МассивГруппа3 Цикл   // 3 ветка
                           СтруктураОтбора.Вставить("Группа3", ЭлементМассива3);
                           НайденныеСтроки = ТабличноеПоле.НайтиСтроки(СтруктураОтбора);
                          
                           Если НайденныеСтроки.Количество() > 0  Тогда
                               ЕстьГруппа = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива3),,ТекРодитель2);
                              
                               Если  ЭлементМассива3 =  "" Тогда
                                   ТекРодитель3 = ТекРодитель2;    
                               иначе         
                                   Если ЕстьГруппа.Пустая() Тогда
                                       НовГруппа3 = Справочники.Номенклатура.СоздатьГруппу();
                                       НовГруппа3.Родитель = ТекРодитель2;
                                       НовГруппа3.Наименование = СокрЛП(ЭлементМассива3);
                                       НовГруппа3.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                                       НовГруппа3.Записать();
                                       ТекРодитель3 = НовГруппа3.Ссылка;
                                   Иначе
                                       ТекРодитель3 = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива3),,ТекРодитель2);
                                   КонецЕсли;
                               КонецЕсли;
                              
                               // 4 ветка
                               Для Каждого ЭлементМассива4 Из МассивГруппа4 Цикл   // 4 ветка
                                   СтруктураОтбора.Вставить("Группа4", ЭлементМассива4);
                                   НайденныеСтроки = ТабличноеПоле.НайтиСтроки(СтруктураОтбора);
                                  
                                   Если НайденныеСтроки.Количество() > 0  Тогда
                                       ЕстьГруппа = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива4),,ТекРодитель3);
                                      
                                       Если  ЭлементМассива4 =  "" Тогда
                                           ТекРодитель4 = ТекРодитель3;    
                                       иначе         
                                           Если ЕстьГруппа.Пустая() Тогда
                                               НовГруппа4 = Справочники.Номенклатура.СоздатьГруппу();
                                               НовГруппа4.Родитель = ТекРодитель3;
                                               НовГруппа4.Наименование = СокрЛП(ЭлементМассива4);
                                               НовГруппа4.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                                               НовГруппа4.Записать();
                                               ТекРодитель4 = НовГруппа4.Ссылка;
                                           Иначе
                                               ТекРодитель4 = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива4),,ТекРодитель3);
                                           КонецЕсли;
                                       КонецЕсли;
                                      
                                       ФормаИндикатора = ПолучитьОбщуюФорму("ФормаИндикатора");
                                       ФормаИндикатора.СтрокаСостоянияПрогрессора     = "Записываются данные";
                                       ФормаИндикатора.НадписьСостоянияПрогрессора = "Записываются данные в 1С. Пожалуйста, подождите!";
                                       ФормаИндикатора.МаксимальноеЗначение        = КонСтрока - НачСтрока;
                                       ФормаИндикатора.ЗначениеИндикатора            = 0;
                                       ФормаИндикатора.Открыть();
                                       ФормаИндикатора.ЗначениеИндикатора            = 1;
                                       ЗначИнд= 0;
                                       // создаем номенклатуру
                                       Для каждого СтрокаТаблицы из НайденныеСтроки Цикл
                                        
                                              НайденнаяСсылка = "" ;
                                           ЗначИнд = ЗначИнд +1 ;
                                           ФормаИндикатора.ЗначениеИндикатора = ЗначИнд;
                                          
                                           штр  =  СтрокаТаблицы.Штрихкод ;
                                           Артикул = СтрокаТаблицы.Артикул;
                                           Наименование = СтрокаТаблицы.Наименование;
                                          
                                           Запрос = Новый Запрос;
                                           Запрос.Текст =
                                           "ВЫБРАТЬ
                                           |    Штрихкоды.Штрихкод,
                                           |    Штрихкоды.Владелец,
                                           |    Штрихкоды.ХарактеристикаНоменклатуры
                                           |ИЗ
                                           |    РегистрСведений.Штрихкоды КАК Штрихкоды
                                           |ГДЕ
                                           |    Штрихкоды.Штрихкод = &Штрихкод";
                                          
                                           Запрос.УстановитьПараметр("Штрихкод",штр );
                                           Результат = Запрос.Выполнить();
                                           ВыборкаШтр = Результат.Выбрать();
                                           Пока ВыборкаШтр.Следующий() Цикл
                                               НайденнаяСсылка1 =  ВыборкаШтр.Владелец ;
                                               СсылкаНаХарактеристику1 = ВыборкаШтр.ХарактеристикаНоменклатуры ;
                                               проверочная = ВыборкаШтр.Штрихкод ;
                                           КонецЦикла;
                                           Если  ПустаяСтрока( проверочная) Тогда
                                               Если НЕ ЗначениеЗаполнено(Наименование) Тогда
                                                   Сообщить("Для элемента """+Наименование+""" не заполнен Артикул! Синхронизация невозможна! Элемент пропущен.");
                                                   Продолжить;
                                               КонецЕсли;
                                               RAZ = СтрокаТаблицы.RAZ;
                                               POL = СтрокаТаблицы.POL;
                                               OBW = СтрокаТаблицы.OBW;
                                               KODC = СтрокаТаблицы.KODC;
                                               NAIC = СтрокаТаблицы.NAIC;
                                              
                                              
                                               Запрос = Новый Запрос;
                                               Запрос.Текст =
                                               "ВЫБРАТЬ
                                               |    Номенклатура.Ссылка,
                                               |    Номенклатура.Наименование,
                                               |    Номенклатура.Артикул
                                               |ИЗ
                                               |    Справочник.Номенклатура КАК Номенклатура
                                               |ГДЕ
                                               |    Номенклатура.Наименование = &Наименование ";
                                               //|    Номенклатура.Артикул = &Артикул
                                              
                                               //Запрос.УстановитьПараметр("Артикул", Артикул);
                                               Запрос.УстановитьПараметр("Наименование", Наименование);
                                               Результат = Запрос.Выполнить();
                                               ВыборкаНом = Результат.Выбрать();
                                               Пока ВыборкаНом.Следующий() Цикл
                                                   НайденнаяСсылка = ВыборкаНом.Ссылка ;
                                               КонецЦикла;  
                                                
                                               //Создадим новый элемент...
                                               //Если НайденнаяСсылка = "" Тогда
                                               //       //НайденнаяСсылка = Справочники.Номенклатура.НайтиПоНаименованию("Наименование",Наименование);
                                               //        //Если НайденнаяСсылка.Пустая() Тогда
                                               //        Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
                                               //        Номенклатура.Наименование = Наименование;
                                               //        Номенклатура.НаименованиеПолное = Наименование;
                                               //        Номенклатура.Артикул = Артикул;
                                               //        Номенклатура.Родитель = ТекРодитель4;
                                               //        //ЕдИзмБазовая = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяЕдиницаПоКлассификатору");
                                               //        Номенклатура.БазоваяЕдиницаИзмерения = ЕдИзм;
                                               //        Номенклатура.СтавкаНДС = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяСтавкаНДС");
                                               //        Номенклатура.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                                               //        Номенклатура.ВестиУчетПоХарактеристикам = Истина;
                                               //        //Номенклатура.ВестиУчетПоХарактеристикам = Ложь;
                                               //        Номенклатура.Записать();
                                               //        Сообщить("Создан новый элемент: ["+Артикул+"] "+Наименование);
                                               //       
                                               //        ПроверитьЕдиницуХраненияОстатков(Номенклатура.Ссылка);
                                               //       
                                               //        НайденнаяСсылка = Номенклатура.Ссылка;
                                               //        //        
                                               //        //        ЗагрузитьКартинки(НайденнаяСсылка);
                                               //        //        
                                               //    Иначе
                                               //        Сообщить("Элемент с артикулом ["+Артикул+"] в справочнике найден!");
                                               //    КонецЕсли;
                                                   Если НайденнаяСсылка = "" И Наименование = Наименование И Артикул <> Артикул Тогда
                                                       Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
                                                       Номенклатура.Наименование = Наименование;
                                                       Номенклатура.НаименованиеПолное = Наименование;
                                                       Номенклатура.Артикул = Артикул;
                                                       Номенклатура.Родитель = ТекРодитель4;
                                                       //ЕдИзмБазовая = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяЕдиницаПоКлассификатору");
                                                       Номенклатура.БазоваяЕдиницаИзмерения = ЕдИзм;
                                                       Номенклатура.СтавкаНДС = УправлениеПользователями.ПолучитьЗначениеП
21 el7cartel
 
24.04.14
12:04
(20) злой, однако!
22 Кай066
 
24.04.14
12:05
(20) надо вот так

Процедура ЗагрузитьНоменклатуруШтрихКодыИХарактеристики(Элемент)
       //вначале создаем группу загружаемой номенклатуры

       //выгрузим колонку в массив и удалим повторения

       КолонкаОтбора = ТабличноеПоле.ВыгрузитьКолонку("Группа1");
       МассивГруппа1 = Новый Массив;
       СоответствиеГруппа1 = Новый Соответствие;
       Для каждого ЭлементМассива Из КолонкаОтбора Цикл
           СоответствиеГруппа1.Вставить(ЭлементМассива, ЭлементМассива);
       КонецЦикла;
       Для каждого КлючИЗначение Из СоответствиеГруппа1 Цикл
           МассивГруппа1.Добавить(КлючИЗначение.Значение);
       КонецЦикла;
      
      
      
       КолонкаОтбора = ТабличноеПоле.ВыгрузитьКолонку("Группа2");
       МассивГруппа2 = Новый Массив;
       СоответствиеГруппа2 = Новый Соответствие;
       Для каждого ЭлементМассива2 Из КолонкаОтбора Цикл
           СоответствиеГруппа2.Вставить(ЭлементМассива2, ЭлементМассива2);
       КонецЦикла;
       Для каждого КлючИЗначение Из СоответствиеГруппа2 Цикл
           МассивГруппа2.Добавить(КлючИЗначение.Значение);
       КонецЦикла;
      
       КолонкаОтбора = ТабличноеПоле.ВыгрузитьКолонку("Группа3");
       МассивГруппа3 = Новый Массив;
       СоответствиеГруппа3 = Новый Соответствие;
       Для каждого ЭлементМассива3 Из КолонкаОтбора Цикл
           СоответствиеГруппа3.Вставить(ЭлементМассива3, ЭлементМассива3);
       КонецЦикла;
       Для каждого КлючИЗначение Из СоответствиеГруппа3 Цикл
           МассивГруппа3.Добавить(КлючИЗначение.Значение);
       КонецЦикла;
      
      
       КолонкаОтбора = ТабличноеПоле.ВыгрузитьКолонку("Группа4");
       МассивГруппа4 = Новый Массив;
       СоответствиеГруппа4 = Новый Соответствие;
       Для каждого ЭлементМассива4 Из КолонкаОтбора Цикл
           СоответствиеГруппа4.Вставить(ЭлементМассива4, ЭлементМассива4);
       КонецЦикла;
       Для каждого КлючИЗначение Из СоответствиеГруппа4 Цикл
           МассивГруппа4.Добавить(КлючИЗначение.Значение);
       КонецЦикла;
      
      
       // вначале создадим группы товаров с нужной структурой

      
       // 1 ветка

       Для Каждого ЭлементМассива Из МассивГруппа1 Цикл
           Элемент = ЭлементМассива ;
           СтруктураОтбора = Новый Структура;
           СтруктураОтбора.Вставить("Группа1", Элемент);
           НайденныеСтроки = ТабличноеПоле.НайтиСтроки(СтруктураОтбора);
           Если НайденныеСтроки.Количество() > 0  Тогда
               ЕстьГруппа = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Элемент));
               Если ЕстьГруппа.Пустая() Тогда
                   НовГруппа1 = Справочники.Номенклатура.СоздатьГруппу();
                   //НовГруппаЛ.Родитель = ВыбКаталог;

                   НовГруппа1.Наименование = СокрЛП(ЭлементМассива);
                   НовГруппа1.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                   НовГруппа1.Записать();
                   ТекРодитель1 = НовГруппа1.Ссылка;
               Иначе
                   ТекРодитель1 = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива));
               КонецЕсли;        
               // 2 ветка

              
               Для Каждого ЭлементМассива2 Из МассивГруппа2 Цикл  
                   СтруктураОтбора.Вставить("Группа2", ЭлементМассива2);
                   НайденныеСтроки = ТабличноеПоле.НайтиСтроки(СтруктураОтбора);
                  
                   Если НайденныеСтроки.Количество() > 0  Тогда
                       ЕстьГруппа = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива2),,ТекРодитель1);
                      
                       Если  ЭлементМассива2 =  "" Тогда
                           ТекРодитель2 = ТекРодитель1;    
                       иначе        
                           Если ЕстьГруппа.Пустая() Тогда
                               НовГруппа2 = Справочники.Номенклатура.СоздатьГруппу();
                               НовГруппа2.Родитель = ТекРодитель1;
                               НовГруппа2.Наименование = СокрЛП(ЭлементМассива2);
                               НовГруппа2.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                               НовГруппа2.Записать();
                               ТекРодитель2 = НовГруппа2.Ссылка;
                           Иначе
                               ТекРодитель2 = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива2),,ТекРодитель1);
                           КонецЕсли;
                       КонецЕсли;
                      
                       // 3 ветка

                      
                       Для Каждого ЭлементМассива3 Из МассивГруппа3 Цикл   // 3 ветка

                           СтруктураОтбора.Вставить("Группа3", ЭлементМассива3);
                           НайденныеСтроки = ТабличноеПоле.НайтиСтроки(СтруктураОтбора);
                          
                           Если НайденныеСтроки.Количество() > 0  Тогда
                               ЕстьГруппа = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива3),,ТекРодитель2);
                              
                               Если  ЭлементМассива3 =  "" Тогда
                                   ТекРодитель3 = ТекРодитель2;    
                               иначе        
                                   Если ЕстьГруппа.Пустая() Тогда
                                       НовГруппа3 = Справочники.Номенклатура.СоздатьГруппу();
                                       НовГруппа3.Родитель = ТекРодитель2;
                                       НовГруппа3.Наименование = СокрЛП(ЭлементМассива3);
                                       НовГруппа3.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                                       НовГруппа3.Записать();
                                       ТекРодитель3 = НовГруппа3.Ссылка;
                                   Иначе
                                       ТекРодитель3 = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива3),,ТекРодитель2);
                                   КонецЕсли;
                               КонецЕсли;
                              
                               // 4 ветка

                               Для Каждого ЭлементМассива4 Из МассивГруппа4 Цикл   // 4 ветка

                                   СтруктураОтбора.Вставить("Группа4", ЭлементМассива4);
                                   НайденныеСтроки = ТабличноеПоле.НайтиСтроки(СтруктураОтбора);
                                  
                                   Если НайденныеСтроки.Количество() > 0  Тогда
                                       ЕстьГруппа = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива4),,ТекРодитель3);
                                      
                                       Если  ЭлементМассива4 =  "" Тогда
                                           ТекРодитель4 = ТекРодитель3;    
                                       иначе        
                                           Если ЕстьГруппа.Пустая() Тогда
                                               НовГруппа4 = Справочники.Номенклатура.СоздатьГруппу();
                                               НовГруппа4.Родитель = ТекРодитель3;
                                               НовГруппа4.Наименование = СокрЛП(ЭлементМассива4);
                                               НовГруппа4.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");
                                               НовГруппа4.Записать();
                                               ТекРодитель4 = НовГруппа4.Ссылка;
                                           Иначе
                                               ТекРодитель4 = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ЭлементМассива4),,ТекРодитель3);
                                           КонецЕсли;
                                       КонецЕсли;
                                      
                                       ФормаИндикатора = ПолучитьОбщуюФорму("ФормаИндикатора");
                                       ФормаИндикатора.СтрокаСостоянияПрогрессора     = "Записываются данные";
                                       ФормаИндикатора.НадписьСостоянияПрогрессора = "Записываются данные в 1С. Пожалуйста, подождите!";
                                       ФормаИндикатора.МаксимальноеЗначение        = КонСтрока - НачСтрока;
                                       ФормаИндикатора.ЗначениеИндикатора            = 0;
                                       ФормаИндикатора.Открыть();
                                       ФормаИндикатора.ЗначениеИндикатора            = 1;
                                       ЗначИнд= 0;
                                       // создаем номенклатуру

                                       Для каждого СтрокаТаблицы из НайденныеСтроки Цикл
                                        
                                              НайденнаяСсылка = "" ;
                                           ЗначИнд = ЗначИнд +1 ;
                                           ФормаИндикатора.ЗначениеИндикатора = ЗначИнд;
                                          
                                           штр  =  СтрокаТаблицы.Штрихкод ;
                                           Артикул = СтрокаТаблицы.Артикул;
                                           Наименование = СтрокаТаблицы.Наименование;
                                          
                                           Запрос = Новый Запрос;
                                           Запрос.Текст =
                                           "ВЫБРАТЬ
                                           |    Штрихкоды.Штрихкод,
                                           |    Штрихкоды.Владелец,
                                           |    Штрихкоды.ХарактеристикаНоменклатуры
                                           |ИЗ
                                           |    РегистрСведений.Штрихкоды КАК Штрихкоды
                                           |ГДЕ
                                           |    Штрихкоды.Штрихкод = &Штрихкод";
                                          
                                           Запрос.УстановитьПараметр("Штрихкод",штр );
                                           Результат = Запрос.Выполнить();
                                           ВыборкаШтр = Результат.Выбрать();
                                           Пока ВыборкаШтр.Следующий() Цикл
                                               НайденнаяСсылка1 =  ВыборкаШтр.Владелец ;
                                               СсылкаНаХарактеристику1 = ВыборкаШтр.ХарактеристикаНоменклатуры ;
                                               проверочная = ВыборкаШтр.Штрихкод ;
                                           КонецЦикла;
                                           Если  ПустаяСтрока( проверочная) Тогда
                                               Если НЕ ЗначениеЗаполнено(Наименование) Тогда
                                                   Сообщить("Для элемента """+Наименование+""" не заполнен Артикул! Синхронизация невозможна! Элемент пропущен.");
                                                   Продолжить;
                                               КонецЕсли;
                                               RAZ = СтрокаТаблицы.RAZ;
                                               POL = СтрокаТаблицы.POL;
                                               OBW = СтрокаТаблицы.OBW;
                                               KODC = СтрокаТаблицы.KODC;
                                               NAIC = СтрокаТаблицы.NAIC;
                                              
                                              
                                               Запрос = Новый Запрос;
                                               Запрос.Текст =
                                               "ВЫБРАТЬ
                                               |    Номенклатура.Ссылка,
                                               |    Номенклатура.Наименование,
                                               |    Номенклатура.Артикул
                                               |ИЗ
                                               |    Справочник.Номенклатура КАК Номенклатура
                                               |ГДЕ
                                               |    Номенклатура.Наименование = &Наименование ";
                                               //|    Номенклатура.Артикул = &Артикул

                                              
                                               //Запрос.УстановитьПараметр("Артикул", Артикул);

                                               Запрос.УстановитьПараметр("Наименование", Наименование);
                                               Результат = Запрос.Выполнить();
                                               ВыборкаНом = Результат.Выбрать();
                                               Пока ВыборкаНом.Следующий() Цикл
                                                   НайденнаяСсылка = ВыборкаНом.Ссылка ;
                                               КонецЦикла;  
                                                
                                               //Создадим новый элемент...

                                               //Если НайденнаяСсылка = "" Тогда

                                               //       //НайденнаяСсылка = Справочники.Номенклатура.НайтиПоНаименованию("Наименование",Наименование);

                                               //        //Если НайденнаяСсылка.Пустая() Тогда

                                               //        Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();

                                               //        Номенклатура.Наименование = Наименование;

                                               //        Номенклатура.НаименованиеПолное = Наименование;

                                               //        Номенклатура.Артикул = Артикул;

                                               //        Номенклатура.Родитель = ТекРодитель4;

                                               //        //ЕдИзмБазовая = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяЕдиницаПоКлассификатору");

                                               //        Номенклатура.БазоваяЕдиницаИзмерения = ЕдИзм;

                                               //        Номенклатура.СтавкаНДС = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяСтавкаНДС");

                                               //        Номенклатура.ВидНоменклатуры = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнойВидНоменклатуры");

                                               //        Номенклатура.ВестиУчетПоХарактеристикам = Истина;

                                               //        //Номенклатура.ВестиУчетПоХарактеристикам = Ложь;

                                               //        Номенклатура.Записать();

                                               //        Сообщить("Создан новый элемент: ["+Артикул+"] "+Наименование);

                                               //        

                                               //        ПроверитьЕдиницуХраненияОстатков(Номенклатура.Ссылка);

                                               //        

                                               //        НайденнаяСсылка = Номенклатура.Ссылка;

                                               //        //        

                                               //        //        ЗагрузитьКартинки(НайденнаяСсылка);

                                               //        //        

                                               //    Иначе

                                               //        Сообщить("Элемент с артикулом ["+Артикул+"] в справочнике найден!");

                                               //    КонецЕсли;

                                                   Если НайденнаяСсылка = "" И Наименование = Наименование И Артикул <> Артикул Тогда
                                                       Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
                                                       Номенклатура.Наименование = Наименование;
                                                       Номенклатура.НаименованиеПолное = Наименование;
                                                       Номенклатура.Артикул = Артикул;
                                                       Номенклатура.Родитель = ТекРодитель4;
                                                       //ЕдИзмБазовая = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяЕдиницаПоКлассификатору");

                                                       Номенклатура.БазоваяЕдиницаИзмерения =
23 Godofsin
 
24.04.14
12:06
(20) ну и  ты думаешь, что кто-то будет щас вникать в эту портянку?
24 SleepyHead
 
гуру
24.04.14
12:06
Такие вещи легко делаются на КД, ПВД с произвольным алгоритмом..
25 Godofsin
 
24.04.14
12:06
(22) Думаешь "&nbs" лишнее? =)
26 Triton_11
 
24.04.14
12:08
(23) мне не нужно (18) мне просто программно покажите как не наименование а по артикулу создать справочник
27 el7cartel
 
24.04.14
12:11
(26) ну так для начала ищи номенклатуру по "Артиклу", если нет - создавай новую! есть вещь хорошая - запрос называется!
28 Wobland
 
24.04.14
12:12
(27) вероятно, ты не знаешь, сколько раз он уже пробовал
29 Triton_11
 
24.04.14
12:12
(27) ок попробую
30 el7cartel
 
24.04.14
12:14
(28) наверное ниразу, да?
31 Wobland
 
24.04.14
12:14
(30) мне смутно припоминаются ветки три за крайние пару недель
32 el7cartel
 
24.04.14
12:16
(31) о как, ну тогда прогресс на лицо)))