|
Обмен данными. Служба регистрации изменений | ☑ | ||
---|---|---|---|---|
0
IoannVic
02.03.16
✎
16:50
|
Всем привет. Подскажите, пожалуйста, как мне поймать момент когда объект включенный в план обмена записывается в таблицу регистрации изменений. Пробовал в модуле объекта в процедуре ПриЗаписи(), но там документ еще отсутствует в таблице регистрации изменений. Гугл ничего подсказать не может
|
|||
1
Fragster
гуру
02.03.16
✎
16:52
|
тебе зачем?
|
|||
2
IoannVic
02.03.16
✎
16:53
|
(1) Мне нужно производить обмен через Web-сервис при изменение объекта. Фиксация изменений осуществляется через ПланОбмена
|
|||
3
Fragster
гуру
02.03.16
✎
16:57
|
прям онлайн-онлайн?
|
|||
4
Fragster
гуру
02.03.16
✎
16:59
|
можешь прямо при записи запускать фоновое задание обмена, все будет нормально.
|
|||
5
Fragster
гуру
02.03.16
✎
16:59
|
+ само по себе пусть работает раз в 10 минут
|
|||
6
Fragster
гуру
02.03.16
✎
17:00
|
с паузой в 10 минут
|
|||
7
IoannVic
02.03.16
✎
17:00
|
(3) Это к сути задачи не имеет никакого отношения. Если интересен этот вопрос, то к поставщику данной задачи этот вопрос. Мне такой расклад тоже не айс, но я не составляю ТЗ. Меня интересует момент фиксации измений в таблицу изменений. Ни на ИТС, ни в справочнике разработчика не нашел (может быть плохо искал). Интересует событие при авторегистрации
|
|||
8
IoannVic
02.03.16
✎
17:01
|
(6) Я то могу, но заказчика такой вариант не устроит. Поэтому спрашиваю, когда и где происходит регистрация
|
|||
9
Fragster
гуру
02.03.16
✎
17:01
|
(7) либо в транзакции записи, либо руками через метод встроенного языка. самого события - нет.
|
|||
10
Fragster
гуру
02.03.16
✎
17:03
|
(8) устроит. если запускать фоновое прям из призаписи - то будет почти онлайн. настолько почти, что даже незаметно.
Ну, конечно, если нужно организовать что-то типа распределенной транзакции - можешь прямо в событии ПриЗаписи отправлять данные и очищать получателей в ОбменДанными, но там возможны варианты с недоступносью ресурса, на который выгружаешь и т.п. |
|||
11
IoannVic
02.03.16
✎
17:04
|
(9) Транзакция записи она длинная, поэтому уточняю момент, мне естественно необходимо это делать в модуле объекта (если речь о транзакции записи). Насколько помню там ПриЗаписи последнее событие. А не подскажете о каком методе речь?
|
|||
12
Fragster
гуру
02.03.16
✎
17:05
|
самое эпическое, что я делал - это при проведении документа с движением по складу - отправка документа в узел РИБ того склада через вебсервис, его проведение с контролем остатков именно в той базе и при успехе - передача его обратно уже с движениями.
|
|||
13
Fragster
гуру
02.03.16
✎
17:05
|
(11) ПланыОбменаМенеджер.ЗарегистрироватьИзменения (ExchangePlansManager.RecordChanges)
ПланыОбменаМенеджер (ExchangePlansManager) ЗарегистрироватьИзменения (RecordChanges) Синтаксис: ЗарегистрироватьИзменения(<Узлы>, <Данные>) Параметры: <Узлы> (обязательный) Тип: ПланОбменаСсылка.<Имя плана обмена>; Массив. Одиночное значение типа ПланОбменаСсылка.<Имя плана обмена> или массив таких значений, показывающие для пересылки в какие узлы регистрируются изменения. <Данные> (необязательный) Тип: Метаданные, Неопределено; УдалениеОбъекта; Число; <Данные>. Значением данного параметра может быть объект метаданных, объект, представляющий данные, хранимые в базе данных, такой как документ, элемент справочника, счет бухгалтерского учета, менеджер записи константы, набор записей регистра и т. п., ссылка на объект базы данных, а также Неопределено. Если указан объект метаданных, то регистрация изменений будет произведена для всех элементов данных, относящихся к указанному объекту метаданных. Объект метаданных должен входить в состав планов обмена всех узлов, указанных в первом параметре. Если указан объект представляющий данные, хранимые в базе данных, или ссылка, то регистрация изменений будет произведена только для указанных данных. Объект метаданных, соответствующий данным, должен входить в состав всех планов обмена всех узлов, указанных в первом параметре. Если указан УдалениеОбъекта, то регистрация изменений выполняется для объекта базы данных, на который "указывает" ссылка, содержащаяся в объекте УдалениеОбъекта. Если указано Неопределено или не указан, то в качестве первого параметра может быть указан только одиночный узел. И в этом случае будет выполнена регистрация изменений для всех объектов, метаданные которых входят в состав плана обмена, к которому относится узел, указанный в качестве первого параметра. Для набора записей регистра сведений, в случае, если регистратор не определен, в качестве ключа используется совокупность измерений, входящих в основной отбор. А если регистр сведений является периодическим и включен основной отбор по периоду, то в ключ входит еще и период. Значение по умолчанию: Неопределено. Описание: Регистрирует изменения одного или группы элементов данных для последующей выборки и передачи изменений в адрес одного или нескольких узлов планов обмена. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Пример: // Пример 1 Валюты = Метаданные.Справочники.Валюты; Узел = ПланыОбмена.ПО1.НайтиПоКоду("Офис"); ПланыОбмена.ЗарегистрироватьИзменения(Узел, Валюты); // Пример 2 // Для документов РасходнаяНакладная регистрация изменений для узла // производится только при совпадении складов узла и накладной // Выбираем документы РасходнаяНакладная по складу узла Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Документ.РасходнаяНакладная |ГДЕ Склад = &Склад"); Запрос.УстановитьПараметр("Склад", Узел.Склад); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл // регистрируем изменение документа для узла ПланыОбмена.ЗарегистрироватьИзменения(Узел, Выборка.Ссылка); КонецЦикла; -------------------------------------------------------------------------------- Методическая информация |
|||
14
Fragster
гуру
02.03.16
✎
17:06
|
только как этопоможет?
|
|||
15
Fragster
гуру
02.03.16
✎
17:06
|
этого метода может и не быть, например если установлена авторегистрация, или получатели заполняются через .ОбменДанными.Получатели в транзакции записи
|
|||
16
Fragster
гуру
02.03.16
✎
17:07
|
СправочникОбъект.<Имя справочника>.ОбменДанными (CatalogObject.<Имя справочника>.DataExchange)
СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>) ОбменДанными (DataExchange) Использование: Только чтение. Описание: Тип: ПараметрыОбменаДанными. Используется для управления обменом данных. С помощью данного свойства настраивается состав узлов-получателей, для которых будут регистрироваться изменения данных, узел-отправитель, из которого получена записываемая информация, а также устанавливается режим Загрузка, указывающий, что выполняется перенос информации. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). -------------------------------------------------------------------------------- Методическая информация |
|||
17
IoannVic
02.03.16
✎
17:08
|
(12) Да в том, то и дело что такой вариант не прокатит. беда с этой авторегистрацией, наверное, буду вручную регистрировать и сразу после выгружать
|
|||
18
IoannVic
02.03.16
✎
17:09
|
(14) Ну собственно к тому же и пришел
|
|||
19
Fragster
гуру
02.03.16
✎
17:25
|
(17) не надо так
|
|||
20
aleks_default
02.03.16
✎
17:40
|
Зачем вообще регистрировать если выгружать будешь при записи? Регистрация как раз и нужна для того чтобы выгрузить пакет измененных объектов за период времени, а не один объект.
|
|||
21
Fragster
гуру
02.03.16
✎
17:59
|
(20) если не надо распределенной транзакции, то правильнее будет именно зарегистрировать (в т.ч. автоматом), запустить фоновое, которое дождется конца транзакции (например по ожиданию на блокировке) и выгрузит изменения. тогда время и результат транзакции не будут зависеть от времени выгрузки и доступности того места, куда это все выгружается.
|
|||
22
IoannVic
02.03.16
✎
18:26
|
(20) Требование описанное в ТЗ. Данный вариант представлен архитектором проекта. (21) Фоновое задание забраковали, еще вчера.
|
|||
23
Ник080808
02.03.16
✎
18:46
|
(22) архитектор проекта 1с хоть раз в жизни видел не на картинке?
|
|||
24
IoannVic
02.03.16
✎
18:50
|
(23) ??? Ну на последних двух проектах по ERP 2.0 видел двух. А еще штат консультантов, разработчиков, тестировщиков, ну и руководитель проекта и технический директор проекта. Это нормально для крупных проектов
|
|||
25
Ник080808
02.03.16
✎
19:03
|
(24) я о конкретно вашем, который "Фоновое задание забраковали, еще вчера."
|
|||
26
Fragster
гуру
02.03.16
✎
19:29
|
пойти, что ли, в архитекторы...
|
|||
27
zak555
03.03.16
✎
05:47
|
(24) сколько лоботрясов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |