7.7 Остатк И Сводныйостаток

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

  1. olga13

    olga13 Well-Known Member

    Регистрация:
    10 окт 2008
    Сообщения:
    208
    Симпатии:
    0
    Добрый день.
    И снова о регистрах.
    У меня есть два практически одинаковых регистра. Разница лишь в том, что в одном остатки хранятся по партиям, а в другом - без партий. Человек, который создавал такую структуру, мотивировал это тем, что функция "Остаток" работает быстрее, чем "СводныйОстаток". Так ли это? Мне кажется, что дублирование информации гораздо хуже. Каково ваше мнение?
     
  2. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Когда вы вычисляете остаток платформа берет ближайшую дату, на которую рассчитаны итоги по измерениям и досчитывает по записям до нужной даты. С партиями записей становится в разы больше. Количество записей в итогах без партий меньше, поэтому на регистрах без партий что остаток, что сводный остаток будут работать быстрее.
    Когда вы вызываете функцию сводный остаток, платформа выполняет вызов запроса к БД. А вот как выглядит запрос и насколько он хорош по скорости можно посмотреть в профайлере ( вот вам и объективное сравнение). Плюс есть еще дополнительная индексация измерений регистров - тоже может помочь с скоростью.

    Дублирование информации происходит в разных таблицах - единственный минус это время потраченное на запись в них, а так больше это ни на что не влияет.

    З.Ы. по хорошему - прямой запрос к БД будет работать еще быстрее (даже с партиями).
     
  3. olga13

    olga13 Well-Known Member

    Регистрация:
    10 окт 2008
    Сообщения:
    208
    Симпатии:
    0
    Спасибо за ответ. Видимо, мой предшественник все-таки был прав.

    А что такое "дополнительная индексация измерений регистров"?
     
  4. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Создается дополнительный индекс по регистру.
    Пример индекса:
    Измерение+Период+Регистратор+Номер строки
    Для Измерение - включено индексирование
     
  5. olga13

    olga13 Well-Known Member

    Регистрация:
    10 окт 2008
    Сообщения:
    208
    Симпатии:
    0
    Вы имеете в виду флажки "Отбор движений" и "Отбор итогов" в свойствах измерения? Или дополнительный индекс создается как-то по-другому?
     
  6. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Да. отбор движений и отбор итогов. Но это ИМНО
     
  7. olga13

    olga13 Well-Known Member

    Регистрация:
    10 окт 2008
    Сообщения:
    208
    Симпатии:
    0
    А быстрая обработка движений? Стоит ли ее использовать?
     
  8. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Ни черта Ваш предшественник не прав!

    Разве может быть большее зло чем, мусор и нагроможденность! как пишет коллега Пух, грамотно настроив регистр или применяя приемы программирования добиваемся нужной производительности.

    Да, верно то, что СводныйОстаток работает медленнее. Но насколько! На милисекунды на всей номенклатуре. Которых пользователь не заметит. А на противовесе - бестолковая структура данных с ее минусами:
    - время проведения
    - тщательный контроль, что бы все доки синхронно изменяли оба регистра. Опыт учит, что когда-нибудь они разойдутся. "Если гадость только теоретически может случиться - она случается". Примерно так писал закон Мерфи.
    - при разработке любого отчета ломать голову - с какого брать данные.
    - размер данных.

    Вот так рождаются уродцы.
     
  9. olga13

    olga13 Well-Known Member

    Регистрация:
    10 окт 2008
    Сообщения:
    208
    Симпатии:
    0
    Вот-вот, именно это и произошло.
     
Загрузка...

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