Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Перерасчет Регистров (http://forums.kuban.ru/f1040/pereraschet_registrov-8933482.html)

Minipuh63 05.08.2019 14:43

Перерасчет Регистров
 
Куплен новый сервак под переход на УТ11, пока учет ведется на Тис 7.7 местами переписанной. Пользователей до 30. Документов в день 400 - 500. По сути все предпосылки для перехода на SQL, но стабильно работающая связка 1с 7.7 + Win2008 64 +?? SQL не вытанцовывается. Узкое место в текущей сборке - подбор с перерасчетом 4 регистров (местная дописанная фишка, убить не вариант) на достаточно большом справочнике Номенклатуры. В остальном тормоза расшили. База живет в ТА. Как ускорить процесс или отказаться от пересчетов? Если отменить пересчет регистров и смотреть по ТА насколько будут плыть цифры от реальных?

roma n 05.08.2019 15:12

[em]Если отменить пересчет регистров и смотреть по ТА насколько будут плыть цифры от реальных[/em]
НО учитывать что получение данных из этих регистров в отчетах, например, может вести себя "интересно" (эффект грязного чтения + отсутствие промежуточных итогов как "печки от которой плясать")

Minipuh63 05.08.2019 15:42

[quote=roma n;46999001] Если отменить пересчет регистров и смотреть по ТА насколько будут плыть цифры от реальных НО учитывать что получение данных из этих регистров в отчетах, например, может вести себя "интересно" (эффект грязного чтения + отсутствие промежуточных итогов как "печки от которой плясать") [/quote]

По сути "приблизительные цифры" не страшны. Они все равно не абсолютно актуальны - пока кто-то топчется в подборе другие уже могут и растащить остатки. Документ при проведении перепроверяет остаток.

Minipuh63 05.08.2019 15:43

А реально работающей связки со Скулем нет? Статьи я читал, но там сильно не однозначные танцы с бубном.

Jimbo 05.08.2019 16:31

В чем вопрос ? База 7.7 в DBF какого размера ? Большой справочник номенклатуры это сколько ? 100 тыс элементов? Что за хитрый расчет и перерасчет? ТА - живет текущим днём ? И при чем тут SQL и УТ 11. 2005 SQL 32 бита можно ж к 77 прикрутить на win2008, пусть и с нарушением.

US1C 06.08.2019 09:24

(0) Не очень понял про подбор номенклатуры и перерасчет 4-х регистров одновременно. Вам надо одновременно смотреть остатки по 4-м регистрам? Вам надо снимать остатки не на ТА, а на произвольную дату?
Попробуйте реализовать "новую" методику списания из 8-ки. Сначала подбираете все и проводите документ, а потом делаете контроль отрицательных остатков.

Minipuh63 06.08.2019 09:37

[quote=Jimbo;46999399] В чем вопрос ? База 7.7 в DBF какого размера ? Большой справочник номенклатуры это сколько ? 100 тыс элементов? Что за хитрый расчет и перерасчет? ТА - живет текущим днём ? И при чем тут SQL и УТ 11. 2005 SQL 32 бита можно ж к 77 прикрутить на win2008, пусть и с нарушением. [/quote]
По пунктам:
База не большая (меньше 1 гб)
Номенклатура в районе 50 000 элементов
Перерасчет не хитрый, просто пришлось по структуре остатков добавить 2 дополнительных регистра остатков и резервов и при подборе идет временный расчет и получение остатков по 4 регистрам (правда пересчет идет при открытии, а тормозит и при выборе позиций)
ТА живет текущим днем
По Скулю - сервант новый, под систему Оптан стоит и 2008 может не встать, а под Вин2012 пляски с 7.7 и Скулем без шансов

Minipuh63 06.08.2019 09:39

Есть ощущение, что тормозит не расчет а получение остатков из регистра.

Minipuh63 06.08.2019 09:48

Регистры рассчитываются при открытии формы подбора номенклатуры. Получение остатков из стандартной функции ПолучитьОстатокЗаполнитьЦену(), измененный кусок

////////////////////////////////////////////////////////////////////////////////////
ОстатокБух = БухОстатки.СводныйОстаток(,ТекНоменклатура,"Количество");
Единица = ТекНоменклатура.ОсновнаяЕдиница;

Если Единица.Коэффициент > 0 Тогда
ОстатокБух = ОстатокБух / Единица.Коэффициент;
КонецЕсли;
ТекБухОстаток = ?(ПустоеЗначение(ОстатокБух) = 1, "", СокрЛП(Формат(ОстатокБух,"Ч014.1, ")));
///////////////////////////////////////////////////////////////////////

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

US1C 06.08.2019 10:54

(6) Отключайте временный расчет (снимайте остатки на ТА) и будет Вам счастье.

Minipuh63 06.08.2019 10:57

Ну это очевидный вариант. Правда не объясняющий тормоза ПОСЛЕ открытия формы (в этот момент итоги уже пересчитаны).

Jimbo 06.08.2019 10:58

Не помню уже в 7.7 отладчике есть ли время замеров ? Если нет, то надублировать строк Сообщить ТекущееВремя() и найти то, что тупит.
Переписать на черный запрос не в цикле и замерить.
Если ТА актуально - то зачем временный расчет ?
На 2012 можно виртуалку поставить 2008R2

Jimbo 06.08.2019 11:13

_GetPerformanceCounter() - поточнее время сечет, разности копим, сортируем

Minipuh63 06.08.2019 11:15

[quote=Jimbo;47001169] Не помню уже в 7.7 отладчике есть ли время замеров ? Если нет, то надублировать строк Сообщить ТекущееВремя() и найти то, что тупит. [/quote]

Время замеров есть - посмотрю, мой косяк

[quote=Jimbo;47001169] На 2012 можно виртуалку поставить 2008R2 [/quote]

Сервак терминальный под 40 пользунов, совать их в виртуалку так себе идея.

USSR 06.08.2019 12:29

Почти очевидно, что тормозит СводныйОстаток. Может у тебя добавленные регистры не в очень хорошем состоянии, например не закрываются. Что это за бухостатки в ТИС, зачем они ваще там нужны ?))

Minipuh63 06.08.2019 14:54

Регистр закрывается на уровне измерений, но движения по реквизитам могут быть не закрыты. А назначение его простое - на всю контору есть бонусная продукция идентичная обычной с лимитами на всех. Соответственно списывается она в любом филиале из общего количества типа "кто первый успел". Но больше лимита строго нельзя. Причем ее еще и резервировать приходится под промоакции.
Про "почти очевидный СводныйОстаток" согласен, но вот варианты? И потом Резервы и Остатки не тормозят, а с чего тут такие тормоза?

Jimbo 06.08.2019 15:08

С того что регистры должны закрываться в 0 при правильной архитектуре. Копию базы сделайте загрузкой-выгрузкой. ТиИ, пересчетов итогов на копии, сжатие и реструктуризация. Интересно лёд тронется с метртвой точки? Отладчик и замер тормозов в живой и на копии.

Minipuh63 06.08.2019 15:10

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

user1C 06.08.2019 15:25

если захочется заморочиться и ускорить в разы работу с чтением итогов регистров в узких местах, то можно прикрутить 1sqlite предварительно тщательно его покурив))

US1C 06.08.2019 17:54

(10) С каждым телодвижением на форме отрабатывает функция получения остатков (размещенная в поле ТЗ) по каждой строке списка.

Minipuh63 09.08.2019 14:42

[quote=US1C;47002583] (10) С каждым телодвижением на форме отрабатывает функция получения остатков (размещенная в поле ТЗ) по каждой строке списка. [/quote]

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

Путевый лист 13.08.2019 10:26

Точно из "Бриллиантовой руки" - "на этом месте должен был быть Я" :).
1С 7.7. ТИС сильно переделанная. Win 2008-64 DBF порядка 45 пользователей. С великим интересом читаю что и как

Путевый лист 13.08.2019 10:48

(22) Не актуально пока что. Хотя там же есть флаг "показывать остатки и цены в колонке". Я еще туда остатки витрин присобачил ).


Текущее время: 22:23. Часовой пояс GMT +3.