Имя: Пароль:
1C
1С v8
Перенос справочников из 7.7 в 8.1 (OLE) с группами
,
0 kuchuk
 
05.06.12
21:03
Нужна помощь в передаче данных из 7.7 в 8.2 с учетом иерархии

   Сч = 0;
   Для Каждого СтСоотв Из Соответствия Цикл
       СтСоотв.Ном = Сч;
       Сч = Сч + 1;
   КонецЦикла;    
   Сч = 0;
   Спр = Справочники[ЭлементыФормы.СписокСпр.Значение.Имя];
       
   
        Спр77 = V7.CreateObject("Справочник."+СокрЛП(V7.Метаданные.Справочник(ЭлементыФормы.СписокСпр77.Значение).Идентификатор));
        //Спр77 = V7.CreateObject("Справочник.Контрагенты");
                                     
        ЭлементыФормы.ПрогрессБар.МаксимальноеЗначение = 100;
       Спр77.ВыбратьЭлементы();
           Пока   Спр77.ПолучитьЭлемент()=1 Цикл
               Если Спр77.ЭтоГруппа()>0 Тогда


               КонецЕсли;
                ЭлементыФормы.Ст.Заголовок = "Выполняется импорт данных ...";
                Эл = Спр.СоздатьЭлемент();
//                 Эл.Код =Число(Спр77.Код);
                Эл.Наименование = СокрЛП(спр77.Наименование);
                Для Каждого СтрокаСт Из Соответствия Цикл
                    Если (СокрЛП(СтрокаСт.Реквизит) <> "Код") И (СокрЛП(СтрокаСт.Реквизит) <> "Наименование")И (СокрЛП(СтрокаСт.Реквизит_77) <> "Наименование")И (СокрЛП(СтрокаСт.Реквизит_77) <> "Код") Тогда
                          Эл[СокрЛП(СтрокаСт.Реквизит)] = Спр77[СокрЛП(СтрокаСт.Реквизит_77)];
                    КонецЕсли;      
                КонецЦикла;                                                                        
                Попытка
                Эл.Записать();
                Исключение
                     Сообщить("Ошибка! Возможно код элемента справочника не уникален!");
                КонецПопытки;    
                Сч = Сч + 1;
                ЭлементыФормы.ПрогрессБар.Значение = Сч;
                 
           КонецЦикла;
           
       //КонецЕсли;
       ЭлементыФормы.Ст.Заголовок = "Импорт данных завершен";
1 andrewks
 
05.06.12
21:05
где вопрос?
2 kuchuk
 
05.06.12
21:10
Проблема с формированием в 8.2 групп. Как корректно реализовать перенос данных из 7.7 в 8.2 с группами?
3 Maniac
 
05.06.12
21:11
выгрузил в эксель и загрузил из экселя вот и все дела
4 kuchuk
 
05.06.12
21:12
Мне нужно через OLE
5 kuchuk
 
05.06.12
21:23
Похоже советы закончились?
6 DrShad
 
05.06.12
21:25
и что не получается?
7 kuchuk
 
05.06.12
21:26
(5) Проблема с формированием в 8.2 групп. Как корректно реализовать перенос данных из 7.7 в 8.2 с группами?
8 DrShad
 
05.06.12
21:28
в чем именно проблема? е не буду читать весь код
9 DrShad
 
05.06.12
21:29
и почему в 8.1 она ведь уже динозавр
10 kuchuk
 
05.06.12
21:31
в 7.7 есть записи

Группа1
    Группа2
         НовыйЭлемент
НовыйЭлемен

в 8.2
Группа1
Группа2
НовыйЭлемент
НовыйЭлемен

Нужна помощь в корректном формировании справочника в 8.2 с учетом групп
11 kuchuk
 
05.06.12
21:33
Вообще-то в 8.2 по тексту
12 DrShad
 
05.06.12
21:33
блеать, что у тебя не получается? ибо то что в (0) по группам там ничего
13 DrShad
 
05.06.12
21:35
// родитель
   Попытка
       Если СтрокаДанных.Родитель.Наименование <> "" Тогда
           обКонтр.Родитель = ВерниГруппуКонтрагента(СтрокаДанных.Родитель);
       КонецЕсли;
   Исключение КонецПопытки;
14 kuchuk
 
05.06.12
21:35
В группах ничего.)))
15 DrShad
 
05.06.12
21:36
Функция ВерниГруппуКонтрагента(ДанныеГруппыКонтрагента)
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    Контрагенты.Ссылка
                  |ИЗ
                  |    Справочник.Контрагенты КАК Контрагенты
                  |ГДЕ
                  |    Контрагенты.Наименование = &Наименование
                  |    И Контрагенты.Код = &Код
                  |    И Контрагенты.ЭтоГруппа";
   Запрос.УстановитьПараметр("Наименование", СокрЛП(ДанныеГруппыКонтрагента.Наименование));
   Запрос.УстановитьПараметр("Код", Формат(Число(ДанныеГруппыКонтрагента.Код), "ЧЦ=9; ЧВН=; ЧГ=0"));
   Выборка = Запрос.Выполнить().Выбрать();
   Если Выборка.Следующий() Тогда
       Возврат Выборка.Ссылка;
   КонецЕсли;
   
   Родитель = Справочники.Контрагенты.СоздатьГруппу();
   Родитель.Наименование = ДанныеГруппыКонтрагента.Наименование;
   Родитель.Код = Формат(Число(ДанныеГруппыКонтрагента.Код), "ЧЦ=9; ЧВН=; ЧГ=0");
   Попытка
       Если ДанныеГруппыКонтрагента.Родитель.Наименование <> "" Тогда
           Родитель.Родитель = ВерниГруппуКонтрагента(ДанныеГруппыКонтрагента.Родитель);
       КонецЕсли;
   Исключение КонецПопытки;
   Родитель.Записать();
   
   Возврат Родитель.Ссылка;
КонецФункции
16 DrShad
 
05.06.12
21:36
дарю
17 DrShad
 
05.06.12
21:37
4 года назад писал, но до сих пор работает, хотя сейчас написал бы подругому
18 kuchuk
 
05.06.12
21:40
Мне нужно следующее в 7.7 есть справочник с группами и 8.2 мы должны получить аналогичный справочник что и в 7.7
19 DrShad
 
05.06.12
21:42
тебе мало того что я тебе уже дал?
20 kuchuk
 
05.06.12
21:45
Мне это не подходит. Мне нужно получить группу с элементами в 7.7 и сформировать аналогично в 8.2. Данные передаются через ОЛЕ
21 DrShad
 
05.06.12
21:48
(20) ты тупой? я тебе через что передал?
22 kuchuk
 
05.06.12
21:50
Сиди и дричи ты сам посмотри что я прошу. ОЛЕ а ты мне что даешь. Ты сам тупорез. Проблему я решил сам. в 3 строчки кода. ОЛЕ!!!
23 DrShad
 
05.06.12
21:51
(22) в (13) переменная СтрокаДанных и есть твой COMОбъект
24 DrShad
 
05.06.12
21:52
в студию! свои три строчки