Имя: Пароль:
1C
1С v8
Регистрация документа на обмен
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) Вообще в документе при проведении есть условие, что если он проведен конкретной датой, то проводки по этому документу не формируются(желание заказчика). Однако в проводках формируются нужные субконто и остальные данные для переноса. При закрытии месяца проводки уже формируются, где регистратор регламентная операция. Связываю все эти факторы и переношу недостающие данные в другую базу