|
Проблема задваивания записей движений в регистр накопления (остатки) |
☑ |
0
alpha78
18.07.22
✎
10:27
|
Здравствуйте, возникла Проблема задваивания записей движений в регистр накопления
Вот ОбработкаПроведения документа,
работает для каждой строки табличной части документа в регистр накопления записывается 2 строки - так надо - одна для грузчика, другая для водителя
Вот код:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ЗарплатаВодителямГрузчикам.Записывать = Истина ;
//зарплата водителям
Для Каждого Строка Из Маршруты Цикл
Движение = Движения.ЗарплатаВодителямГрузчикам.Добавить() ;
Движение.ВидДвижения=ВидДвиженияНакопления.Приход ;
Движение.Период = Дата ;
Движение.Регистратор = Ссылка ;
Движение.Маршрут = Строка.Маршрут ;
Движение.Тоннаж = Строка.Тоннаж ;
Движение.Топливо = Строка.Топливо ;
Движение.Скорость = Строка.Скорость ;
Движение.Водитель = Строка.Водитель ;
Движение.Штраф = Строка.Штраф ;
Движение.Зарплата = Строка.ЗарплатаВодителю ;
Движение.Итог = Строка.Топливо + Строка.Скорость + Строка.ЗарплатаВодителю - Строка.Штраф ;
КонецЦикла ;
// зарплата грузчикам
Для Каждого Строка Из Маршруты Цикл
Если Не Строка.Грузчик.Пустая()Тогда
Движение = Движения.ЗарплатаВодителямГрузчикам.Добавить() ;
Движение.ВидДвижения=ВидДвиженияНакопления.Приход ;
Движение.Период = Дата ;
Движение.Регистратор = Ссылка ;
Движение.Маршрут = Строка.Маршрут ;
Движение.Грузчик = Строка.Грузчик ;
Движение.Зарплата = Строка.ЗарплатаГрузчику ;
Движение.Итог = Строка.ЗарплатаГрузчику;
КонецЕсли ;
КонецЦикла ;
Движения.Записать();
КонецПроцедуры
Проблема при проведении бывет записывакется как надо - по 1 строке в регистр, а бывает записывается по 2 строки на каждую фамилию (водителя и грузчика),
кто знает подскажите пожалуйста, спасибо.
|
|
1
1Сергей
18.07.22
✎
10:43
|
Если в документе не установлено автоматическое удаление движений, и программист не позаботился о их очистке, при каждом проведении будут добавляться новые записи
|
|
2
mikecool
18.07.22
✎
10:55
|
+1 значит данные для записи есть
|
|
3
mikecool
18.07.22
✎
10:56
|
+2 в первом цикле нет условия
|
|
4
alpha78
18.07.22
✎
11:49
|
в начале ОбработкиПроведения()
Движения.ЗарплатаВодителямГрузчикам.Записывать = Истина ;
Движения.ЗарплатаВодителямГрузчикам.Очистить();
затем пишем записи в измерения и ресурсы с документа
процедуру ДвиженияЗаписать() не нужно
|
|
5
1Сергей
18.07.22
✎
12:13
|
(4) Тогда ничто не мешает в отладке отловить момент, когда появляются дубли в движениях
|
|