![]() |
Перерасчет Регистров Куплен новый сервак под переход на УТ11, пока учет ведется на Тис 7.7 местами переписанной. Пользователей до 30. Документов в день 400 - 500. По сути все предпосылки для перехода на SQL, но стабильно работающая связка 1с 7.7 + Win2008 64 +?? SQL не вытанцовывается. Узкое место в текущей сборке - подбор с перерасчетом 4 регистров (местная дописанная фишка, убить не вариант) на достаточно большом справочнике Номенклатуры. В остальном тормоза расшили. База живет в ТА. Как ускорить процесс или отказаться от пересчетов? Если отменить пересчет регистров и смотреть по ТА насколько будут плыть цифры от реальных? |
[em]Если отменить пересчет регистров и смотреть по ТА насколько будут плыть цифры от реальных[/em] НО учитывать что получение данных из этих регистров в отчетах, например, может вести себя "интересно" (эффект грязного чтения + отсутствие промежуточных итогов как "печки от которой плясать") |
[quote=roma n;46999001] Если отменить пересчет регистров и смотреть по ТА насколько будут плыть цифры от реальных НО учитывать что получение данных из этих регистров в отчетах, например, может вести себя "интересно" (эффект грязного чтения + отсутствие промежуточных итогов как "печки от которой плясать") [/quote] По сути "приблизительные цифры" не страшны. Они все равно не абсолютно актуальны - пока кто-то топчется в подборе другие уже могут и растащить остатки. Документ при проведении перепроверяет остаток. |
А реально работающей связки со Скулем нет? Статьи я читал, но там сильно не однозначные танцы с бубном. |
В чем вопрос ? База 7.7 в DBF какого размера ? Большой справочник номенклатуры это сколько ? 100 тыс элементов? Что за хитрый расчет и перерасчет? ТА - живет текущим днём ? И при чем тут SQL и УТ 11. 2005 SQL 32 бита можно ж к 77 прикрутить на win2008, пусть и с нарушением. |
(0) Не очень понял про подбор номенклатуры и перерасчет 4-х регистров одновременно. Вам надо одновременно смотреть остатки по 4-м регистрам? Вам надо снимать остатки не на ТА, а на произвольную дату? Попробуйте реализовать "новую" методику списания из 8-ки. Сначала подбираете все и проводите документ, а потом делаете контроль отрицательных остатков. |
[quote=Jimbo;46999399] В чем вопрос ? База 7.7 в DBF какого размера ? Большой справочник номенклатуры это сколько ? 100 тыс элементов? Что за хитрый расчет и перерасчет? ТА - живет текущим днём ? И при чем тут SQL и УТ 11. 2005 SQL 32 бита можно ж к 77 прикрутить на win2008, пусть и с нарушением. [/quote] По пунктам: База не большая (меньше 1 гб) Номенклатура в районе 50 000 элементов Перерасчет не хитрый, просто пришлось по структуре остатков добавить 2 дополнительных регистра остатков и резервов и при подборе идет временный расчет и получение остатков по 4 регистрам (правда пересчет идет при открытии, а тормозит и при выборе позиций) ТА живет текущим днем По Скулю - сервант новый, под систему Оптан стоит и 2008 может не встать, а под Вин2012 пляски с 7.7 и Скулем без шансов |
Есть ощущение, что тормозит не расчет а получение остатков из регистра. |
Регистры рассчитываются при открытии формы подбора номенклатуры. Получение остатков из стандартной функции ПолучитьОстатокЗаполнитьЦену(), измененный кусок //////////////////////////////////////////////////////////////////////////////////// ОстатокБух = БухОстатки.СводныйОстаток(,ТекНоменклатура,"Количество"); Единица = ТекНоменклатура.ОсновнаяЕдиница; Если Единица.Коэффициент > 0 Тогда ОстатокБух = ОстатокБух / Единица.Коэффициент; КонецЕсли; ТекБухОстаток = ?(ПустоеЗначение(ОстатокБух) = 1, "", СокрЛП(Формат(ОстатокБух,"Ч014.1, "))); /////////////////////////////////////////////////////////////////////// По сути все стандартно, но после включения пошли очень ощутимые тормоза, аналогичный кусок по резервам пока убрали. |
(6) Отключайте временный расчет (снимайте остатки на ТА) и будет Вам счастье. |
Ну это очевидный вариант. Правда не объясняющий тормоза ПОСЛЕ открытия формы (в этот момент итоги уже пересчитаны). |
Не помню уже в 7.7 отладчике есть ли время замеров ? Если нет, то надублировать строк Сообщить ТекущееВремя() и найти то, что тупит. Переписать на черный запрос не в цикле и замерить. Если ТА актуально - то зачем временный расчет ? На 2012 можно виртуалку поставить 2008R2 |
_GetPerformanceCounter() - поточнее время сечет, разности копим, сортируем |
[quote=Jimbo;47001169] Не помню уже в 7.7 отладчике есть ли время замеров ? Если нет, то надублировать строк Сообщить ТекущееВремя() и найти то, что тупит. [/quote] Время замеров есть - посмотрю, мой косяк [quote=Jimbo;47001169] На 2012 можно виртуалку поставить 2008R2 [/quote] Сервак терминальный под 40 пользунов, совать их в виртуалку так себе идея. |
Почти очевидно, что тормозит СводныйОстаток. Может у тебя добавленные регистры не в очень хорошем состоянии, например не закрываются. Что это за бухостатки в ТИС, зачем они ваще там нужны ?)) |
Регистр закрывается на уровне измерений, но движения по реквизитам могут быть не закрыты. А назначение его простое - на всю контору есть бонусная продукция идентичная обычной с лимитами на всех. Соответственно списывается она в любом филиале из общего количества типа "кто первый успел". Но больше лимита строго нельзя. Причем ее еще и резервировать приходится под промоакции. Про "почти очевидный СводныйОстаток" согласен, но вот варианты? И потом Резервы и Остатки не тормозят, а с чего тут такие тормоза? |
С того что регистры должны закрываться в 0 при правильной архитектуре. Копию базы сделайте загрузкой-выгрузкой. ТиИ, пересчетов итогов на копии, сжатие и реструктуризация. Интересно лёд тронется с метртвой точки? Отладчик и замер тормозов в живой и на копии. |
Завтра буду играться копией. Регистр на уровне измерений закрывается! Да и данных там не много. Больше действительно похоже на тормоза при получении остатка. Завтра продолжим с цифрами. |
если захочется заморочиться и ускорить в разы работу с чтением итогов регистров в узких местах, то можно прикрутить 1sqlite предварительно тщательно его покурив)) |
(10) С каждым телодвижением на форме отрабатывает функция получения остатков (размещенная в поле ТЗ) по каждой строке списка. |
[quote=US1C;47002583] (10) С каждым телодвижением на форме отрабатывает функция получения остатков (размещенная в поле ТЗ) по каждой строке списка. [/quote] Совершенно согласен! Вопрос решился банально - расчет доп. остатков и резервов снесли вниз в текстовые поля для текущей номенклатуры и все залетало. Ворчат пользуны про неудобства, но это как водится ... |
Точно из "Бриллиантовой руки" - "на этом месте должен был быть Я" :). 1С 7.7. ТИС сильно переделанная. Win 2008-64 DBF порядка 45 пользователей. С великим интересом читаю что и как |
(22) Не актуально пока что. Хотя там же есть флаг "показывать остатки и цены в колонке". Я еще туда остатки витрин присобачил ). |
Текущее время: 22:23. Часовой пояс GMT +3. |