Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Прямой и обратный расчет остаков по регистру / 25 сообщений из 41, страница 1 из 2
02.07.2010, 01:43
    #36719037
Флеймер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Сам я админ базы данных и к 1С имею весьма опосредственное отношение.

У меня проблема с производительностью запроса по регистру (см ниже) в SQL он рaскладывается обычным запросом RA RG . Он выполняется 5-7 секунд и это очнь много, тк он участвует в проведении документа, а у нас розница. Но пользователи утверждают что иногда документы начинают проводится очень быстро - меньше, чем за секунду. 1Cники тупо послали ко мне.

Мне удалось поймать сиквельный запрос когда документы проводятся быстро и проанализировать в чем разница. И в результате в инете я нашел такую фразу

авторПросто счет они ведут не прямым расчетом, а обратным (т.е. не ПРИБАВЛЯЮТ движения от начала до тек. момента, а ВЫЧИТАЮТ из конечных остатков движения от тек. момента до конца). При таком методе расчета последние остатки будут получаться быстрее (а остатки на конец периода - и подавно). А поскольку чаще получают именно остатки более "близкие" к концу периода ("близкие" имеется в виду по кол-ву движений, а не непосредственно по времени), такая схема более эффективна.

Так вот в момент когда документы проводятся быстро - запрос выполняется обратным расчетом. А обычно прямым.

Теперь собственно вопрос. Нет ли в 1С какого нибудь параметра который влияет, на то каким образом будет выполнятся расчет остатка? Или при каких условиях он выполняется одним или другим методом?




Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT Остатки.Фирма [Фирма $Справочник.Фирмы], Остатки.Товар  [Товар $Справочник.ТМЦ], 
 Остатки.Статус, Остатки.МестоХранения [МестоХранения $Справочник], Остатки.Поставщик [Поставщик $Справочник.Контрагенты],
 Остатки.Поставка [Поставка $Документ], Остатки.ПрихДокумент [ПрихДокумент $Документ], Остатки.ПФ, ОстатокТовараОстаток [ОстатокТовара $Число],
 СтоимостьОстаток [Стоимость $Число] , ПродСтоимостьОстаток [ПродСтоимость $Число], НДСОстаток [НДС $Число]
FROM $РегистрОстатки.ПартииТоваров(:ГраницаРасчета ~,
                ,Фирма IN ('     1   ' )  And Товар IN (' 999D9   ' )  And Статус IN ('К','П','Б','Р','Н','Д','А' )  And МестоХранения = '  5O     2   ' ,
                (Фирма, Товар, Статус, МестоХранения, Поставщик, Поставка, ПрихДокумент, ПФ),
                (ОстатокТовара, Стоимость,ПродСтоимость,НДС) ) as Остатки
...
Рейтинг: 0 / 0
02.07.2010, 03:45
    #36719083
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Флеймер,

дык все описано:

Код: plaintext
1.
2.
3.
4.
5.
+ при получении остатков на или по дату близкую к концу текущего периода
сохранения остатков, используются остатки на конец текущего периода и обороты
от границы расчета до конца текущего периода (обратный расчет);
+ при получении остатков на или по дату в актуальном периоде сохранения остатков
близкую к дате ТА, используются актуальные остатки и обороты от границы расчета
по ТА (обратный расчет).
(с) 1с++.als

Если именно этот запрос работает и в "тормозном" варианте - значит "тормознутость" его зависит от попадания параметра :ГраницаРасчета в "близкую к концу" текущего периода или ТА.
...
Рейтинг: 0 / 0
02.07.2010, 09:27
    #36719221
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
В общем если перефразировать Егоров Александра, посмотри есть ли документы созданные будущей датой.
Если есть есть документы проведенные позже чем проводиться текущий документ, такие документы будут проводиться с тормозами, даже если эти документы находятся в пределах одного дня.

Т.е. документ должен проводиться гораздо быстрее если проводиться на ТА (точку актульности). В том числе и на прямых запросах.

Просто зайди в профайлер и посмотри какие запросы генерирует 1С++ при проведении на ТА и не на ТА, все поймешь.
...
Рейтинг: 0 / 0
02.07.2010, 09:28
    #36719223
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
1. Попробуйте убрать галочку - распаралеливание запроса.

2. Проверьте что у регистра стоят "индексировать" у реквизитов.

Да и вобще - вы уверены что дело ТОЛЬКО в этом запросе? Рядышком ничего нет? Может взаимоблокировки? В однопользовательском режиме проверьте. И текст модуля проведения документа - киньте сюда.

3. И как вариант - если записываетс и проводится новый документ - то пусть он будет "последний" тогда расчет на точку актуальности - копейки.
...
Рейтинг: 0 / 0
02.07.2010, 09:29
    #36719224
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
И вообще это проблема программистов, а не админа.
...
Рейтинг: 0 / 0
02.07.2010, 09:55
    #36719268
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
vitkhvИ вообще это проблема программистов, а не админа.
+1

А то получается, что программеры пишушие на 1С++, не знают как работает ихняя компонента и просят админа разобраться... :)
...
Рейтинг: 0 / 0
02.07.2010, 10:40
    #36719365
Флеймер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Егоров АлександрvitkhvИ вообще это проблема программистов, а не админа.
+1

А то получается, что программеры пишушие на 1С++, не знают как работает ихняя компонента и просят админа разобраться... :)

Именно так.

Только просят не разобраться, а доказать что ты не верблюд, и проблемы не в распаралеливании запросов или взаимных блокировках.
...
Рейтинг: 0 / 0
02.07.2010, 10:46
    #36719372
Флеймер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Егоров Александр,

Спасибо, большое. Вы мне уже очень помогли.


А есть какой нибудь способ всегда обратным расчетом считать? У меня даже первого числа проведенных документов с начала месяца значительно больше.

И еще у меня прямым расчетом считается почти вплоть до 27-28 числа. А из вашей фразы я понял, что он должен переключаться с 15го.
...
Рейтинг: 0 / 0
02.07.2010, 10:52
    #36719386
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Флеймер,

Если у вас розница то откажитесь от партий и все будет летать. А когда в главной базе бухи восстанавливают последовательность - пусть там и подбирают партии. Совет проверен практикой и работает у многих клиентов. Правда прогам придется переписывать модули, но если руководство прикажет - куда они денутся.
Вся проблема в мозгах, или их отсутствии...
...
Рейтинг: 0 / 0
02.07.2010, 11:53
    #36719572
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Цитата с 1csql.ru
"Остаточный регистр
Реализуется с помощью двух таблиц: RGxxx и RAxxx.

Первая таблица содержит значения функции НачОст на начало каждого периода указанного в меню системы "Операции — Управление оперативными итогами" в секции "Периодичность сохранение остатков". Значение данной функции может хранится на начало каждой пятидневки, десятидневки, на начало каждых пятнадцати дней, на начало каждого месяца." Конец цитаты.

Из этого следует, что "Периодичность сохранение остатков" с месяца до 15, 10 и 5 дней. Т.е. таблица RG будет создаваться не раз в месяц, а раз в 15, 10 или 5 дней. Соответственно чем меньше Периодичность сохранения остатков, тем быстрее будет обрабатываться таблица RA (обороты), т.к. опорной таблицой является таблица RG (итоги) к которой прибавляются записи из таблицы RA.
Соответсвенно чем меньше "Периодичность сохранения остатков" тем меньше времени системе необходимо для обработки таблицы RA.
Единственный и большой недостаток (хотя кому как) это то, что период открытия итогов будет происходить не раз в месяц, а раз в 15, 10 и 5 дней соответственно.

Прямой и обратный расчет означается к какому периоду итогов в таблице RG будут прибавлятся (отниматься) записи (обороты) из таблицы RA.

В случае проведения документа на ТА (точку актуальности) таблица RA не используется, используется только таблица RG . За счет этого радикально уменьшается время получения итогов.

А на счет партий правильный совет - партии можно востанавливать по ночам, правда если есть отчеты которые формируются по этому регистру и используются оперативно т.е. если менеджер анализирует данные текущего дня с использованием этого регистра, то такой вариант не подойдет.
...
Рейтинг: 0 / 0
02.07.2010, 11:58
    #36719582
Флеймер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Злой БобрФлеймер,

Если у вас розница то откажитесь от партий и все будет летать. А когда в главной базе бухи восстанавливают последовательность - пусть там и подбирают партии. Совет проверен практикой и работает у многих клиентов. Правда прогам придется переписывать модули, но если руководство прикажет - куда они денутся.
Вся проблема в мозгах, или их отсутствии...

1) Не знаю в какой компании вы работаете. Но в крупных компаниях и в нашей в частности, админ таких решений не принимает.

2) Вы представляете себе объемы изменения бизнес процесов и кода для перехода из -за одного запроса. На много - много ПОРЯДКОВ проще переписать кусок кода в 1С.
...
Рейтинг: 0 / 0
02.07.2010, 14:39
    #36720014
Прямой и обратный расчет остаков по регистру
Флеймер,
скорее всего представляет;
и если всё сделано как надо, то и переписывать надо совсем не много
...
Рейтинг: 0 / 0
02.07.2010, 15:26
    #36720184
vectorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
ФлеймерЕгоров Александр,

Спасибо, большое. Вы мне уже очень помогли.



А можно подробней чем именно помогли - какие выводы сделаны?
Или просто остановились на фразе - это проблема программистов?
...
Рейтинг: 0 / 0
02.07.2010, 15:55
    #36720261
Флеймер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
vectorovФлеймерЕгоров Александр,

Спасибо, большое. Вы мне уже очень помогли.



А можно подробней чем именно помогли - какие выводы сделаны?
Или просто остановились на фразе - это проблема программистов?


1) Метод расчета зависит не только от даты но и точки актуальности. Теперь ее подобрать и протестировать в разных вариантах это дело техники.

2) Да эту фразу увидело и мое начальство. Теперь это действительно проблема програмистов.

К стати само понятие ТА я узнал только сегодня ночью. Когда искал инфу в инете по организации работы 1С с регистрами.
...
Рейтинг: 0 / 0
02.07.2010, 16:18
    #36720336
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Флеймер
1) Не знаю в какой компании вы работаете. Но в крупных компаниях и в нашей в частности, админ таких решений не принимает.
2) Вы представляете себе объемы изменения бизнес процесов и кода для перехода из -за одного запроса. На много - много ПОРЯДКОВ проще переписать кусок кода в 1С.
1. Меряться ни с кем я несобираюсь. Кому необходимы мои услуги сами меня находят. А в действительно крупных компаниях админ не лезет в вопросы программистов, видимо поэтому и не встают такие вопросы.
2. Нет. Не представляю.
Вы ведь всерьез недумаете что по вашей теме на форуме кто-то может знать что и как происходит в вашей конторе?.. Это абсурд.
Код тоже можно переписать по разному. И далеко не факт что будет быстрее.
...
Рейтинг: 0 / 0
02.07.2010, 16:34
    #36720397
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Злой БобрФлеймер
1) Не знаю в какой компании вы работаете. Но в крупных компаниях и в нашей в частности, админ таких решений не принимает.
2) Вы представляете себе объемы изменения бизнес процесов и кода для перехода из -за одного запроса. На много - много ПОРЯДКОВ проще переписать кусок кода в 1С.
1. Меряться ни с кем я несобираюсь. Кому необходимы мои услуги сами меня находят. А в действительно крупных компаниях админ не лезет в вопросы программистов, видимо поэтому и не встают такие вопросы.
2. Нет. Не представляю.
Вы ведь всерьез недумаете что по вашей теме на форуме кто-то может знать что и как происходит в вашей конторе?.. Это абсурд.
Код тоже можно переписать по разному. И далеко не факт что будет быстрее.

Так или иначе - это все равно проблема програмистов, в том числе решать как будет организованно списание по партиям.
А автора программисты сами загнали решать эту проблему, выкручивался как мог.

Да и вообще топикастер какой-то универсальный админ, общается на уровне внедренцев :
Флеймер
Вы представляете себе объемы изменения бизнес процесов и кода для перехода из -за одного запроса.

и в принципе он прав - не ему как админу решать будет по партиям проводиться в реальном режиме времени или не будет.
...
Рейтинг: 0 / 0
02.07.2010, 22:43
    #36720956
Флеймер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
vitkhv.

Да и вообще топикастер какой-то универсальный админ, общается на уровне внедренцев :
[quot Флеймер]
Вы представляете себе объемы изменения бизнес процесов и кода для перехода из -за одного запроса.


Спасибо, vitkhv, а еще я на машинке вышивать умею...

А если серьезно, то я BI занимаюсь, а на "мой" сервер еще 1С ников повесили. А они пока как слепые котята, пока мордочкой не ткнеш - не поймут, где молоко, а куда гадить не нужно.
...
Рейтинг: 0 / 0
02.07.2010, 22:46
    #36720959
Флеймер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Хитроглазый_ОоФлеймер,
скорее всего представляет;
и если всё сделано как надо, то и переписывать надо совсем не много

Злой Бобер
А в действительно крупных компаниях админ не лезет в вопросы программистов, видимо поэтому и не встают такие вопросы.


Вы, наверное, живете в идеальном мире. Я завидую вам :)
...
Рейтинг: 0 / 0
03.07.2010, 04:20
    #36721146
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
ФлеймерА есть какой нибудь способ всегда обратным расчетом считать? У меня даже первого числа проведенных документов с начала месяца значительно больше.

И еще у меня прямым расчетом считается почти вплоть до 27-28 числа. А из вашей фразы я понял, что он должен переключаться с 15го.
Всегда пожалуйста... :)

Я тоже не очень хорошо знаю, как 1С++ выбирает прямой или обратный расчет... :) Для оперативного учета (особенно когда реальные документы бьются на разные даты) предпочитаю всегда брать остатки на ТА независимо от даты документа. Во-первых, существенно уменьшается возможность заделать "минусовые остатки", проведя "задним числом" отгрузку, которая не проводится "сегодня". Главное тут - чтобы БП не допускали проведения приходов "завтра"...
Во-вторых - для этого достаточно встроенных механизмов 1С, даже без использования ВК, и (на современных конфах) - минимум переделок, ибо собственный алгоритм восстановления последовательности можно сделать и внешней обработкой, а в самой конфе просто закоментить расчет остатков, когда документ не попадает в ТА.
...
Рейтинг: 0 / 0
03.07.2010, 04:26
    #36721147
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
ФлеймерА если серьезно, то я BI занимаюсь
Вот тут, как минимум, Вам и карты в руки - показать начальству, что рассчет остатков на "дату документа" в оперативном режиме - есть абсурд и великое зло, ибо мало того, что порождает неконтролируемые ошибки операторов, но еще и толкает на явный мухлеж с остатками... :) Ибо в 1С всегда есть возможность "поправить что-нить задним числом" так, чтобы провести выгодную лично для себя отгрузку в ущерб остальным, и (в итоге) - в ущерб компании... :)
...
Рейтинг: 0 / 0
03.07.2010, 10:42
    #36721216
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Егоров АлександрФлеймерА если серьезно, то я BI занимаюсь
Вот тут, как минимум, Вам и карты в руки - показать начальству, что рассчет остатков на "дату документа" в оперативном режиме - есть абсурд и великое зло, ибо мало того, что порождает неконтролируемые ошибки операторов, но еще и толкает на явный мухлеж с остатками... :) Ибо в 1С всегда есть возможность "поправить что-нить задним числом" так, чтобы провести выгодную лично для себя отгрузку в ущерб остальным, и (в итоге) - в ущерб компании... :)А почему зло? Всегда есть варианты.
...
Рейтинг: 0 / 0
07.07.2010, 02:09
    #36726858
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Программист 1с,

Надо было написать "на мой взгляд" в предыдущем посте. Понимаю, конечно, что есть и другие варианты. :) И понимаю, что в такой методе тоже есть свои минуса. Как минимум - свой собственный механизм восстановления последовательности, который переводит проведение документа из "оперативного" в "регламентый" режим.

На мой взгляд, в оперативном режиме рассчитывать остатки только на ТА проще, чем пытаться дополнительно регламентировать проведения задним числом. С учетом, что "заднее число" с точки зрения последовательности документов - это может быть и сегодняшний документ, проведенный утром. Сдвинуть его на конец дня, а свою заявку засунуть на начало - вот и пример минусов по остаткам. В случае же с расчетом на ТА - такого не произойдет...
...
Рейтинг: 0 / 0
07.07.2010, 09:23
    #36727031
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Егоров АлександрПрограммист 1с,

Надо было написать "на мой взгляд" в предыдущем посте. Понимаю, конечно, что есть и другие варианты. :) И понимаю, что в такой методе тоже есть свои минуса. Как минимум - свой собственный механизм восстановления последовательности, который переводит проведение документа из "оперативного" в "регламентый" режим.

На мой взгляд, в оперативном режиме рассчитывать остатки только на ТА проще, чем пытаться дополнительно регламентировать проведения задним числом. С учетом, что "заднее число" с точки зрения последовательности документов - это может быть и сегодняшний документ, проведенный утром. Сдвинуть его на конец дня, а свою заявку засунуть на начало - вот и пример минусов по остаткам. В случае же с расчетом на ТА - такого не произойдет...

В УПП кстати при проведении в неоперативном режиме (т.е. фактически задним числом даже если в пределах одного дня) остатки тоже не расчитываются и не контролируются, грубо говоря можешь списать со склада хоть милиард штук которых там совсем нет.
Так что контроль остатков, на ТА было бы гораздо лучше чем есть сейчас в стандартных семерочных конфах.
Хотя здесь остается проблема приходов которые могут быть раньше реализаций, в этом случае при проведении документов созданных раньше чем сегодня, вообще нет смысла проверять остатки, даже на ТА, что в УПП (видимо и в УТ и в КА) с успехом и реализовано. А проблему приходов и расходов внутри одного дня успешно решает жесткое проведение документов на ТА.
...
Рейтинг: 0 / 0
07.07.2010, 09:54
    #36727103
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
vitkhvВ УПП кстати при проведении в неоперативном режиме (т.е. фактически задним числом даже если в пределах одного дня) остатки тоже не расчитываются и не контролируются, грубо говоря можешь списать со склада хоть милиард штук которых там совсем нет.
Такое я бы назвал скорее бардаком. :) Хотя такое и встречается в реальной жизни... Например - "сверхсрочная реализация вип-клиенту товара, который уже реально принят складом, реально может быть отдан клиенту, но по базе еще непроведен, ибо вагон только наполовину разгружен" :)
Тут вопрос к точности УУ, не более... Если позволительно проводить "отложенную реализацию" и соотв. городить минусовые остатки и их контроль на конец дня\периода - почему нет? Это тоже вариант, имеющий право быть...

Я бы разделил "ПоступлениеТМЦ" и "ПриемТовараСкладом" на разные документы, первый делал бы "регламентно" и "по-типовому" БУ и НУ. А вторые делались бы на основании первого непроведенного еще Поступления, их могло быть несколько, и проводился бы он только по УУ. Тогда склад реально принятый товар мог в любой момент провести, ввести новый документ и продолжал бы разгрузку, "РеализацияТМЦ" проводилась бы "оперативно", только по УУ. "ПоступлениеТМЦ" было бы привязано к документ ам "ПриемТовараСкладом" и проводило бы "регламенто" и "по-типовому" БУ и НУ (с контролем соответствия товаров в документах Приемки). Потом как-нить ночью или по кнопке запускалась бы "восстановление регламентной последовательности", которое перемещало приходы и поступления на начало дня, и перепроводило бы реализации "регламентно". При этом контроль отрицательных остатков включен всегда , по УУ ессно...
...
Рейтинг: 0 / 0
07.07.2010, 10:44
    #36727252
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прямой и обратный расчет остаков по регистру
Код: plaintext
Я бы разделил "ПоступлениеТМЦ" и "ПриемТовараСкладом" на разные документы

есть такая штука как приходный ордер на товары
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Прямой и обратный расчет остаков по регистру / 25 сообщений из 41, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]