Имя: Пароль:
1C
1С v8
Запись реквизит документа в подписке проведения.
, ,
0 goleaff2006
 
16.06.16
06:56
Как можно записать значение в реквизит документа,а именно ошибку  которая возникает в подписке проведения.
1 goleaff2006
 
16.06.16
06:57
При отмене транзакий ответственно все откатится.
2 catena
 
16.06.16
06:59
(1)Проводить-изменить реквизит-записать-провести-изменить-записать-провести....
3 goleaff2006
 
16.06.16
07:10
Что, при проведение  в подписке допустим мы  получили некую ошибку, если в этой же подписке  сделать
док.реквизит=Описаниеошибки()
док.записать(режимзаписи.запись)
то это не отработает так как транзакия откатится,
и в рекизите док.реквизит будет пусто.
4 МастерВопросов
 
16.06.16
07:24
(1) может сначала через попытку Провести
5 goleaff2006
 
16.06.16
07:33
Неа, потому что в подписке принудительно ставлю флаг отказ , если кое какое условие не выполняется, и проверка именно уже после поведения.
6 hhhh
 
16.06.16
07:40
(5) а зачем в документ писать такую невероятную фигню? Есть же журнал регистрации.
7 goleaff2006
 
16.06.16
07:44
Меня не спрашивают, документы проводятся  регламентным заданием, пользователи хотят видеть причину если не смог провестить и исправить документ.Документов много и через журнал слишком долго.
8 Beretta
 
16.06.16
07:47
(7) Если тебя не спрашивают - ты никто. Пиши в регистр фоновым.
9 goleaff2006
 
16.06.16
07:49
Все мы в этом бранном мире никто =)и ты тоже..
10 goleaff2006
 
16.06.16
07:53
(8)и че откат транзакции оставит запись в регистре?
11 Beretta
 
16.06.16
07:53
(9) Бренном, бренном мире, дети ЕГЭ со смартфонами...
12 Beretta
 
16.06.16
07:54
(10) фоновое начнет свой сеанс
13 Beretta
 
16.06.16
07:55
А регистр - чтобы не ждать когда твой сеанс отпустит заблокированный документ.
14 goleaff2006
 
16.06.16
07:56
не хотелось бы  создавать регистр , вроде для такой мелочи.
15 goleaff2006
 
16.06.16
07:57
(11) и да егэ я не сдавал, поступал как все  до введения егэ =))) русский правда завалил, но не помешало поступить.
16 Beretta
 
16.06.16
07:57
(14) Пиши в журнал регистрации, вообще ничего создавать не надо. Ах, да, тебя же не слушают...
17 goleaff2006
 
16.06.16
07:58
(16)->(7)
18 hhhh
 
16.06.16
08:00
(14) ну элементарно же что ты паришься?

Попытка

    док.Зписать(режим записи проведения)

Исключение
  док.рекв = ОписаниеОшибки();
  док.записать(режим запись)
19 Beretta
 
16.06.16
08:00
Пиши во внешние файлы, будь мужиком! Для чтения даже в базу заходить не надо!
20 Beretta
 
16.06.16
08:02
(18) и "в данной транзакции уже происходили ошибки", хехе
21 catena
 
16.06.16
08:17
У меня все рег.задания отправляют письма на служебный ящик и по требованию ответственным пользователям. В письме вся служебная информация, описания ошибок, исключения и сбор сообщений пользователю. Один раз пишем процедуру и вставляем пару строк кода в рег.задания.
22 FIXXXL
 
16.06.16
08:17
(14) я похожую задачу решал так:
при отказе проведения в конфе есть глобальная функция, которая сообщает об ошибке, все ошибки при проведении всех документов выводятся через эту функцию
в эту функцию добавил вызов функции из модуля повторного использования
функция повторного использования - одна строка: Возврат Новый Массив
т.к. это модуль повторного использования, ошибки копятся
другой функцией я считываю массив ошибок и при необходимости чищу его
после проведения документа массив ошибок можно считать  и записать куда угодно
23 hhhh
 
16.06.16
08:29
(20) ну можно так

Удачно = ложь;

Попытка

    док.Зписать(режим записи проведения)
    Удачно = истина;
Исключение
  опис = ОписаниеОшибки();

конецпопытки;

Если удачно = Ложь тогда
Попытка

    док.рекв = опис;
    док.Записать(режим записи запись)

Исключение
КонецПопытки;

КонецЕсли;
24 goleaff2006
 
16.06.16
08:32
А если из формы захотят перепровести?
25 mistеr
 
16.06.16
08:35
(6) +1
26 catena
 
16.06.16
08:50
(24)Из формы клиент на экране все ошибки увидит.
27 goleaff2006
 
16.06.16
08:54
а другие как увидят?
28 catena
 
16.06.16
08:59
(27)Это называется "паранойя". Ее надо лечить.
29 goleaff2006
 
16.06.16
09:02
Это называется оптимизация, пользователи не должен тратить время на лазенье в не предназначенные для него места.Они должны работать только с документами и видеть что не так.