Оптимизация перепроведения 7.7

Тема в разделе "1C и всё что с ней связано", создана пользователем Hryv, 14 апр 2010.

  1. Hryv

    Hryv Гость

    Сразу оговорюсь, что плохо разбираюсь в механизме актуальности регистров.
    Естественно, я общий смысл понимаю, но как копну поглубже, то в голове каша образуется

    Теперь по сути

    Есть документ
    Если создать новый и провести, то проводится относительно быстро
    Но если перепровести вчерашний или более старый, то тормозит прилично

    Выяснил, что все тормоза находятся в коде

    Код (Text):
            Если ИтогиАктуальны()=0 Тогда   
    ВремРегистры.Актуальность(1);
    ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
    КонецЕсли;
    В принципе, тут все понятно, раз итоги не актуальны, то их надо пересчитать - это и тормозит

    Но 2-3 раза в месяц случается необходимость перепровести все эти документы
    За 10 часов (то есть за ночь) успевает перепровестись примерно 15 дней, а хотелось бы все 30

    Можно ли произвести какие-ибудь манипуляции с ТА, чтобы в момент проведения итоги были актуальны?
    И за счет этого ускорить перепроведение
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Да. Есть 2 варианта:
    1. Смещение ТА на первый перепроводимый документ. Так работает функция по восстановлению последовательности в стандартной ТиС.
    2. При проведении работать с актуальными итогами. ВСЕГДА с актуальными итогами. В этом случае есть много нюансов, потребуется доработка программы...
    Если быстро, используйте первый вариант. Если грамотно, проанализируйте, для чего используется временный расчет, уберите эти ограничения и работайте по второму варианту.
     
  3. Hryv

    Hryv Гость

    То есть надо для первого документа сделать
    УстановитьТАна(Док.ТекущийДокумент());

    и потом для каждого
    Док.Провести(2);

    правильно?
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    ЭТО Ж СКОЛЬКО ДОКУМЕНТОВ ЗА ДЕНЬ В БАЗЕ ? Я такую скорость не наблюдал даже при наличии до 1500 (больше пока не встречал), перепроведение занимает не более 15 мин. за день, если железо хорошее.
    Правда, по-моему, время проведения существенно зависит от количества строк в документах...
     
  5. Hryv

    Hryv Гость

    Данные о времени проведения со слов того, кто это сейчас делает

    До сих пор использовалась обработка, которая работает по первому варианту от vitfil (если заходить монопольно)
    Я ее чуток подправил (не по сути, а только для удобства в использовании) и потестил
    Получил результат 1 день - 7 минут, правда это на копии базы и на другом железе
    По моим прикидкам "на глазок" оригинал должен еще быстрее работать
    Что-то не стыкуется :(

    Ночью запущу сам на основной базе
    Чтобы за 10 часов успеть 30 дней надо проводить 1 день за 20 минут
    Это в 3 раза медленнее, чем мой тест показал
    Есть шанс, что все пройдет успешно

    Если нет, тогда уже буду анализировать логи, смотреть что больше всего тормозит
    Может проблема и не там, где я начал искать
     
  6. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Ну, это-то подразумевается в первую очередь
     
  7. Hryv

    Hryv Гость

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

    Пока убрал этот бесполезный зачет
    В принципе по плану со второго полугодия новую базу ставить, так что в этой базе, наверное, так "криво" и останется
     
  8. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Хочу взглянуть в глаза тому, что сделал незакрывающийся регистр. Мало того, что 1С сама в таблицу итогов лишние записи кидает (нулевые остатки), так еще и вредитель нашелся!
     
  9. Hryv

    Hryv Гость

    Скорее всего изначально он закрывался
    Эта база на основе стандартной ТиС
    Но потом кто-то что-то сделал и закрываться перестало
    На мой вопрос: "А как же вы этим регистром пользуетесь?"
    Был ответ: "А мы им не пользуемся"

    Может они просто не вносят документы, которые его должны закрывать
    Честно говоря разбираться по сути в данном конкретном случае желания нет
     
Загрузка...

Поделиться этой страницей