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

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 не будет опубликован. Обязательные поля помечены *