Имя: Пароль:
1C
1С v8
v8: Запись вне транзакции
,
0 Sh18
 
16.09.13
10:48
Можно ли в транзакции создать запись в базе вне транзакции?
При длительной процедуре (обрезание) надо периодически писать лог (пройденные этапы и затраченное время). Удобнее бы в базе, но откат при ошибке все стирает. Можно обойти? Есть, конечно, вариант, в файл писать, но с них станется - они и файл откатят (не проверял). Но оч хотелось бы в базу...
1 Ненавижу 1С
 
гуру
16.09.13
10:48
(0) а ты проверь!
2 Sh18
 
16.09.13
10:51
Эт понятно, но как насчет обхода транзакции? Вроде,нельзя, но народ на выдумки хитер
3 Ненавижу 1С
 
гуру
16.09.13
10:52
(2) да полно решений, можно поднимать COM-соединение и писать через него, можно вообще через ADO-соединение (для серверных БД).
4 Serg_1960
 
16.09.13
10:52
Пиши в ТЗ, по окончании транзакции - скидывай в базу.
5 НЕА123
 
16.09.13
10:52
(0)
>они и файл откатят
как откатят? затрут?
6 Sh18
 
16.09.13
10:53
(4) Класс! Что ж я такой тупой... Все гениальное - просто )) Спасибо!
7 Defender aka LINN
 
16.09.13
11:00
(6) И чем это тебе поможет, если у тебя транзакция всего одна?
Если она не одна - к чему вообще вопрос?
З.Ы. Еще есть такая штука как Журнал Регистрации
8 Maxus43
 
16.09.13
11:02
ЖР чем не угодил? Он и есть штатный Лог, независимый от транзакций
9 cw014
 
16.09.13
11:03
Мы делали через обработчик ожидания, который проверял наличие непустых строк в параметре сеанса и писал из
10 cw014
 
16.09.13
11:03
*тх
11 Maxus43
 
16.09.13
11:05
>>в файл писать, но с них станется - они и файл откатят
нет конечно, всё, что за пределами СУБД - не поджвержено влиянию её транзакций
12 Sh18
 
16.09.13
11:25
Спасибо всем! ЖР - неудобно. Временная таблица - вполне компромиссное решение, разве что не покрывает вылет компа. Но это уже форс-мажор ))
13 Sh18
 
16.09.13
11:29
Нормальный вариант - другой поток, но, кажется, многопоточность 1С не поддерживает?
14 Defender aka LINN
 
16.09.13
11:30
(12) А, кстати, КУДА в базе ты это все писать будешь?
15 s_ustinov
 
16.09.13
11:39
(0) пишешь хранимую процедуру и вызываешь ее асинхронно на уровне sql - то есть из 1с дергаешь сервер субд, чтобы он выполнил хранимку

есть два варианта асинхронного вызова - скорее всего, примерно равнозначные
http://www.sql.ru/forum/1036119/asinhronnoe-vypolnenie-procedury-sp-start-job-ili-service-broker-chto-vybrat
16 Sh18
 
16.09.13
11:49
(15) Спасибо, но муторно

(14) У меня самописная, там есть несколько "моих" справочников ))
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.