0. Bazil 466 20.10.17 10:51 Сейчас в теме

Ускоренный полный пересчет итогов регистров

Обработка для быстрого полного пересчета итогов по выбранным регистрам, ускорение достигается за счет предварительной очистки таблиц итогов средствами MS-SQL.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Fragster 958 23.10.17 18:39 Сейчас в теме
У стандартного метода есть неоспоримый плюс - пересчет идет транзакциями помесячно. И если срубить процесс в середине - ничего страшного не произойдет. И даже отчеты могут работать. А если предварительно делать транкейт, то работа встанет до конца пересчета, а если еще и ошибка произойдет...
3. nvv1970 07.11.17 02:15 Сейчас в теме
(1) нужен транкейт + * даты итогов на 010101. Тогда все будет быстро и корректно с запросами.
PS: пойду напишу статью про оператор truncate, чтобы таких обработок не создавали. ((( Неужели гугл и ssms более страшен, чем чужие обработки??
8. jefjef 6 03.12.18 11:48 Сейчас в теме
(1) Стал юзать эту обработку именно из-за "неоспоримых плюсов" стандартного метода. Дело в том, что для стандартного пересчета надо именно наглухо остановить работу, так как он делается монопольно, а у нас весовая работает круглосуточно. А если срубить этот процесс в середине - наступит полная и беспросветная жопа. Оборотки просто перестают работать. Наглухо зависают и все. Банда юзеров кричит караул.
10. Fragster 958 03.12.18 15:13 Сейчас в теме
(8) я имею ввиду не стандартный диалог из "все функции", а выполнение метода РегистрНакопленияМенеджер.<Имя регистра накопления>.ПересчитатьИтогиЗаПериод() и ~.ПересчитатьТекущиеИтоги() которые выполняются относительно быстро (если делать в цикле по месяцам), не требуют монопольного доступа и не блокируют базу (если не трогать итоги за обновляемый период, т.е. оперативную работу вообще никак не затрагивает). Только последний этап - пересчет текущих итогов может сделать небольшую паузу в работе, но как правило эта пауза измеряется максимум в минутах.
2. echo77 1105 23.10.17 20:54 Сейчас в теме
Задумка хорошая, но зачем пересчитывать итоги за весь период? Я не думаю, что в предыдущие периоды кто-то активно вносит изменения.
Честно, говоря, я вообще сейчас склоняюсь к тому, что в большинстве случаев для регистрв остатков нужны только Актуальные итоги
4. nvv1970 07.11.17 02:18 Сейчас в теме
(2)
для регистрв остатков нужны только Актуальные итоги
это как??? )))
5. tirli41 22.08.18 13:31 Сейчас в теме
Монопольный доступ нужен или нет?
6. Bazil 466 22.08.18 17:07 Сейчас в теме
7. fedor40 687 27.11.18 12:01 Сейчас в теме
SQL 2014. Аутентификация SQL. Запуская на сервере. В SQL спокойно захожу, а обработка пишет недоступен.
{ВнешняяОбработка.УскоренныйПолныйПересчетИтоговРегистров.Форма.ФормаУправляемая.Форма(219)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): [DBNETLIB][ConnectionOpen (Connect()).]SQL Server не существует, или доступ запрещен.

Хотя я разобрался. Из имени сервера надо удалить номер порта 1С.
9. jefjef 6 03.12.18 12:19 Сейчас в теме
Колбасит, профайлер циклично показывает begin, select, insert, truncate, commit. Все ок, при этом проц нагружает порядочно. Даже параллельно работать можно в базе. Чего не хватает обработке - так это прогресс бар прикрутить бы.

Обработкой пришлось воспользоваться, так как стандартный метод расчета итогов через предприятие зависал намертво и висел в таком виде до 8 часов, потом я просто убивал это дело. В конфигураторе тестирование-исправление-пересчет вел себя точно так же.

Обработка сделала все за 2 часа.

Респект и плюс в карму.
11. Bazil 466 04.12.18 10:04 Сейчас в теме
(9) Прикрутить прогресс-бар можно. Кроме как, считать количество рассчитанных регистров от общего числа, ничего не могу придумать.
Такой прогресс будет очень примерным.
12. jefjef 6 04.12.18 11:21 Сейчас в теме
(11)Вопрос появился. Не по работе обработки, а может было что-то подобное в личном опыте. На копии базы отработала нормально, все пересчитало четко. А вот на рабочей базе не сработала. Зависла и все. В профайлере отслеживал работу - просто в какой то момент перестали поступать запросы. Был последний BatchCompleted и потом все остановилось. Точно так же себя ведет конфигуратор на пересчете итогов и в режиме предприятия тоже. Зависают пересчеты регистра бухгалтерии. Не доводилось с таким сталкиваться? Не знаю на что и думать, на платформу или на скуль. Платформа 8.3.10.2299, скуль 2008R2 10.50.1600.1
13. Bazil 466 05.12.18 08:33 Сейчас в теме
14. jefjef 6 05.12.18 11:31 Сейчас в теме
(13)
Удалось полечить вашей обработкой в два прохода. Сначала удалить итоги, потом пересчитать. Вещь годная. Спасибо.
15. Атеист33 13.09.19 09:18 Сейчас в теме
Добрый день коллеги !

прошу знающих дать совет практический :

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

1. отключаем расчет итогов :
Регистр<Имя>.УстановитьИспользованиеТекущихИтогов(Ложь)

2. включаем использование итогов :
Регистр<Имя>.УстановитьИспользованиеТекущихИтогов(Истина)

3.Регистры<Имя>.ПересчитатьИтогиЗаПериод(НачалоМесяца(Дата() )

или же иной порядок ?
16. DJRelax 3 07.01.20 00:18 Сейчас в теме
Обработку забрал.
Что сразу бросилось в глаза:
1) Надо предупреждать, что для Управляемых форм обработка на запуск заточена под типовые конфигурации. В частности функция СведенияОВнешнейОбработке() только в БСП или типовых корректно отрабатывает.
2) Наименование(синоним в вашем дереве) регистров надо брать не из синонима объекта метаданных, а из метода Представление(), так лучше, не у всех заполнен синоним.

А так спасибо, для ленивых сойдет! ;)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 150 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Консультант-аналитик 1С
Москва
зарплата до 200 000 руб.
Полный день

Программист 1С
Москва
зарплата до 140 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству