BeginTransaction в OLE-сервере 1С

1. xChange 10.01.08 03:01 Сейчас в теме
Есть ли здесь люди, которые могут мне объяснить ошибку "Ошибка при выполнении процедуры НачатьТранзакцию". Ситуация следующая:
1. 1С 7.7. вызывает OLE сервер 1С 7.7 (оба - на релизах 21 DBF)
2. При вызове BeginTransaction для OLE сервера - он матерно ругается - "Ошибка при выполнении процедуры НачатьТранзакцию"
3. Текст примерно такой:

V77=СоздатьОбъект("V77.Application");
Если V77.Initialize(V77.RMTrade, ТраТаТа,"")<0 Тогда
V77.BeginTransaction(); bla...bla...bla...
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Abadonna 3969 10.01.08 04:58 Сейчас в теме
Вот так прокатывает, если в ГМ добавить
Код
Функция глНачатьТранзакцию() Экспорт
   НачатьТранзакцию();
КонецФункции

Функция глЗафиксироватьТранзакцию() Экспорт
   ЗафиксироватьТранзакцию();
КонецФункции   
Показать полностью

пройдет
V77.глНачатьТранзакцию(); и V77.глЗафиксироватьТранзакцию();
4. support 4453 10.01.08 09:34 Сейчас в теме
Пробовал давно, даже если так сделать, транзакция все равно не включается.
5. Abadonna 3969 10.01.08 10:00 Сейчас в теме
Не ругнулось у меня... щас попробую конкретно с реальными изменениями
6. Abadonna 3969 10.01.08 10:33 Сейчас в теме
7. xChange 10.01.08 13:20 Сейчас в теме
сорри, забыл добавить еще одно условие - MD для OLE-серверной базы изменять нельзя :( кроме того, не хотелось бы использовать и методы типа открытия внешней обработки OLE-сервером
8. Abadonna 3969 10.01.08 14:51 Сейчас в теме
Тогда - никак. Не будет транзакция работать
9. xChange 10.01.08 14:52 Сейчас в теме
а почему? дело в реализации DBF-движка?
10. Abadonna 3969 10.01.08 15:16 Сейчас в теме
почему - ХЗ. Но не dbf-движка, а вообще движка - на скуле тоже не идет
11. xChange 10.01.08 15:42 Сейчас в теме
PS. Конструкция следующего вида

V77.ExecuteBatch(
"Процедура НачТрн() Экспорт"
" НачатьТранзакцию();"
"КонецПроцедуры"
""
"НачТрн();");

отрабатывает, есс-но, но транс - НЕ включает, так же, как и ее сестричка

V77.EvalExpr(
"Функция НачТрн() Экспорт"
" НачатьТранзакцию();"
" Возврат 1;"
"КонецФункции"
""
"НачТрн();");

вообщем - никак, похоже :(
12. support 4453 10.01.08 20:09 Сейчас в теме
Abadonna, а как ты проверил, что работает?
13. Abadonna 3969 10.01.08 23:18 Сейчас в теме
Может и некорректно проверил. Завтра попробую поставить ОтменитьТразакцию() - вот тут все ясно сразу станет
14. Abadonna 3969 10.01.08 23:19 Сейчас в теме
А в принципе - ничего страшного. Ну и поработает оно без транзакции чуток подольше - ну и фиг с ним ;)
15. xChange 10.01.08 23:44 Сейчас в теме
мои 5 копеек: для меня проблема как раз не в скорости обработки, а в том, чтобы при вылете, допустим, по ошибке транзакция не закоммитилась и отменились бы "пачкой" все сделанные до "вылета" изменения
16. Abadonna 3969 10.01.08 23:47 Сейчас в теме
Ну эту пачку можно и программно отменить, если залогить что выполнялось. Геморно, но возможно
17. xChange 10.01.08 23:51 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот