![]() |
|
Корректировка проведения документа | ☑ | ||
---|---|---|---|---|
0
Sayan_mi
04.04.18
✎
10:28
|
ЗУП 3.1 Потребовалось при проведении документа увольнение подкорректировать запись в регистр Плановые начисления.
Чтобы не влезать в документ напрямую делаю через подписку на событие при проведении. Корректирую вот так: Выборка = РезультатЗапроса.Выбрать(); ткДвижения = Источник.Движения.ПлановыеНачисления.Выгрузить(); Пока Выборка.Следующий() Цикл ткСтрока = ткДвижения.Найти(Выборка.Начисление, "Начисление"); ткСтрока.ДействуетДо = КонецМесяца(ДобавитьМесяц(Источник.ДатаУвольнения, 1)); ткСтрока.Используется = Истина; ткСтрока.УдалитьИспользуетсяПоОкончании = Истина; КонецЦикла; Источник.Движения.ПлановыеНачисления.Загрузить(ткДвижения); Смотрю по отладчику - Источник.Движения.ПлановыеНачисления тот что надо те строки что надо подправлены. После проведения в регистре движения такие будто изменений и не вносил. почему так получается? Пробовал через создание Набора записей - Создаются нужные но и старые остаются, а не хотелось бы тем паче что при просмотре срез последних по регистру добавленных записей не видно. |
|||
1
AlexTim03
04.04.18
✎
10:32
|
Источник.Движения.ПлановыеНачисления.Записывать = Истина
|
|||
2
Cyberhawk
04.04.18
✎
10:43
|
Если в обработке проведения документа вызывается явная запись движений из коллекции движений регистратора, то признак необходимости записи в этом случае сбрасывается и в твоей подписке хоть заизменяйся, а без возобновления признака необходимости записи ничо не запишется
|
|||
3
Cyberhawk
04.04.18
✎
10:43
|
(ну, это если записыватьвыбранные = истина у документа-объекта МД)
|
|||
4
rozer76
04.04.18
✎
11:15
|
(0) явно запиши потом набор
|
|||
5
Serg_1960
04.04.18
✎
11:41
|
(0) Скорее всего движения уже были записаны в регистр и не имеет смысла их изменять без повторной явной записи в регистр.
PS: а я бы сделал бы через подписку ПередЗаписьюРегистра... оно так надёжнее перехватить все пути к регистру. |
|||
6
shuhard
04.04.18
✎
11:42
|
(5)[ а я бы сделал бы через подписку ПередЗаписьюРегистра]
и обновлять куда как проще |
|||
7
rozer76
04.04.18
✎
11:47
|
(5) +1
|
|||
8
Serg_1960
04.04.18
✎
11:48
|
(6) Ну... я вспомнил :) что есть ещё документ "УвольнениеСписком".
|
|||
9
Serg_1960
04.04.18
✎
11:54
|
Посмотрел алгоритм, там
Вызов процедуры ПрекратитьВсеПлановыеНачисленияПоТаблицеСотрудников() с "Движения.ПлановыеНачисления.Записывать = Истина;" и далее в модуле менеджера - вызов ПроведениеРасширенныйСервер.ЗаписьДвиженийПоУчетам() с записью в регистры: Для Каждого Движение Из Движения Цикл Если СтруктураВидовУчета.ПроведениеПоВсемУчетам Тогда Движение.Значение.Записать(); Иначе Если СтруктураВидовУчета.МассивРегистров.Найти(Движение.Значение.Метаданные()) <> Неопределено Тогда Движение.Значение.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |