Имя: Пароль:
1C
1С v8
непонятки с ОбработкойПроведения()
,
0 hatsher
 
23.01.12
00:43
Имеется типовая БП, док реализацияТоваровУслуг, ПРоцедура ОбработкаПроведения().
В начало процедуры помещаю следующий код:
       наборЗаписей =  РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
   наборЗаписей.Отбор.период.установить(ТекущаяДата());
   Нов = наборЗаписей.Добавить();
   Нов.Валюта = КОнстанты.ВалютаРегламентированногоУчета.Получить();
   Нов.Период = ТекущаяДата();
   Нов.Курс =1;
   Нов.Кратность =1;
   НаборЗаписей.Записать();


Результат: при проведении документа без ошибок(Отказ = ЛОЖЬ) - запись в РС добавляется. Если в процедуре Отказ=ИСТИНА, то запись в РС не добавляется, несмотря на то, отладчик проходит кусок модуля с записью в РС полностью.
Получается, что процедура ОбработкаПРоведения работает в какой-то внутренней транзации чтоле.

Как сделать, чтобы данные в РС записывались при ошибках проведения?
1 GROOVY
 
23.01.12
00:46
ПРи каком событии нужно поместить данные в регистр сведений?
2 hatsher
 
23.01.12
00:48
(1) ну вообще-то - нужно записывать в РС все ошибки, которые возникают при проведении дока. Это ОбщегоНазначения.СообщитьОбОшибке()
Но я вот пока тестирую и вижу такую багу
3 hatsher
 
23.01.12
00:49
почему не происходит запись в РС при ошибках в проведении ?
4 GROOVY
 
23.01.12
00:50
Потому что там транзакция отказывается.
5 hatsher
 
23.01.12
00:50
(4) а как её обмануть?
6 GROOVY
 
23.01.12
00:51
(2) А журнал регистрации и технологический журнал чем не устраивают?
7 hatsher
 
23.01.12
00:51
+ пробовал свой кусок модуля выполнять в транзакции - безрезультатно
8 GROOVY
 
23.01.12
00:51
(5) Никак, транзакция она такая транзакция... Вариант - вынести все за транзакцию...
9 hatsher
 
23.01.12
00:52
(6) не устраивает. Нужно именно такое управленческое решение.
10 GROOVY
 
23.01.12
00:52
Ну изобретайте велосипед дальше...
11 hatsher
 
23.01.12
09:28
ап. кто что скажет?
12 Maxus43
 
23.01.12
09:37
что сказать то? Выполняется транзакция, в её рамках принимаются все изменения или всё откатывается, частично нельзя. Ты в рамках транзакции пишеш... Выводи за её пределы, другого не дано
13 Maxus43
 
23.01.12
09:39
для (2) Журнал регистрации только, для этого и придуман
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс