![]() |
![]() |
![]() |
|
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) я признаюсь тоже удивился
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |