Запустить процедуру после проведения вне транзакции #758665


#0 by Aceforg
Как запустить свою процедуру после проведения документа вне транзакции? Подписки не канают, "ПослеЗаписи" и ОбработчикиОжидания" на клиенте. Нужно на сервере! Фоновые задания? Тогда как узнать, что транзакция завершилась?
#1 by Ненавижу 1С
в общем случае никак, а зачем?
#2 by bolobol
В план обмена левый пусть добавляется документ. Появился и проведён - значит нужно обделать дела вокруг проведения.
#3 by Aceforg
Чтобы документы по 50к строк не зарегистрировались для обмена, если не изменились.
#4 by VikingKosmo
при регистрации проверять изменился ли документ?
#5 by Aceforg
Сами по себе документы не страшны для обмена, но пользователи иногда нечаянно перепроводят документы. Или "чаянно" групповой обработкой. После обмен зависает на часа 2 - 3
#6 by Aceforg
Да, если не изменился отменить регистрацию
#7 by VikingKosmo
не надо ничего отменять, нужно перед регистрацией проверять, поменялся ли документ или нет. Profit!
#8 by Лефмихалыч
При записи генерировать в базе какой-то объект, в котором будет храниться ссылка на проведенный документ. Регламентным заданием обрабатывать эти объекты, выполнять нужные действия и помечать объекты, как обработанные. Что за объект использовать - вариантов тьма. Регистр сведений, план обмена, справочник, - да что угодно.
#9 by Aceforg
Так и сделал, отменил авторегистрацию. Если объект изменился, то программная регистрация Спасибо за идею, возьму на заметку
#10 by VikingKosmo
авторегистрация - зло
#11 by aleks_default
+1
#12 by Aceforg
А как документы регистрируется, если в правилах регистрации нет никакого отбора.
#13 by aleks_default
сам прописываешь узлы-получатели
#14 by VikingKosmo
а что мешает написать ПРО?
#15 by VikingKosmo
причем не надо изобретать никаких велосипедов. В БСП все уже изобрели...
#16 by Fragster
запускаешь фоновое, ему в параметр - ссылку. в фоновом пытаешься установить блокировку на эту ссылку. если время ожидания достаточно - то сразу после транзакции код в фоновом пойдет дальше. я так в потоки синхронизирую (через блокировку константы)
#17 by Fragster
ссылку на документ, который проводится
#18 by Serg_1960
Ты не сказал волшебные слова - "РИБ", "обмен по правилам" :) Перепроведение - это изменение документа или нет? А если документ не изменили, но движения стали другими - то это как?
#19 by Serg_1960
Имхо, в типовых уже есть регистр, который позволяет понять изменился документ или нет. Подскажу: версионирование.
#20 by Aceforg
А кто сказал что нет ПРО? В БСП есть такое что при перепроведении без изменении не регистрировалось?
#21 by VikingKosmo
ЕМНИП в БСП, в МРО таки проверяется изменился ли объект или нет.
#22 by Гёдза
Нет не проверяет
#23 by aleks_default
А если документ не изменили, но движения стали другими - то это как? - это из рубрики "сделано кривыми руками"?
#24 by Fragster
такое запросто может быть при автоподборе партий/автозачете авансов
#25 by Fragster
непонятно, чем мешает повторная выгрузка документа...
#26 by Serg_1960
Не обязательно как что, так "кривые ручки". При обмене с различными конфигурациями нет смысла обмениваться движениями - документ проводится в базе-получателе - в типовых есть функционал "отложенное проведение".
#27 by Fragster
но ведь перепровести документ в получателе надо, ведь приехавшие _другие_ данные также могут повлиять на тот же зачет авансов...
#28 by aleks_default
Видимо у них там простыни по 100500 строк, которые вешают обмен.
#29 by Aceforg
по 50к, 3 таких документа вешают обмен на 2-3. Пользователи никак не научатся закрывать без сохранения, да и кнопка "Провести и закрыть" такая большая)
#30 by Fragster
сделай открытие таких документов в r/o, включение редактирования по кнопке в выпадающем меню
#31 by Aceforg
Если надо было бы усложнить редактирование и перепроведение, я бы так и сделал. Но задачу поставили, отрезать на... регистрацию при перепроведении.
#32 by VikingKosmo
Объект.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов", Истина)
#33 by Aceforg
Спасибо, но поезд уже ушел
#34 by bolobol
И чо? По теме (сам бьюсь с фильтрацией регистраций): Документ по каким-то причинам (флуктуации на солнце, луна в седьмом доме) не дошёл до некоторого узла, но там он нужен. Как заставить его туда отправиться? Надо делать два _изменения_, простой перезаписью уже не обойтись. Проблема начинается тогда, когда на вскидку не видно - какого документа не хватает обновить в узле. И тут через пень-колоду регистрировать вручную документы на обмен, что ой как не удобно и пользователи сами не могут это сделать. Надумано? Нет. Я ушёл в отпуск и неделю долбили перепроведение вдоль и поперёк, чтобы заставить документ отправиться в нужный узел - не осилили. Оказалось - запрещена регистрация не изменённых объектов - никто даже не догадался копать там)
#35 by VikingKosmo
и все, ни кто никуда не регистрируется
#36 by bolobol
Насколько мне известно - ДополнительныеСвойства - это структура для хранения некоторых данных, но никак не команд, тем более - это не отключатель механизма регистрации, даже если так обозвать элемент структуры. С чего бы документ перестанет регистрироваться? ОбменДанными.Загрузка= Истина; - это команда, и то, нужно указать откуда загрузка, чтобы только туда не регистрировалось, а во всё остальное - зарегистрируется - как пить дать!
#37 by Fragster
ну, видимо, либо в БСП, либо у автора этот случай обрабатывается. Также ОбменДанных.Получатели.Автозаполенение = Ложь, или как там... давно СП не открывал...
#38 by Serg_1960
Память не изменяет :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С