Автор |
Тема: Упакованные параметры (Прочитано 2182 раз) |
|
Alexander_Kiev
Просмотреть Профиль | E-мэйл
Сообщений: 661
|
Иногда основные параметры счетов используются в ограниченом диапозоне их реальной вместимости. Например остатки на складах или какие-то иные товарные реквизиты. В общем предлагаю к рассмотрению метод удвоения кол-во параметров при условии ограничения их значения до 1000000. Ниже приведены алгоритмы манипуляции, где P-расширенный номер параметра, в примере от 0-13 (семь родных); RS-значение параметра; KR-субсчет; Q-модифицируемая величина; DD-константа=1000000 ********************** Получить значение упакованного параметра :GETPRS; SW=[TR P/7]; EP=[EP*KR,P%7+1]; RS=[TR EP/DD] RS=RS*SW+(EP-RS*DD)*(1-SW); RETURN ********************** Добавить к остатку упакованного параметра :ADDPRS; AP='='+[INTSN P%7+1] folio-177*KR *AP ([EP*KR,P%7+1]+Q*([TR P/7]*(DD-1)+1)); RETURN ********************** Отнять от остатка упакованного параметра :SUBPRS; AP='='+[INTSN P%7+1] folio-177*KR *AP ([EP*KR,P%7+1]-Q*([TR P/7]*(DD-1)+1)); RETURN ********************** Обнулить остаток упакованного параметра :RESPRS; AP='='+[INTSN P%7+1]; SW=[TR P/7]; EP=[EP*KR,P%7+1]; TR=[TR EP/DD]*DD folio-177*KR *AP (TR*(1-SW)+(EP-TR)*SW); RETURN ********************** С передаваемыми параметрами и возвращаемыми значениями, последних возможностей языка, это выглядит еще более заманчиво. Отсутствие условных операторов, снижает издержки фазы перерасчета до ~2%
|
« Изменён в : 02.11.04 в 21:38:20 пользователем: Alexander_Kiev » |
Зарегистрирован |
С уважением, Александр.
|
|
|
Vladimir
Я люблю этот Форум!
Просмотреть Профиль | WWW |
Сообщений: 264
|
|
Re: Упакованные параметры
« Ответить #1 В: 03.11.04 в 01:51:27 » |
Цитировать | Править
|
Очень классная идея, которая родилась, видимо, тогда, когда параметров [set]/[get] еще не было. А мне лично понравилось вот что - Александр опубликовал в разделе "Для начинающих" свою идею, которая может быть полезна начинающим. А то как то грустно, если все рурики этого раздела начинаются только с вопросов и проблем. Хорошо, если и другие разработчики последуют его примеру.
|
|
Зарегистрирован |
С уважением, Владимир
|
|
|
VLV
Я люблю Финансы без проблем!
Просмотреть Профиль |
Сообщений: 231
|
|
Re: Упакованные параметры
« Ответить #2 В: 03.11.04 в 07:36:54 » |
Цитировать | Править
|
По моему в воздухе витает старая добрая идея "Библиотека подпрограмм"
|
|
Зарегистрирован |
|
|
|
Alexander_Kiev
Просмотреть Профиль | E-мэйл
Сообщений: 661
|
|
Re: Упакованные параметры
« Ответить #3 В: 03.11.04 в 18:15:33 » |
Цитировать | Править
|
on 03.11.04 в 01:51:27, Vladimir wrote:Очень классная идея, которая родилась, видимо, тогда, когда параметров [set]/[get] еще не было. |
| Не, Володя, не угадал . Реализации чуть более полугода и родилась она когда заказчик стребовал минимум 8 складов, а я мог предоставить только 5. Так как еще есть брак, резервы, прогнозы поставки и цена. Я тогда взял калькулятор и посчитал, во что выльются на экстрапараметрах 10 складов на 10000 наименований. Плюс, к тому времени, подпрограмы для ф/к уже использовал. Тут сам бог велел попробовать. Как по мне, если б [set]/[get] работали более гибко, скажем без дневной детализации по желанию, еще бы подумал. Даже на средних базах приходится кроить, а как быть с 30-ю пользователями? Вон Боря уже в 2Gb не влазит.
|
« Изменён в : 03.11.04 в 18:31:10 пользователем: Alexander_Kiev » |
Зарегистрирован |
С уважением, Александр.
|
|
|
Vladimir
Я люблю этот Форум!
Просмотреть Профиль | WWW |
Сообщений: 264
|
|
Re: Упакованные параметры
« Ответить #4 В: 03.11.04 в 19:28:39 » |
Цитировать | Править
|
Ну не угадал, так не угадал. Постольку поскольку раздел "для начинающих", то позволь суммировать. Параметры по сравнению с экстрапараметрами экономят память - преимущество. Параметры по сраврнению с экстрапараметрами работают медленнее - недостаток. Параметры для занесения в них значения занимают одну на каждый параметр проводку в листе дерева (а всего то их 15 проводок). Вопрос - не пробовал ли ты запихивать проводки по параметрам внутрь ФК при помощи оператора 177?
|
|
Зарегистрирован |
С уважением, Владимир
|
|
|
Alexander_Kiev
Просмотреть Профиль | E-мэйл
Сообщений: 661
|
|
Re: Упакованные параметры
« Ответить #5 В: 04.11.04 в 13:26:56 » |
Цитировать | Править
|
on 03.11.04 в 19:28:39, Vladimir wrote: Параметры для занесения в них значения занимают одну на каждый параметр проводку в листе дерева (а всего то их 15 проводок). Вопрос - не пробовал ли ты запихивать проводки по параметрам внутрь ФК при помощи оператора 177? |
| Одним махом по всем пунктам: ВСЕ проводки, включая модификацию параметров запихнуты внутрь ф/к. Посему ни каких количественных ограничений нет. Реактивность сервера вплотную приблизилась к 20000 оп/с. на обычном селероне 2.6 Ghz. Расход памяти примерно 50 Mb контекста на 200000 оп. Функциональность ты и сам мог прикинуть. Экстрапараметры тоже используются, но в весьма ограниченных рамках. Не помню говорил тебе или нет, все эти перетрубации с одним общим ф/к, с упакованым многострочником потребовали бОльших ресурсов на служебные нужды, а быстродействие более чем удвоилось, при одновременном расширеннии функциональности. Тут очень много составляющих, в том числе и избыточных и притормаживающих, но результат на лицо. И читабельность на высоте.
|
« Изменён в : 04.11.04 в 13:50:58 пользователем: Alexander_Kiev » |
Зарегистрирован |
С уважением, Александр.
|
|
|
Konstantin
Я люблю этот Форум!
Просмотреть Профиль | E-мэйл
Сообщений: 118
|
|
Re: Упакованные параметры
« Ответить #6 В: 05.11.04 в 15:57:16 » |
Цитировать | Править
|
on 03.11.04 в 18:15:33, Alexander, Kiev wrote: Как по мне, если б [set]/[get] работали более гибко, скажем без дневной детализации по желанию, еще бы подумал. Даже на средних базах приходится кроить, а как быть с 30-ю пользователями? Вон Боря уже в 2Gb не влазит. |
| По формальным признакам такие [set]/[get] в платформе ФБП уже реализованы, - факты называются. Все вообще на них можно сделать. Интересно, по каким причинам не подходят?
|
|
Зарегистрирован |
|
|
|
Alexander_Kiev
Просмотреть Профиль | E-мэйл
Сообщений: 661
|
|
Re: Упакованные параметры
« Ответить #7 В: 05.11.04 в 19:17:49 » |
Цитировать | Править
|
Формально, на фактах действительно можно базироваться на 95%. По отношению к накопительным регистрам у них маленькая слабинка -время получения конечного значения. Ну не хранить же всю ленту фактов от начала хозяйственной деятельности. Разумная комбинация, с максимальным упором на факты дает с моей точки зрения наилучшие результаты. Да и паралельный контроль тоже не помешает. Хотя мыслишка погуливала отказаться от проводок, в пользу параметров. Но так чтоб совсем без накопительных регистров, эт врядли.
|
|
Зарегистрирован |
С уважением, Александр.
|
|
|
Konstantin
Я люблю этот Форум!
Просмотреть Профиль | E-мэйл
Сообщений: 118
|
|
Re: Упакованные параметры
« Ответить #8 В: 05.11.04 в 21:41:44 » |
Цитировать | Править
|
on 05.11.04 в 19:17:49, Alexander, Kiev wrote: По отношению к накопительным регистрам у них маленькая слабинка - время получения конечного значения. Ну не хранить же всю ленту фактов от начала хозяйственной деятельности. |
| Т.е., насколько я понял, - NEWS срабатывает медленней чем [GET]. Но в остальном ведь, внешне, ничем от накопительного регистра не отличается. Минус - скорость. Плюс (по сравнению с ЭП) - меньше памяти нужно, поскольку каждый день факт сам себе списки значений не строит как ЭП. Так? А параметр, наверное, списки значений строит не каждый день, а каждый месяц и памяти поэтому меньше ест, чем ЭП. Но все равно, не видно связки со вторым предложением, - а зачем собственно хранить всю ленту? Ее ведь "перелопатить" можно так, как нужно разработчику, подменяя этим, при необходимости, различия в устройствах доступа. Лично я, конечно не сразу, но все-таки пришел к выводу, что, в принципе, легко от ЭП и П можно и нужно отказаться и оставить только факты. И программировать проще (если не касаться такого "перелопачивания" конечно ). on 05.11.04 в 19:17:49, Alexander, Kiev wrote: Но так чтоб совсем без накопительных регистров, эт врядли. |
| Хотя, согласен конечно, при таких же сногсшибательных объемах и требованиях как у Вас, видно не до общих рассуждений, - борьба идет за каждое решение, приносящее милисекунду. В общем, легко сказать со стороны, тем более у меня объемы не те и поэтому скорость не так критична.
|
« Изменён в : 06.11.04 в 09:41:54 пользователем: Konstantin » |
Зарегистрирован |
|
|
|
Alexander_Kiev
Просмотреть Профиль | E-мэйл
Сообщений: 661
|
|
Чего то мы совсем в сторону уехали
« Ответить #9 В: 06.11.04 в 11:45:45 » |
Цитировать | Править
|
Основные параметры расход памяти не меняют в зависимости от того используем мы их или нет. Это как приложение к субсчету, они существуют всегда. Экстрапараметры задействуют дополнительно память и тем больше, чем больше общее количество дней в которых они модифицируются. Модификации в течении дня расход не меняют. Все параметры и остатки на субсчетах являются накопительными регистрами. По ним мгновенно можно получить результат на конец отчетного периода и на срез любого месяца года, экстрапараметры дополнительно на конец любого дня года. Факты это история. По истории можно получить любое накопленное состояние с дискретностью до проводки, но это время на сканирование этой самой истории. Типичный пример: остатки на складах. Конечное значение оптимальнее на параметрах; остаток на конец любого дня на экстрапараметрах(быстро, но дорого) или на фактах+параметрах(медленно, даром и приемлемо); остаток на конкретную операцию на параметрах+только факты(без вариантов). Не так давно получилось даже штамп операции засунуть в обычный параметр.
|
« Изменён в : 06.11.04 в 11:58:06 пользователем: Alexander_Kiev » |
Зарегистрирован |
С уважением, Александр.
|
|
|
Valery
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 153
|
|
Re: Упакованные параметры
« Ответить #10 В: 07.11.04 в 12:55:23 » |
Цитировать | Править
|
Спасибо Александру за прекрасный ликбез. Я работаю с ФБП много лет, но такой доступный и краткий по изложению и емкий по сути анализ лично мне поможет переосмыслить многое сделанное, пересмотреть старые настройки (как не хочется с ними возиться....). Ну а в новых настройках конечно же все это буду пытаться использовать. А для начинающих эта информация бесценна! А как на счет та-фактов. По потреблению опер.памяти они наверно на первом месте. Используете ли вы их? Когда наиболее оптимально их применение? Я, например, если их можно обойти, то обхожу. Оперпамять жалко.
|
|
Зарегистрирован |
С уважением, Валерий.
|
|
|
Valery
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 153
|
|
Re: Упакованные параметры
« Ответить #12 В: 08.11.04 в 12:32:27 » |
Цитировать | Править
|
on 08.11.04 в 07:51:28, Boris, Kiev. wrote: Проверил работу "ta1-СИСТЕМНЫЕ ФОРМЫ" на сервере 3.27 В сравнении с стандартной настройкой объем памяти на ta-факты остался без изменений. Видимо потому что на 3.27 режим ta1 (запоминать только первые две проводки) не работает. Завтра попробую на 3.28 Первые впечатления от просмотра модифицированных системных отчетных форм: 1.Формы, на мой взгляд, лучше смотрятся (интуитивно более понятны). 2.Превосходно, что виден коментарий к операции без вызова самой проводки!!! 2.Наличие линий (колонок) красиво, но (возможно) все это дополнительные байты для перекачки по сети да и для печати еще многие применяют матричные принтеры. Но, видимо, это легко устраняется автором по индивидуальной просьбе заказчика. 3.Подсказки в каждой форме - это плюс, но на практике большинство пользователей после нескольких часов работы в ФБП легко запоминают необходимые действия при просмотре стандартных отчетных форм и подсказки уже не нужны. Но, конечно, лучше что бы они были в каждой форме. И, несомненно, это БОЛЬШОЙ плюс при первой демонстрации ФБП. Но главное достоинство "ta1-СИСТЕМНЫЕ ФОРМЫ" - экономию памяти (как утверждает автор, в режиме ta1 сохраняется показ всех проводок в разрезе каждого дня) проверю на сервере 3.28 Спасибо Борису за ответ.
|
|
Зарегистрирован |
С уважением, Валерий.
|
|
|
Boris, Kiev.
Адепт ФБП с 1996г.
Просмотреть Профиль | E-мэйл
Сообщений: 874
|
|
Re: Упакованные параметры(ta1-системные формы)
« Ответить #13 В: 09.11.04 в 08:38:06 » |
Цитировать | Править
|
Спасибо за Ваш добрый отзыв. Несколько дополнений - уточнений. 1. Комплект будет корректно работать только под 3.28 и выше. Об этом обязательно допишу на страничке, спасибо. 2. Ваша многострадальная критика, надеюсь, не имела бы места, если бы Вы нажали "[F1]-вкл/выкл.помощь". Это ведь записано в нижней непрокручиваемой строке каждой формы, когда каждый клиент первый раз открывает любую ta1-системную форму. Если [F1] нажали сразу, затем пробел для обновления и не успели прочесть в нижней строке, то останется только интуиция, чтобы нажать еще раз [F1]. Извините. Получил ещё одно подтверждение, что коллеги - народ ленивый к чтению инструкций и вводных. В конце той же страницы http://ln.com.ua/~superpan/ta-1_s_f.htm написано: Quote:Также в форме _CFWP0C2 реализован продвинутый фильтр по полю наименования, аналогичный встроенному клиентскому, (т.е. не чувствительный к раскладкам и прописным и строчным) с возможностью собирать итоги и записью в отчете об установленном фильтре. Еще небольшая находка при построении отчётов. Часто требуется распечатать какой-либо активный* отчёт по всей форме, т.е. с шапкой какого-либо образца и без текущих подсказок. Для этого достаточно одного нажатия [F1] и тот же активный отчёт становится типовой формой. Для этого используется форма, служащая для обновления отчета без её явного рестарта, т.е. через механизм «возможно устарело». Отсюда можно получить zip комплекта ©"ta1-СИСТЕМНЫЕ ФОРМЫ" http://www.ln.com.ua/~superpan/TA-1_S_F.zip *активный отчет – имеется ввиду форма, из которой можно переходить к другим связанным отчетам, документам и так до операций, которые послужили основанием для их построения. |
|
|
|
Зарегистрирован |
|
|
|
Vladimir
Я люблю этот Форум!
Просмотреть Профиль | WWW |
Сообщений: 264
|
|
Re: Упакованные параметры
« Ответить #14 В: 10.11.04 в 07:05:23 » |
Цитировать | Править
|
on 08.11.04 в 07:51:28, Boris, Kiev. wrote: Борис, Попытал ваши формы. Появился вопрос. При нажатии F1 в любой форме получаю сообщение об ошибке Е-27: 13:10 Не могу открыть файл c:\bux\box\_S04_\ADMIN\UPTI Для справки. Подкаталогов для пользователей в директории обмена я не создаю. Сервер версии 4.00 Поскольку формы зашифрованы, то приходится задавать вопросы. Что такое?
|
|
Зарегистрирован |
С уважением, Владимир
|
|
|
|
|