Related Posts
- Восстановление последовательности документов при закрытии месяца в Бухгалтерия 3.0 не завершается
- Заполнение табличных частей
- Формирование сводных актов выполненных работ
- Ввод поступления в переработку на основании передачи сырья (между организациями)
- Конспект по установке сервера 1С на linux
- Получение имени компьютера и его IP локально и в терминале
Пояснений по ходу текста нет, впрочем всё понятно из кода — последовательно обходятся регистры накопления и бухгалтерии, выполняется метод «УстановитьПериодРассчитанныхИтогов», во избежание проблем по окончанию работы с каждым регистром транзакция фиксируется, в 2-х словах описаны и ингредиенты регл.задания.
С первой публикацией, товарисч!
Всё красиво написано! Немного смущает ситуация, когда часть регистров пересчитается, а часть (или даже один) попадут под исключение и их дата итогов останется на месте.
Обработку можно ускорить, если убрать понятие МинДата и первый цикл. ТЗРассчитываемыхРегистров составить один раз и дальше работать с ней. Если транзакция прошла успешно, в ТЗРассчитываемыхРегистров увеличить дату ПредпочтительнаяДатаРасчетаИтоговМесяц для этого регистра на один месяц. Если новая дата больше ПредпочтительнаяДатаРасчетаИтогов — эту строку таблицы удалить. Если регистр попал под исключение — строку удалить. И так пока количество строк в ТЗРассчитываемыхРегистров не станет равным 0.
Правда по сравнению со временем расчета итогов данное ускорение будет крайне незначительным.
«Если новая дата больше ПредпочтительнаяДатаРасчетаИтогов — эту строку таблицы удалить. Если регистр попал под исключение — строку удалить. И так пока количество строк в ТЗРассчитываемыхРегистров не станет равным 0.» ТЗ вынести за цикл заполнять 1 раз, согласен тогда улучшиться производительность, возьму себе на заметку. У меня была проблема что регистр бухгалтерии за ночь пол года успевает пересчитаться, база 109 Гб SQL Server 2008, стандартным средством очень долго, а тут на автомате скока успеет за ночь, на стока и двинет, очень удобно, уже с год даже не смотрю как там итоги, а до этого ночами пересчитывал сидел, то вылетет. Теперь вот собираюсь написать фоновое которое удаляло бы помеченные объекты на удаление, на которые нет ссылок, а то много всего помечено, а типовое средство требует монопольного режима, обработку нашел в интернете, но она почему-то вылетает при удаление, еще так и не разобрался почему, планирую фоновым тоже сделать универсально.
спасибо, теперь мне не придется ломать голову над тем как это сделать, совсем не ожидала, что кто то реализовал уже это! еще раз большое спасибо.
Забавность ситуации в том, что пересчитывать их надо, но после изменения данных (перепроведение док-в в заднем периоде) их нужно пересчитать еще раз. Но в штатных средствах нет ничего, следящего за этим
(3) есть переписанный код?