|
Косяк при проведении отчета о розничных продажах? |
☑ |
0
maker92
01.11.20
✎
14:08
|
Здравствуйте.
Есть КА 2.4.10.89, версия 1с 8.3.16.1148, тонкий клиент.
Есть проведенные отчеты о розничных продажах, в движениях которых задвоены строки Если повторно перепроводить документ, то ничего не меняется, но если отменить и провести заново, тогда количество строк в движениях уменьшиться в 2 раза.
Вот код, выполняющийся при проведении (общий модуль ПроведениеСерверУТ):
// Процедура выполняет подготовку наборов записей документа к записи движений.
// 1. Очищает наборы записей от "старых записей" (ситуация возможна только в толстом клиенте)
// 2. Взводит флаг записи у наборов, по которым документ имеет движения
// Вызывается из модуля документов при проведении.
//
// Параметры:
// Объект - ДокументОбъект - наборы записей которого нудно подготовить
// ЭтоНовый - Булево - признак нового документа
// ДвиженияМетаданные - свойство метаданных Движения.
// ОтключитьПроверкуДатыЗапретаИзменения - Булево.
//
Процедура ПодготовитьНаборыЗаписейКРегистрацииДвижений(Объект, ЭтоНовый = Ложь, ДвиженияМетаданные = НеОпределено, ОтключитьПроверкуДатыЗапретаИзменения = Ложь) Экспорт
Перем ЭтоНовыйДокумент, МетаданныеДвижения;
Для Каждого НаборЗаписей Из Объект.Движения Цикл
Если НаборЗаписей.Количество() > 0 Тогда // здесь всегда возвращается 0
НаборЗаписей.Очистить();
КонецЕсли;
КонецЦикла;
Может кто знает, косяк это или так и должно быть.
Заранее спасибо.
|
|
1
Злопчинский
01.11.20
✎
15:18
|
Вопрос поставлен криво и мутно.
ну задвоены строки и задвоены. Результат при этом - правильный или нет? если правильный - то не пофиг?
Если количество строк в движениях уменьшилось в два раза, это тоже ни о чем не говорит. может в каждой строке - удвоенное количество. и результат не изменился.
.
|
|
2
Cthulhu
01.11.20
✎
15:28
|
смахивает на задвоенный вызов в рамках одной транзакции.
судя по тому, как оно себя ведет при перепроведении и распроведении-проведении... можно попробовать в самом начале процедуры проведения именно этого документа - без условий тупо очищать движения.
|
|
3
maker92
01.11.20
✎
15:35
|
(2) Ну я в процедуре, которую в заголовке указал, попробовал принудительно очищать набор записей. В таком случае движения в регистре становятся как после проведения непроведенного документа. Я так понимаю, что если не очищать движения, то он просто дописывает в регистр новые записи к старым, т. о. получается задвоение.
|
|
4
maker92
01.11.20
✎
15:39
|
Я не могу понять, вообще допустимо такое поведение. Вроде как при перепроведении движения должны полностью перезаписываться. Не должно же быть так, что он часть движений или все оставляет, а к ним еще дописывает, или смотрит, какие записи есть в регистре и дописывает недостающие. Эта как то неправильно получается, не должно же такого быть.
|
|
5
Cthulhu
01.11.20
✎
15:50
|
(4): такое может быть правильным и необходимым.
|
|
6
Chameleon1980
01.11.20
✎
17:15
|
{4}см. очищать движения
|
|
7
Михаил Козлов
01.11.20
✎
22:41
|
Используем КА 2. Время от времени (нечасто) возникают неверные движения по регистрам накопления или по РБ. Как правило, после отмены проведения и проведении все встает (очень редко - нет).
Причину не поймали. На горячую линию не обращались.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший