Автоперестановка границы рассчитанных итогов

6 Comments

  1. artichoke

    Пояснений по ходу текста нет, впрочем всё понятно из кода — последовательно обходятся регистры накопления и бухгалтерии, выполняется метод «УстановитьПериодРассчитанныхИтогов», во избежание проблем по окончанию работы с каждым регистром транзакция фиксируется, в 2-х словах описаны и ингредиенты регл.задания.

    С первой публикацией, товарисч!

    Reply
  2. alexpa2005

    Всё красиво написано! Немного смущает ситуация, когда часть регистров пересчитается, а часть (или даже один) попадут под исключение и их дата итогов останется на месте.

    Обработку можно ускорить, если убрать понятие МинДата и первый цикл. ТЗРассчитываемыхРегистров составить один раз и дальше работать с ней. Если транзакция прошла успешно, в ТЗРассчитываемыхРегистров увеличить дату ПредпочтительнаяДатаРасчетаИтоговМесяц для этого регистра на один месяц. Если новая дата больше ПредпочтительнаяДатаРасчетаИтогов — эту строку таблицы удалить. Если регистр попал под исключение — строку удалить. И так пока количество строк в ТЗРассчитываемыхРегистров не станет равным 0.

    Правда по сравнению со временем расчета итогов данное ускорение будет крайне незначительным.

    Reply
  3. jake_qwert

    «Если новая дата больше ПредпочтительнаяДатаРасчетаИтогов — эту строку таблицы удалить. Если регистр попал под исключение — строку удалить. И так пока количество строк в ТЗРассчитываемыхРегистров не станет равным 0.» ТЗ вынести за цикл заполнять 1 раз, согласен тогда улучшиться производительность, возьму себе на заметку. У меня была проблема что регистр бухгалтерии за ночь пол года успевает пересчитаться, база 109 Гб SQL Server 2008, стандартным средством очень долго, а тут на автомате скока успеет за ночь, на стока и двинет, очень удобно, уже с год даже не смотрю как там итоги, а до этого ночами пересчитывал сидел, то вылетет. Теперь вот собираюсь написать фоновое которое удаляло бы помеченные объекты на удаление, на которые нет ссылок, а то много всего помечено, а типовое средство требует монопольного режима, обработку нашел в интернете, но она почему-то вылетает при удаление, еще так и не разобрался почему, планирую фоновым тоже сделать универсально.

    Reply
  4. karinamt

    спасибо, теперь мне не придется ломать голову над тем как это сделать, совсем не ожидала, что кто то реализовал уже это! еще раз большое спасибо.

    Reply
  5. It-developer

    Забавность ситуации в том, что пересчитывать их надо, но после изменения данных (перепроведение док-в в заднем периоде) их нужно пересчитать еще раз. Но в штатных средствах нет ничего, следящего за этим

    Reply
  6. fixin

    (3) есть переписанный код?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *