Набор записей не всегда записывается (рег. Накопления)
День добрый!
Платформа 8.3.16.1063.
Конфигурации: БП Проф 3.0.79.21 и УХ (управление холдингом) 3.0.11.1.
Есть самописный регистр накопления ФК_Замена, остаточный.
Есть подписка на событие в результате которой получаются записи регистра ФК_Замена:
Источник: РегистрБухгалтерииНаборЗаписей.Хозрасчетный
Событие: ПриЗаписи
По подписке запросом получаю правильные данные, далее помещаю из в набор записей. Код ниже.
Представленный код работает правильно и заполняет набор как надо, при записи набора ошибки нет, но по итогу, после завершения проведения документа, получается по разному:
В базе БП код работает корректно всегда. В базе УХ картина такая:
1. При первом проведение документа (например, Поступление на РС) в регистр накопления попадает запись;
2. При следующем перепроведение записи в регистре накопления нет;
3. При следующем перепроведение запись в регистре накопления появляется;
4. При следующем перепроведение записи в регистре накопления нет;
5. При следующем перепроведение запись в регистре накопления появляется;
... и так далее.
Вопрос: Из-за чего могут быть такие горки? Прошу не спрашивать, для чего нужен этот код в таком месте. Он есть и обязан работать. Интересует, почему запись то записывается, то не записывается. Может быть какие-то настройки, константы? Права полнейшие.
Платформа 8.3.16.1063.
Конфигурации: БП Проф 3.0.79.21 и УХ (управление холдингом) 3.0.11.1.
Есть самописный регистр накопления ФК_Замена, остаточный.
Есть подписка на событие в результате которой получаются записи регистра ФК_Замена:
Источник: РегистрБухгалтерииНаборЗаписей.Хозрасчетный
Событие: ПриЗаписи
По подписке запросом получаю правильные данные, далее помещаю из в набор записей. Код ниже.
...
Выгрузка = РезультатЗапроса.Выгрузить();
НаборЗаписейНакопл = РегистрыНакопления.ФК_Замена.СоздатьНаборЗаписей();
НаборЗаписейНакопл.Отбор.Регистратор.Установить(Регистратор);
НаборЗаписейНакопл.Прочитать();
НаборЗаписейНакопл.Очистить(); // всё что мог - написал
НаборЗаписейНакопл.Загрузить(Выгрузка);
НаборЗаписейНакопл.Записать();
ПоказатьПредставленный код работает правильно и заполняет набор как надо, при записи набора ошибки нет, но по итогу, после завершения проведения документа, получается по разному:
В базе БП код работает корректно всегда. В базе УХ картина такая:
1. При первом проведение документа (например, Поступление на РС) в регистр накопления попадает запись;
2. При следующем перепроведение записи в регистре накопления нет;
3. При следующем перепроведение запись в регистре накопления появляется;
4. При следующем перепроведение записи в регистре накопления нет;
5. При следующем перепроведение запись в регистре накопления появляется;
... и так далее.
Вопрос: Из-за чего могут быть такие горки? Прошу не спрашивать, для чего нужен этот код в таком месте. Он есть и обязан работать. Интересует, почему запись то записывается, то не записывается. Может быть какие-то настройки, константы? Права полнейшие.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
(4)
Одинаковые свойства. По подпискам отладкой и через замер производительности ходил - ничего наводящего на полноценный ответ.
Однако про "Удаления движений". Помогло вот что:
В конце обработки проведения всех документов, которые являются регистратором моего регистра накопления, если обращение к общему модулю ПроведениеСервер.УстановитьЗаписьОчищаемыхНаборовЗаписей(Объект).
Там есть следующий код:
При перепроведение и в БП, и в УХ мой регистр получает булево Записывать = Истина, однако в БП запись есть (повторяется после удаления), а в УХ удаляется с концами. Временное решение сейчас написал:
таким образом, при повторных перепроведениях записывается всё ок, при отмене проведения запись удаляется, в общем - всё чики бамбони.
Но не ясно до конца такая разница БП и УХ, с учётом, что на скринах видно, что свойства документов одинаковы. Есть какие-то настройки, о которых мне не известно.
что у документов разные свойства "Удаления движений"
Одинаковые свойства. По подпискам отладкой и через замер производительности ходил - ничего наводящего на полноценный ответ.
Однако про "Удаления движений". Помогло вот что:
В конце обработки проведения всех документов, которые являются регистратором моего регистра накопления, если обращение к общему модулю ПроведениеСервер.УстановитьЗаписьОчищаемыхНаборовЗаписей(Объект).
Там есть следующий код:
Для Каждого ПроверяемыйРегистр Из РегистрыТребующиеОчистки.ПроверяемыеРегистры Цикл
Объект.Движения[ПроверяемыйРегистр.ИмяРегистра].Записывать = Истина;
КонецЦикла;
При перепроведение и в БП, и в УХ мой регистр получает булево Записывать = Истина, однако в БП запись есть (повторяется после удаления), а в УХ удаляется с концами. Временное решение сейчас написал:
Для Каждого ПроверяемыйРегистр Из РегистрыТребующиеОчистки.ПроверяемыеРегистры Цикл
//
Если НЕ ПроверяемыйРегистр.ИмяРегистра = "ФК_Замена" Тогда
//
Объект.Движения[ПроверяемыйРегистр.ИмяРегистра].Записывать = Истина;
//
КонецЕсли;
//
КонецЦикла;
Показатьтаким образом, при повторных перепроведениях записывается всё ок, при отмене проведения запись удаляется, в общем - всё чики бамбони.
Но не ясно до конца такая разница БП и УХ, с учётом, что на скринах видно, что свойства документов одинаковы. Есть какие-то настройки, о которых мне не известно.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ну например результат запроса зависит от записанного в регистр. Когда в регистре что-то есть, запрос возвращает пустой набор данных и наоборот.
Вообще тут бы отладчиком воспользоваться, было бы понятнее. Гадать можно не перегадать.
Вообще тут бы отладчиком воспользоваться, было бы понятнее. Гадать можно не перегадать.
Такое под отладчиком решается.. Хотя бы текст процедуры обработка проведения сюда в виде спойлера.
Может в модуле набора записи этого РН есть условие, может есть подписка.
Чувствую, ошибка по типу "используется ссылка на док, вместо объекта"
или вместо нужного "момента времени" передается дата документа
а различия в поведении разных конфигураций могут быть потому, что у документов разные свойства "Удаления движений"
Может в модуле набора записи этого РН есть условие, может есть подписка.
Чувствую, ошибка по типу "используется ссылка на док, вместо объекта"
или вместо нужного "момента времени" передается дата документа
а различия в поведении разных конфигураций могут быть потому, что у документов разные свойства "Удаления движений"
(4)
Одинаковые свойства. По подпискам отладкой и через замер производительности ходил - ничего наводящего на полноценный ответ.
Однако про "Удаления движений". Помогло вот что:
В конце обработки проведения всех документов, которые являются регистратором моего регистра накопления, если обращение к общему модулю ПроведениеСервер.УстановитьЗаписьОчищаемыхНаборовЗаписей(Объект).
Там есть следующий код:
При перепроведение и в БП, и в УХ мой регистр получает булево Записывать = Истина, однако в БП запись есть (повторяется после удаления), а в УХ удаляется с концами. Временное решение сейчас написал:
таким образом, при повторных перепроведениях записывается всё ок, при отмене проведения запись удаляется, в общем - всё чики бамбони.
Но не ясно до конца такая разница БП и УХ, с учётом, что на скринах видно, что свойства документов одинаковы. Есть какие-то настройки, о которых мне не известно.
что у документов разные свойства "Удаления движений"
Одинаковые свойства. По подпискам отладкой и через замер производительности ходил - ничего наводящего на полноценный ответ.
Однако про "Удаления движений". Помогло вот что:
В конце обработки проведения всех документов, которые являются регистратором моего регистра накопления, если обращение к общему модулю ПроведениеСервер.УстановитьЗаписьОчищаемыхНаборовЗаписей(Объект).
Там есть следующий код:
Для Каждого ПроверяемыйРегистр Из РегистрыТребующиеОчистки.ПроверяемыеРегистры Цикл
Объект.Движения[ПроверяемыйРегистр.ИмяРегистра].Записывать = Истина;
КонецЦикла;
При перепроведение и в БП, и в УХ мой регистр получает булево Записывать = Истина, однако в БП запись есть (повторяется после удаления), а в УХ удаляется с концами. Временное решение сейчас написал:
Для Каждого ПроверяемыйРегистр Из РегистрыТребующиеОчистки.ПроверяемыеРегистры Цикл
//
Если НЕ ПроверяемыйРегистр.ИмяРегистра = "ФК_Замена" Тогда
//
Объект.Движения[ПроверяемыйРегистр.ИмяРегистра].Записывать = Истина;
//
КонецЕсли;
//
КонецЦикла;
Показатьтаким образом, при повторных перепроведениях записывается всё ок, при отмене проведения запись удаляется, в общем - всё чики бамбони.
Но не ясно до конца такая разница БП и УХ, с учётом, что на скринах видно, что свойства документов одинаковы. Есть какие-то настройки, о которых мне не известно.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот