Имя: Пароль:
1C
1С v8
Как обрабатывать с отсрочкой некоторые объекты в плане обмена?
,
0 lenkavovka
 
23.10.18
06:52
Здравствуйте!
В одной базе (ЗКГУ) в плане обмена регистрируются события кадровых перемещений (приём, перевод), чтобы передать в другую базу текущее место работы, вид занятости, количество ставок сотрудника.

Правила обмена подготавливаем в Конвертации данных 2.0.

База - приёмник (ДГУ) не умеет хранить историю кадровых состояний, она знает только, что сегодня Иванов по основному месту работы работает слесарем на 0,5 ставки.

Но если Иванова переводят с 1 января следующего года на 3/4 ставки электрика, то в ЗКГУ он будет помечен для обмена сегодня, а не первого января.

У нас есть выбор: либо сегодня передать его текущее состояние, тогда 1 января в приёмнике он и останется слесарем. Либо передать последнее состояние на текущий момент, тогда в приёмнике он электриком станет уже сегодня, что тоже неправильно.

Одно из очевидных решений - сделать в ЗКГУ обработку, которая будет запускать в фоновом задании и в дату наступления события приёма или перевода будет помечать сотрудника в плане обмена.

Может быть, есть стандартные механизмы отсроченной обработки?
Всех сотрудников ежедневно выгружать - не вариант, их более 3000.
1 lenkavovka
 
23.10.18
06:54
Поправка, события кадровых перемещений конечно же не регистрируются в плане обмена, а регистрируют объекты, с которыми произошли изменения. В данном случае - сотрудники и их данные.
2 aleks_default
 
23.10.18
10:06
А направление обмена в одну сторону или в обе?
3 Cyberhawk
 
23.10.18
10:22
Запретить регистрацию этих объектов, если изменение состояния наступает в будущем.
Сделать регл. задание / обработку, которое будет к выгрузке помечать все объекты с наступившей актуальностью.
4 lenkavovka
 
23.10.18
15:20
(2) По факту в одну.
(3) Похоже, это единственный рабочий вариант.
5 Cyberhawk
 
23.10.18
15:25
Ну можно еще в коде обрабтчиков выгрузки (в правилах конвертации) анализировать и не выгружать объект, если время для него не наступило. Ну и перерегистрировать не забывать.
6 aleks_default
 
23.10.18
16:27
(5)При загрузке ответного обменника все зарегистрированные и не выгруженные объекты очистятся.
7 Cyberhawk
 
23.10.18
16:27
(6) Ты конечно же ошибаешься
8 aleks_default
 
23.10.18
16:31
Почему? Очистка же по номеру выгруженного делается
9 aleks_default
 
23.10.18
16:32
Или ты предлагаешь перерегистрировать после выгрузки?
10 Cyberhawk
 
23.10.18
16:34
Ты пишешь "все зарегистрированные и не выгруженные объекты очистятся". Это не так: очистятся только те, номер выгруженного которых менее или равен номеру, что прилетел в источник в сообщении-подтверждении загрузки из приемника.
11 VS-1976
 
23.10.18
16:35
(8) Да только ты туда всё прочитаешь и что нужно и чего не нужно.

Можно конечно проверять по дате документа, к примеру и если дата старше текущего момента, тупо удалять из плана обмена, а документ в массив. Дальше после чистки плана, выгружаешь. Ну и после выгрузки опять засовываешь в план. Но лучше конечно регламент сделать и регистр сведений к примеру...
12 Cyberhawk
 
23.10.18
16:35
(9) Да, вроде довольно явно это написано в моем последнем предложении из (5)?
13 aleks_default
 
23.10.18
16:50
(12)Просто не сразу дошло.