Имя: Пароль:
1C
1C 7.7
v7: Импорт данных из 8.2 в 7.7 по нажатию на кнопку
0 ghOstik
 
21.09.11
14:57
Всем доброго времени.

Есть две базы 1с 7.7 и 1с 8.2 нужно по нажатию кнопки переносить документы из одной базы в другую.

Написал процедуру:

Я точно знаю что документы есть, но почему-то не сробатывает условие

Пока ОЛЕ_Док.Следующий() = 1 Цикл

подскажите может я что-то не учел.

Процедура ИмпортИзУпр()
   
   Сотр = СоздатьОбъект("Справочник.Сотрудники");
   
   СтрокаСоединения = "File=""d:\Мои документы\1c\upr 8.2"";Usr=""UserName"";";
   
   База82 = СоздатьОбъект("V82.Application");
   База82.Connect(СтрокаСоединения);
   Если База82 = 0 Тогда
       Предупреждение("Не удалось подключится к управленческой базе");
       Возврат;
   КонецЕсли;                            
   
   ОЛЕ_Док = База82.Документы.Табель.Выбрать(ДатаНач,ДатаКон);  
   Пока ОЛЕ_Док.Следующий() = 1 Цикл
       Сообщить("1");
       //Док = СоздатьОбъект("Документ.Начислить");
       //Док.Новый();
       //Док.ДатаДок   = ОЛЕ_Док.ДатаДок;
       //
       //ОЛЕ_Док.ВыбратьСтроки();
       //Пока ОЛЕ_Док.Следующий() =  Цикл
       //    
       //    Док.НоваяСтрока();
       //    Если Сотр.НайтиПоНаименованию(СокрЛП(ОЛЕ_Док.Сотрудник.Наименование), 0, 1)=1 Тогда
       //        Док.Сотрудник    =    Сотр.ТекущийЭлемент();        
       //    КонецЕсли;
       //    
       //    //Док.Оклад        =    ОЛЕ_Док.Оклад;    
       //    Док.НормаДни    =    ОЛЕ_Док.НормаДни;    
       //    Док.ФактДни    =    ОЛЕ_Док.ФактДни;                                
       //    Док.Сумма        =    ОЛЕ_Док.Сумма;    
       //    Сообщить(Док);
       //КонецЦикла;    
       //Док.Записать();
   КонецЦикла;
      Сообщить("Конец");
   База82 = 0;
       
КонецПроцедуры
1 1Сергей
 
21.09.11
14:58
ДатаНач,ДатаКон надо переделывать
2 ghOstik
 
21.09.11
14:59
(1) всмысле переделать?
3 1Сергей
 
21.09.11
15:00
(2) в восьмерке дата содержит время, в семерке - нет
4 ЧеловекДуши
 
21.09.11
15:00
Да, ты не учел, то, что 1С 7.7 лучше всего общается с 8-кой через промежуточный файл, желательно в формате XML :)
...Оле это Зло...
При этом, если уж, так хочется через оле, то почему бы наоборот не организовать обмен, т.е. в 8-ке ты создаешь ОЛЕ подключение к 7-ке ;)
5 ghOstik
 
21.09.11
15:04
(2) даже если убираю дату вообще в цикл всеравно не заходит.
(4) Да я бы с радостью, но правила не я диктую и не всегда соглашаються принять то что говорю. Промежуточный файл не подходит, а из 8-ки это делать из-за особенностей прав и доступов тоже не подходит.
6 1Сергей
 
21.09.11
15:10
Вот это не корректно, еси чо
Пока ОЛЕ_Док.Следующий() = 1 Цикл
7 ghOstik
 
21.09.11
15:12
1ска вроде не ругаеться, но судя по тому что не работает что-то точно не так) сейчас подумаю над этим куском. Если что-то подскажите буду рад))
8 1Сергей
 
21.09.11
15:13
(7) ты этот вопрос лучше восьмерошникам задай. Метод Следующий() возвращает булево значение, а не 1/0
9 ghOstik
 
21.09.11
15:17
в восмерки и истина и 1 срабатывает. поставил

Пока ОЛЕ_Док.Следующий() = -1 Цикл

все заработало.
Посмотрел в отладчике ОЛЕ_Док.Следующий())

Всем спасибо кто пытался помочь!
10 1Сергей
 
21.09.11
15:18
(9) т.е. Истина = -1 ?
не знал
11 ghOstik
 
21.09.11
15:21
(10) я признаюсь тоже удивился