Не очищаются движения при перепроведении

1. nikson_1987 16.08.24 23:40 Сейчас в теме
Добрый день. ЕРП 2.5. Разработан новый документ, подключен к подсистеме проведения через учетные механизмы.

Документ формирует движение в самописный РС, в РС одно измерение, не периодический, подчинен регистратору.

При повторном проведении получаю ошибку: запись с такими ключевыми полями существует. Если снимаю документ с проведения и провожу повторно, то ошибки нет.

Подскажите, где\что не донастроил, почему документ при начале проведения не очищает старые движения и как исправить эту ошибку?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 17.08.24 09:36 Сейчас в теме
(1) Покажите код проведения по вашему регистру.
3. nikson_1987 19.08.24 09:22 Сейчас в теме
(2)

Ну весь код переносить сюда наверное будет слишком много:
1. В процедуре Перед записью вызываю ПроведениеДокументов.ПередЗаписьюДокумента(ЭтотОбъект, РежимЗаписи, РежимПроведения) с доп. свойствами;
2. В процедуре При записи вызываю ПроведениеДокументов.ПриЗаписиДокумента(ЭтотОбъект, Отказ);
3. В процедуре Обработка проведения вызываю ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
4. В модуле менеджера заполняю учетный механизм, формирую данные документа для проведения
5. В самом модуле механизма выполняется ЕРПшная запись: ПроведениеДокументов.ОтразитьДвижения(ТаблицыДляДвижений, Движения, "ИмяРегистра");
4. Sashares 35 19.08.24 09:33 Сейчас в теме
(3) В свойствах документа есть Удаление движений - посмотрите какое свойство у вашего документа и какое у типовых.
А еще в модуле объекта у типовых наверняка есть процедура ОбработкаУдаленияПроведения.
Соответственно вам надо аналогично.
6. SlavaKron 19.08.24 11:32 Сейчас в теме
(3) Поставьте точку останова в модуле набора записей вашего регистра в процедуре ПередЗаписью. Запустите проведение проведенного документа. Должно быть только 1 попадание. Если их несколько, то через стек вызовов выясните какой вызов ошибочен.
7. usershmuser 19.08.24 13:16 Сейчас в теме
(3)
В процедуре Перед записью

Проведение должно быть в "ОбработкаПроведения". Не перед записью, не при записи т.к. эти процедуры происходят перед стандартной обработкой проведения (в которой по умолчанию работает то, что тебе нужно), соответственно стандартно проводка еще не отменилась и перед записью ты хочешь добавить запись в регистр, которая там еще есть - вот и ошибка
5. nikson_1987 19.08.24 10:04 Сейчас в теме
1.Удаление стоит такое же как у типовых документов (РеализацияТоваровУслуг): Запрещено автоматически
2. Да, обработка удаления проведения тоже заполнена: ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
8. SlavaKron 19.08.24 17:13 Сейчас в теме
(3) Подозреваю, что в функции ДанныеДокументаДляпроведения некорректно формируется таблица значений. Например, запрос не учитывает, что запись в регистре есть (с предыдущего проведения) и каким-то образом двоит строки в ТЗ.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот