Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

1c транзакции


Fbin ©   (2004-04-22 15:47:00) 

Работаю с 1С через ole из приложения, написаного на Delphi5.
Все работало нормально до введения транзакций.
При вызове транзакции из клиента при помощи
ExecuteBatch('НачатьТранзакцию()');
EvalExpr('МояФункция(Параметры)');
ExecuteBatch('ОтменитьТранзакцию()'); происходит некорректный откат, то есть часть удаленных данных (табличная часть документа) восстанавливаются, а другие (записи в справочнике) НЕ восстанавливаются
В качестве эксперимента вызов транзакции был перенесен в МояФункция
При вызове функции из 1с все проходит нормально, а при вызове из клиента происходит ошибка при вызове НачатьТранзакцию():
- Ошибка при выполнении процедуры НачатьТранзакцию: 3272
Транзакцию всетаки хотелось бы инициировать на клиенте


Fbin   (2004-04-23 10:38:00) [1]

1с несовсем наверно лицензионная
дык эт понятно что скобки - важная весчь для 1с
вощем спасибо


VMcL   (2004-04-23 10:27:00) [2]

>>Fbin ©  (23.04.04 09:27) [2]

1С, надеюсь, лицензионная? ;)
Тогда звони в 1С или в фирму-франчайзи, где покупалась 1С-ка.

P.S. Кстати, я в [1] ошибся, нужно так:
Str := EvalExpr('глТранзакцияНачать ()'); // Str = OleVariant


Fbin   (2004-04-23 09:27:00) [3]

Теже яйца, вид сбоку, возвращает:
Ошибка при выполнении процедуры НачатьТранзакцию


VMcL   (2004-04-22 23:30:00) [4]

>>Fbin ©  (22.04.04 15:47)

Не знаю, что за ошибка 3272, 1С скупа на документацию :)

Может так прокатит. Попробуй написать в ГМ:
Функция глТранзакцияНачать() Экспорт
  Попытка
     НачатьТранзакцию();
  Исключение
     Стр = ОписаниеОшибки();
     Возврат Стр;
  КонецПопытки;

  Возврат "";
КонецФункции


А в Delphi:
Str := EvalExpr('глТранзакцияНачать'); // Str = OleVariant

Посмотри, что в таком случае вернет EvalExpr в Str.

?


Наверх

Титульная страница Поиск, карта сайта Написать письмо