Имя: Пароль:
1C
1С v8
Запустить процедуру после проведения вне транзакции
0 Aceforg
 
19.11.15
13:08
Как запустить свою процедуру после проведения документа вне транзакции?

Подписки не канают, "ПослеЗаписи" и ОбработчикиОжидания" на клиенте. Нужно на сервере!

Фоновые задания? Тогда как узнать, что транзакция завершилась?
1 Ненавижу 1С
 
гуру
19.11.15
13:12
в общем случае никак, а зачем?
2 bolobol
 
19.11.15
13:16
В план обмена левый пусть добавляется документ. Появился и проведён - значит нужно обделать дела вокруг проведения.
3 Aceforg
 
19.11.15
13:20
Чтобы документы по 50к строк не зарегистрировались для обмена, если не изменились.
4 VikingKosmo
 
19.11.15
13:24
при регистрации проверять изменился ли документ?
5 Aceforg
 
19.11.15
13:25
Сами по себе документы не страшны для обмена, но пользователи иногда нечаянно перепроводят документы. Или "чаянно" групповой обработкой. После обмен зависает на часа 2 - 3
6 Aceforg
 
19.11.15
13:25
(4) Да, если не изменился отменить регистрацию
7 VikingKosmo
 
19.11.15
13:26
(6) не надо ничего отменять, нужно перед регистрацией проверять, поменялся ли документ или нет. Profit!
8 Лефмихалыч
 
19.11.15
13:36
(0) При записи генерировать в базе какой-то объект, в котором будет храниться ссылка на проведенный документ.
Регламентным заданием обрабатывать эти объекты, выполнять нужные действия и помечать объекты, как обработанные.

Что за объект использовать - вариантов тьма. Регистр сведений, план обмена, справочник, - да что угодно.
9 Aceforg
 
19.11.15
17:09
(7) Так и сделал, отменил авторегистрацию. Если объект изменился, то программная регистрация
(8) Спасибо за идею, возьму на заметку
10 VikingKosmo
 
19.11.15
17:13
(9) авторегистрация - зло
11 aleks_default
 
19.11.15
17:15
(10)+1
12 Aceforg
 
19.11.15
17:16
(10) А как документы регистрируется, если в правилах регистрации нет никакого отбора.
13 aleks_default
 
19.11.15
17:18
(12) сам прописываешь узлы-получатели
14 VikingKosmo
 
19.11.15
17:21
(12) а что мешает написать ПРО?
15 VikingKosmo
 
19.11.15
17:21
причем не надо изобретать никаких велосипедов. В БСП все уже изобрели...
16 Fragster
 
гуру
19.11.15
17:23
запускаешь фоновое, ему в параметр - ссылку. в фоновом пытаешься установить блокировку на эту ссылку. если время ожидания достаточно - то сразу после транзакции код в фоновом пойдет дальше. я так в http://catalog.mista.ru/public/173394/ потоки синхронизирую (через блокировку константы)
17 Fragster
 
гуру
19.11.15
17:23
ссылку на документ, который проводится
18 Serg_1960
 
19.11.15
17:23
(0) Ты не сказал волшебные слова - "РИБ", "обмен по правилам" :)
Перепроведение - это изменение документа или нет? А если документ не изменили, но движения стали другими - то это как?
19 Serg_1960
 
19.11.15
17:25
Имхо, в типовых уже есть регистр, который позволяет понять изменился документ или нет. Подскажу: версионирование.
20 Aceforg
 
19.11.15
17:25
(14) А кто сказал что нет ПРО?
В БСП есть такое что при перепроведении без изменении не регистрировалось?
21 VikingKosmo
 
19.11.15
17:26
(20) ЕМНИП в БСП, в МРО таки проверяется изменился ли объект или нет.
22 Гёдза
 
19.11.15
17:28
(21) Нет не проверяет
23 aleks_default
 
19.11.15
17:29
А если документ не изменили, но движения стали другими - то это как? - это из рубрики "сделано кривыми руками"?
24 Fragster
 
гуру
19.11.15
17:31
(23) такое запросто может быть при автоподборе партий/автозачете авансов
25 Fragster
 
гуру
19.11.15
17:31
непонятно, чем мешает повторная выгрузка документа...
26 Serg_1960
 
19.11.15
17:33
(23) Не обязательно как что, так "кривые ручки". При обмене с различными конфигурациями нет смысла обмениваться движениями - документ проводится в базе-получателе - в типовых есть функционал "отложенное проведение".
27 Fragster
 
гуру
19.11.15
17:46
(26) но ведь перепровести документ в получателе надо, ведь приехавшие _другие_ данные также могут повлиять на тот же зачет авансов...
28 aleks_default
 
19.11.15
17:53
(25) Видимо у них там простыни по 100500 строк, которые вешают обмен.
29 Aceforg
 
19.11.15
17:58
(25) по 50к, 3 таких документа вешают обмен на 2-3. Пользователи никак не научатся закрывать без сохранения, да и кнопка "Провести и закрыть" такая большая)
30 Fragster
 
гуру
19.11.15
18:12
(29) сделай открытие таких документов в r/o, включение редактирования по кнопке в выпадающем меню
31 Aceforg
 
19.11.15
18:18
(30) Если надо было бы усложнить редактирование и перепроведение, я бы так и сделал.

Но задачу поставили, отрезать на... регистрацию при перепроведении.
32 VikingKosmo
 
19.11.15
18:20
(31) Объект.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов", Истина)
33 Aceforg
 
19.11.15
18:23
(31) Спасибо, но поезд уже ушел
34 bolobol
 
19.11.15
18:28
(32) И чо?

По теме (сам бьюсь с фильтрацией регистраций): Документ по каким-то причинам (флуктуации на солнце, луна в седьмом доме) не дошёл до некоторого узла, но там он нужен. Как заставить его туда отправиться? Надо делать два _изменения_, простой перезаписью уже не обойтись. Проблема начинается тогда, когда на вскидку не видно - какого документа не хватает обновить в узле. И тут через пень-колоду регистрировать вручную документы на обмен, что ой как не удобно и пользователи сами не могут это сделать. Надумано? Нет. Я ушёл в отпуск и неделю долбили перепроведение вдоль и поперёк, чтобы заставить документ отправиться в нужный узел - не осилили. Оказалось - запрещена регистрация не изменённых объектов - никто даже не догадался копать там)
35 VikingKosmo
 
19.11.15
18:32
(34) и все, ни кто никуда не регистрируется
36 bolobol
 
19.11.15
19:18
(35) Насколько мне известно - ДополнительныеСвойства - это структура для хранения некоторых данных, но никак не команд, тем более - это не отключатель механизма регистрации, даже если так обозвать элемент структуры. С чего бы документ перестанет регистрироваться?
ОбменДанными.Загрузка= Истина; - это команда, и то, нужно указать откуда загрузка, чтобы только туда не регистрировалось, а во всё остальное - зарегистрируется - как пить дать!
37 Fragster
 
гуру
19.11.15
21:41
(36) ну, видимо, либо в БСП, либо у автора этот случай обрабатывается. Также ОбменДанных.Получатели.Автозаполенение = Ложь, или как там... давно СП не открывал...
38 Serg_1960
 
20.11.15
00:06
Память не изменяет :)
http://its.1c.ru/db/metod8dev/content/2269/hdoc