|
Регистрация документа на обмен |
☑ |
0
kintevy
20.03.23
✎
09:20
|
После выполнения регламентной операции "Закрытие месяца" по определенному типу документа, мне необходимо этот документ сразу же после выполнения операции зарегистрировать на обмен. Как это сделать программно?
|
|
1
kintevy
20.03.23
✎
09:25
|
(0) Пока что мысли идут в направлении: Модуль менеджера обработки закрытие месяца. В процедуре "ВыполнитьЗакрытиеМесяца" Если Операция = выполнено тогда ПланыОбмена.ЗарегистрироватьИзменения(ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("тут должен быть код, но не знаю как его определить для узла", Неопределено);
|
|
2
unenu
20.03.23
✎
09:59
|
(1) "Закрытие месяца" может выпасть в ошибку после этапа регистрации и сделать откат
|
|
3
unenu
20.03.23
✎
10:01
|
хотя, если Если Операция = выполнено, то может я и не прав.
|
|
4
Serg_1960
20.03.23
✎
10:22
|
Эээ... если у автора типовая конфигурация, то не рекомендую "напрямую" регистрировать изменения - мало ли как что настроено. Лучше использовать типовой функционал. Регистрация, как правило, делается через подписки. Например, что-то типа подписка СинхронизацияДанныхЧерезУниверсальныйФорматРегистрацияДокумента(), обработчик - ОбменДаннымиСобытияУниверсальныйФормат.СинхронизацияДанныхЧерезУниверсальныйФорматПередЗаписьюДокумента()...
|
|
5
Serg_1960
20.03.23
✎
10:23
|
(3) Если откат транзакции - то и регистрация "откатится".
|
|
6
Serg_1960
20.03.23
✎
10:56
|
(1) Регистрация изменений для ВСЕХ объектов, метаданные которых входят в состав плана обмена:
Выборка = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Ссылка <> ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ЭтотУзел() Тогда
ПланыОбмена.ЗарегистрироватьИзменения(Выборка.Ссылка, Неопределено);
КонецЕсли;
КонецЦикла;
|
|
7
kintevy
20.03.23
✎
11:01
|
(6) А какой самый корректный вариант для регистрации только одного объекта? Через подписку?
|
|
8
Serg_1960
20.03.23
✎
12:49
|
(7) Используя типовой функционал конфигурации. Например, см.(4) - регистрация изменении перед записью документа. Т.е. регистрация объекта если он изменяется. Позволь встречный вопрос: если документ не изменяется - зачем его регистрировать к обмену? Может быть нужно регистрировать то, что этот документ изменяет?
|
|
9
DJ Anthon
20.03.23
✎
12:53
|
(8) например, если ему надо перенести все доки за большой период в другую базу, но не все сразу, а помесячно - триггер - успешное закрытие месяца, которое выполняется примерно раз в день
|
|
10
kintevy
20.03.23
✎
13:04
|
(8) Вообще в документе при проведении есть условие, что если он проведен конкретной датой, то проводки по этому документу не формируются(желание заказчика). Однако в проводках формируются нужные субконто и остальные данные для переноса. При закрытии месяца проводки уже формируются, где регистратор регламентная операция. Связываю все эти факторы и переношу недостающие данные в другую базу
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший