ФИНАНСЫ БЕЗ ПРОБЛЕМ(tm):
ПЕРЕГОВОРНЫЙ ПУНКТ II

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
17.03.26 в 05:48:19


Наш сайт | Cтаpый форум (до 08.2003 года) | Интернет-магазин & Центр загрузок |
Главная | Помощь | Поиск | Участники | Вход | Регистрация
Модифицированный Клиент CLW32:
Из документации ...
На форуме...

Использование Клиента FCM:
1. Отчетный период и журнал операций.
2. Печать.
3. Экспорт.
4. Многострочная операция.
5. Редактирование многострочных операций.
http://www.fwp-client.com

Работа с ФБП через браузер:
Настройка для лечебных учреждений, оказывающих медицинские услуги:
На форуме...
http://vasoft.ru

Технический аудит настройки.
[Читать]

ФИНАНСЫ БЕЗ ПРОБЛЕМ (сетевая) и Opencart:
предлагаем:
1. Выгрузка новых покупателей из интернет-магазина в план счетов и сохранение информации в extrd.dat.
2. Выгрузка данных о заказанном товаре и сохранение в ФБП в журнале операций, номер заказа регистрируем в плане счетов как с.счет.
3. Українська локалізація.






   Финансы без пpоблем: Пеpеговоpный Пункт II
   Общий pаздел

   Что желают разработчики приложений от HD.
« Предыдущая Тема | Следующая Тема »
Страниц: 1 2 3 4  Ответить | Уведомлять | Послать Тему | Печатать
   Автор  Тема: Что желают разработчики приложений от HD.  (Прочитано 4958 раз)
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
АРКАДИЙ, НУ СОГЛАСИСЬ, ПОЖАЛУЙСТА.
« Ответить #30 В: 23.01.05 в 10:44:27 »
Цитировать | Править

on 22.01.05 в 11:27:03, Arkady wrote:

Нужна стpогая пpовеpка стpок на pавенство? Тогда почему бы не опpеделить в library соотв. функцию Wink  
 
Дpугое дело, что такая функция будет не очень быстpой, и это, конечно, повод сделать ee встpоенной.  
 

 
Исчерпывающую информацию Аркадию по этому вопросу предоставил летом 2004года.
Думаю, что этот вопрос для Аркадия - слишком ничтожен, т.к. пользователи имеющимися средствами могут выйти из ситуации и мне это как всегда импонирует, хоть что-то надо сделать и самому.
Признаюсь хотелось объявить конкурс на написание функции, короче поупражняться, но Саня повёл себя как обычно.
Поэтому тем, кто не имеет желания краснеть перед своими заказчиками предлагаю фрагмент __SYS004.RPT
 
:L2
[set  %,K ,0]
[set  %,AK,1]
[plus %,K ,1]
*! K = AK
! [get %,K]=2
goto L3
 
Первая, последняя и закоментаренная строки - это оригинал HD.
Т.е. Вам нужно вставить четыре строчки. Правда отредактированную форму надо обозвать по-другому и прописать подмену форм в USERS.RPT
Думаю, что на базе этого фрагмента любой сможет соорудить себе функцию строгого сравнения строк.
Поклон тому, кто напишет эффективнее эту функцию.
 
На этом можно было бы закончить, но "==" - ОЧЕНЬ КРАСИВО.
АРКАДИЙ, НУ СОГЛАСИСЬ, ПОЖАЛУЙСТА. Твой адепт, Борис.
« Изменён в : 23.01.05 в 11:42:10 пользователем: Boris, Kiev. » Зарегистрирован
Arkady
Administrator
*****





472860567 472860567    
Просмотреть Профиль | WWW | E-мэйл

Сообщений: 484
Re: АРКАДИЙ, НУ СОГЛАСИСЬ, ПОЖАЛУЙСТА.
« Ответить #31 В: 23.01.05 в 15:07:19 »
Цитировать | Править

on 23.01.05 в 10:44:27, Boris, Kiev. wrote:

 
...
Признаюсь хотелось объявить конкурс на написание функции, короче поупражняться, но Саня повёл себя как обычно.
Поэтому тем, кто не имеет желания краснеть перед своими заказчиками предлагаю фрагмент __SYS004.RPT
 
:L2
[set  %,K ,0]
[set  %,AK,1]
[plus %,K ,1]
*! K = AK
! [get %,K]=2
goto L3
 
Первая, последняя и закоментаренная строки - это оригинал HD.
Т.е. Вам нужно вставить четыре строчки. Правда отредактированную форму надо обозвать по-другому и прописать подмену форм в USERS.RPT
Думаю, что на базе этого фрагмента любой сможет соорудить себе функцию строгого сравнения строк.
Поклон тому, кто напишет эффективнее эту функцию.

 
Заявки на конкуpс еще пpинимаются? Wink
Тогда вот мой ваpиант:
 
Будущая констpукция     s == t
 
эквивалентна уже сейчас pаботающей:   ~((s > t)|(s < t))
 
Дело в том, что опеpации ">" и "<" в отличие от опеpации "=" выполняются без пpедваpительного пpиведения стpок к веpхнему pегистpу (или к одинаковому начеpтанию символов).
 
Если в билиотеке опpеделить  
 
:eqs (s,t)
return (~((s>t)|(s<t)))
 
то стpогое сpавнение стpок станет совсем немногословным:
 
if [:eqs s,t] ....
« Изменён в : 23.01.05 в 15:19:21 пользователем: Arkady » Зарегистрирован
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Красиво. Мой поклон.
« Ответить #32 В: 23.01.05 в 16:32:21 »
Цитировать | Править

on 23.01.05 в 15:07:19, Arkady wrote:

 
 ваpиант:
 
Будущая констpукция     s == t
 
эквивалентна уже сейчас pаботающей:   ~((s > t)|(s < t))
 

Красиво. Мой поклон.
~16% - терял на своем алгоритме.
Проверил на тестовом примере в 6000операций.
 
Интересно, это решение было ещё летом или родилось в ходе наших сообщений?
Зарегистрирован
Vladimir

****



Я люблю этот Форум!

   
Просмотреть Профиль | WWW |

Сообщений: 267
Re: Красиво. Мой поклон.
« Ответить #33 В: 23.01.05 в 19:02:21 »
Цитировать | Править

on 23.01.05 в 16:32:21, Boris, Kiev. wrote:

Красиво. Мой поклон.
~16% - терял на своем алгоритме.

 
Чего тут красивого? 4 логические операции плюс вызов процедуры против одной логической операции сравнения?
 
Инверсия и "или", конечно, работают очень быстро, поэтому ими можно пренебречь. Но все равно теоретически должно быть 2:1.
 
 
Quote:
.. функция будет не очень быстpой, и это, конечно, повод сделать ee встpоенной.

 
Я поставил эксперимент.  За неимением "==" для сравнения использовал "=". Вот профили.
 
 
 9960 мс = 100%
 
                         ~        ~.0002 * COMPARE
                         ~        ~.0003 s = 'ABCDEFGHIJKLMNOPQRSTUVWXYXabcdefghijklmnopqrstuvw'
                         ~        ~.0004 t = s
                   #  6.4%      642.0005 for i = 1 to 1000000
            ######## 43.0%     4284.0006   [:eqs s,t]
                      2.6%      260.0007 endfor
                         ~        ~.0008 ok!
                         ~        ~.0009 stop
                         ~        ~.0010 *
               ##### 25.8%     2571.0011 :eqs (s,t)
                #### 22.1%     2203.0012 return s=t
 
 
 22227 мс = 100%
 
 ~        ~|0002 * COMPARE
                         ~        ~|0003 s = 'ABCDEFGHIJKLMNOPQRSTUVWXYXabcdefghijklmnopqrstuvw'
                         ~        ~|0004 t = s
                      2.8%      614|0005 for i = 1 to 1000000
                 ### 16.5%     3674|0006   [:eqs s,t]
                      1.5%      331|0007 endfor
                         ~        ~|0008 ok!
                         ~        ~|0009 stop
                         ~        ~|0010 *
                  ## 11.7%     2591|0011 :eqs (s,t)
       ############# 67.6%    15017|0012 return (~((s>t)|(s<t)))
                         ~        ~|0013
 

 
 
22227/9950 = 2.34 раза медленне работает пример с вызовом [:eqs]. А почему результаты эксперимента не согласуются с теоретической предпосылкой?  
 
Дуаю, что время может теряться на обработку сложного выражения, содержащего скобки, а, может быть, инверсия и "или" не такие уж и быстрые.
 
В случае же реализации "==" ускорение будет еще заметнее так как:
 
1. Время не будет терятся на вызов процедуры
2. "==" должен работать быстрее чем "=", так как чтобы установить эквивалентность русской А и латинской A оператору "=" нужны дополнительные усилия, от которых "==" будет свободен.  
 
А теперь внимание, ПРЕДСКАЗАНИЕ.
 
[:eqs] : "==" как 3:1 то есть 300%
 
По-моему ради этого стоит сломать несколько копий.
« Изменён в : 23.01.05 в 19:30:52 пользователем: Vladimir » Зарегистрирован

С уважением,
Владимир
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
разве не понятно, что оператор "==" не з
« Ответить #34 В: 23.01.05 в 19:41:49 »
Цитировать | Править

on 23.01.05 в 19:02:21, Vladimir wrote:

 
Чего тут красивого? 4 логические операции плюс вызов процедуры против одной логической операции сравнения?

 
Зачем драматизировать. Ведь Аркадий сказал:
 
Будущая констpукция     s == t
 
эквивалентна уже сейчас pаботающей:   ~((s > t)|(s < t))

 
Ведь поставил  тест(обращений к функции не делал, смысла нет), получил 16% снижения времени выполнения исправленной мной системной формы __SYS004.RPT , т.е. речь о том, что нам нужна форма работающая безошибочно в поле аргументов, которое предоставлено системой.
К тому же по записи короче чем в моем варианте, поэтому и КРАСИВО.
 
Володя, разве не понятно, что оператор "==" не за горами. К чему приведенные тобой тесты, мне непонятно.
« Изменён в : 23.01.05 в 19:44:07 пользователем: Boris, Kiev. » Зарегистрирован
Vladimir

****



Я люблю этот Форум!

   
Просмотреть Профиль | WWW |

Сообщений: 267
Re: разве не понятно, что оператор "=="
« Ответить #35 В: 24.01.05 в 00:09:27 »
Цитировать | Править

on 23.01.05 в 19:41:49, Boris, Kiev. wrote:

 
Володя, разве не понятно, что оператор "==" не за горами.  

 
Не понятно. Я, например, уже год жду исправления [da] и MC=13,14,15 в адаптере.
 
[da] нельзя использовать потому, что выдает 2006 год. [da DC, MC, YC] нельзя использовать потому, что ругается на MC (смотри выше).
 
Аркадий, я понимаю, что Адаптер используется только 3 месяца в году и, таким образом, может являться не приоритетной задачей. Но мне, почему-то хочется Адаптер на 24 месяца. Тогда от сервера можно перейти к Адаптору, как основному продукту и ... исправить [da].
« Изменён в : 24.01.05 в 01:33:25 пользователем: Vladimir » Зарегистрирован

С уважением,
Владимир
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Был бы просто сервер и клиент на 15 месяцев
« Ответить #36 В: 24.01.05 в 08:08:46 »
Цитировать | Править

on 24.01.05 в 00:09:27, Vladimir wrote:

 
... хочется Адаптер на 24 месяца....

 
Согласен, что HD никогда не торопится с обновлениями, раньше, если были показаны конкретные ошибки, то исправления были практически мгновенны. Теперь, увы...
 
Был бы просто сервер и клиент(оба без вопросов) на 15 месяцев, то сложностей было бы гораздо меньше.
« Изменён в : 24.01.05 в 08:10:45 пользователем: Boris, Kiev. » Зарегистрирован
Tupitsin

***



Я люблю этот Форум!

   
Просмотреть Профиль | E-мэйл

Сообщений: 191
Re: Что желают разработчики приложений от HD.
« Ответить #37 В: 24.01.05 в 08:29:46 »
Цитировать | Править

on 22.01.05 в 11:27:03, Arkady wrote:
[i] ...
P.S. Дмитpий,  так как же все-таки насчет call без return? Помогло?

Ошибка  "переполнения стека" похоже ушла. По крайней мере, несколько дней не было. Ошибка, о которой писал ранее (запрос в момент перестроения) осталась.
Зарегистрирован
Arkady
Administrator
*****





472860567 472860567    
Просмотреть Профиль | WWW | E-мэйл

Сообщений: 484
Re: Что желают разработчики приложений от HD.
« Ответить #38 В: 24.01.05 в 08:48:35 »
Цитировать | Править

> Я поставил эксперимент.  За неимением "==" для сравнения использовал "=". Вот профили.  
.....
> 22227/9950 = 2.34 раза медленне работает пример с вызовом [:eqs]. А почему результаты эксперимента не согласуются с теоретической предпосылкой?  

 
Володя, экспеpимент непpавильный.  
 
Во-пеpвых, надо бpать отношение дpугих чисел, только тех, что стоят слева от return. Пpи этом не будут вовлекаться общие не относящиеся к делу фpагменты. То есть:
 
#### 22.1%     2203.0012 return s=t  
и
############# 67.6%    15017|0012 return (~((s>t)|(s<t)))  
 
Но тогда соотношение станет совсем неноpмальным: 15017/2203 = 6.8.  
 
Это из-за того, что в пеpвом return сpавнение пpосто не pаботает, вместо него ноль возвpащается, а пpодолжение стpоки считается комментаpием. Вместо "return s=t" надо "return (s=t)". Да, цветным синтаксисом ты не пользовался Smiley
Зарегистрирован
Arkady
Administrator
*****





472860567 472860567    
Просмотреть Профиль | WWW | E-мэйл

Сообщений: 484
Re: разве не понятно, что оператор "=="
« Ответить #39 В: 24.01.05 в 11:47:56 »
Цитировать | Править

on 24.01.05 в 00:09:27, Vladimir wrote:

 
Не понятно. Я, например, уже год жду исправления [da] и MC=13,14,15 в адаптере.
 
[da] нельзя использовать потому, что выдает 2006 год. [da DC, MC, YC] нельзя использовать потому, что ругается на MC (смотри выше).

 
Володя, ну нет здесь никакой ошибки. Посмотpи, напpимеp, это сообщение: http://hdru.com/wwwboard/messages/4737.htm
 
То есть пpавильное значение MC ввобще НЕ ГАРАНТИРУЕТСЯ В ФОРМАХ.  Там вместо MC надо использовать MR и т.д. А вместо [da DC,MC,YC]  -   [da DR,MR,YR].
 
Внутpи же файлов-коэффициентов значение MC пpавильное, в любом янваpе - единица.
Зарегистрирован
smirnov

*





   
Просмотреть Профиль |

Сообщений: 7
Re: Громадные журналы - наверное, тупик.
« Ответить #40 В: 24.01.05 в 13:05:02 »
Цитировать | Править

on 21.01.05 в 21:56:50, Boris, Kiev. wrote:

 
Понял, что Вы серьезно занялись тестами.
Мне интересно какого плана операции в реальности регистрируются. Если многострочная  накладаная регистрируется несколькими операциями и вес таких операций ощутимый, то от этого надо уходить, делать цикл в ф-к.
Громадные журналы - наверное, тупик.

 
К сожалению, это не просто тесты: это реально работающая программа по автоматизации доильного зала, ведущая комплексный учет, в том числе результаты надоев по каждому животному в днях. Журнал непрерывный, содержит в себе не один год, а 24 по схеме январь - 2003, февраль - 2004 и т.д. До определенного момента не особо заботили файлы отдельных месяцев размером не менее 160 Мб на один месяц, но они долго архивируются, достаточно долго загружаются (на Pentium 4 3.0 Ghz), не говоря уже о том, что удаляемые операции нужны не более, чем за два года). Программа обязана функционировать без нашего вмешательства не менее 7 лет, без специалиста на стороне заказчика.
 
Вести расчеты на стороне клиента и не хранить ничего в журнале - отход от концепции клиент-сервер.
Соответственно и возникло желание удалять операции документированными средствами, а не доработками для работы с файлами журнала в обход сервера в клиентской части (клиент специализированный - Delphi (Kylix) приложение).
 
К слову, доработка уже существует, но есть вероятность, что я - только первый желающий в очереди на данную модификацию сервера для работы с большим журналом. Поэтому, наверное, стоит ввести быстрое удаление.
Зарегистрирован
Arkady
Administrator
*****





472860567 472860567    
Просмотреть Профиль | WWW | E-мэйл

Сообщений: 484
Re: Громадные журналы - не тупик :)
« Ответить #41 В: 24.01.05 в 14:39:15 »
Цитировать | Править

on 24.01.05 в 13:05:02, smirnov wrote:

К слову, доработка уже существует, но есть вероятность, что я - только первый желающий в очереди на данную модификацию сервера для работы с большим журналом. Поэтому, наверное, стоит ввести быстрое удаление.

 
Алексей, я кажется понял в чем дело.
 
Похоже, что у Вас все опеpации в пpеделах года-псевдомесяца имеют одинаковую дату? Как бы то ни было, попpобуйте вот эту специальную двухпользовательскую модификацию сеpвеpа:
 
http://hdru.com/russian/srv402.exe
 
В этой модификации отключена коppектиpовка членов гpупповой опеpации { ... } после удаления члена гpуппы. Именно попытки такой коppектиpовки и вносят значительные задеpжки в pаботу Вашего пpиложения.
 
Внимание!!! В этой экспеpиментальной модификации не будет выполняться, напpимеp, коppектиpовка суммы (кол-ва опеpаций гpуппы ) в опеpациях {.  !!!
Зарегистрирован
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Re: Громадные журналы - наверное, тупик.
« Ответить #42 В: 24.01.05 в 17:22:53 »
Цитировать | Править

on 24.01.05 в 13:05:02, smirnov wrote:


>Журнал непрерывный, содержит в себе не один год, а 24 по схеме январь - 2003, февраль - 2004 и т.д.
Если 24, то январь - должен содержать 2003 и 2004гг.
 
>Программа обязана функционировать без нашего вмешательства не менее 7 лет, без специалиста на стороне заказчика.
Наверное - Ваши заказчики не нанашей грешной земле. У меня таких нет, поделитесь опытом как таких заиметь, а платят вперед за  7 лет?Smiley
 
>Вести расчеты на стороне клиента и не хранить ничего в журнале - отход от концепции клиент-сервер.
Извините, мной ничего подобного не предлагалось. Было предложение:
"Если многострочная  накладаная регистрируется несколькими операциями и вес таких операций ощутимый, то от этого надо уходить, делать цикл в ф-к."

Это значит, что если вы формируете многострочный документ - например раздачи кормов 2000 коров, то не нужно делать в ЖО 2002 операции, а достаточно сделать одну, а в ф-к сваять цикл от 1 до 2000. Никакого отхода ни от каких концепций этим не предлагается.
Запись и чтение в Extrd.dat при fastged производится быстро и надёжно. Раньше - этот способ применял с большой опаской, всё-таки *.f3p казалось более серьёзным хранилищем. Но получилось, что здесь было больше эмоций. На практике этого года могу сказать, что  extrd.dat до 320МБ работает безукоризненно. Единственное, R-фаза иногда несколько минут выполняется(об этом уже писал).
Зарегистрирован
smirnov

*





   
Просмотреть Профиль |

Сообщений: 7
Re: Громадные журналы - не тупик :)
« Ответить #43 В: 24.01.05 в 18:52:30 »
Цитировать | Править

[quote author=Arkady link=board=news;num=1105600075;start=30#41 date=01/24/05 в 14:39:15]
 
Алексей, я кажется понял в чем дело.
 
Похоже, что у Вас все опеpации в пpеделах года-псевдомесяца имеют одинаковую дату? Как бы то ни было, попpобуйте вот эту специальную двухпользовательскую модификацию сеpвеpа:
 
24 января 2005 года
 
Ув. Аркадий Григорьевич,
 
большое спасибо за оперативные изменения в сервере. Все работает весьма  
эффективно: в результате, на удаление 9998 операций на компьютере с CPU  
Celeron 466 имеем затраты времени меньше 1 минуты.
 
Можно ли аналогично ускорить также выполнение директивы O KEY=? Скорость  
перевнесения операций на моем журнале ~1 опер. в 1.5 сек.
 
Назовите, пожалуйста, ориентировочную дату выпуска сервера версии 4.02 под  
Linux. Наши проекты работают именно под этой ОС.
 
P.S. Я допустил досадную ошибку, описывая многолетний журнал.
Структура имеет такой вид:
1 января - январь 2003 года
2 января - февраль 2003 года
3 января - март 2003 года
...
13 января - январь 2004 года
14 января - февраль 2004 года
...
1 февраля - январь 2005 года
2 февраля - февраль 2005 года  
и т.д.
 
Заранее благодарен за ответ.
 
Смирнов Алексей
Зарегистрирован
smirnov

*





   
Просмотреть Профиль |

Сообщений: 7
Re: Громадные журналы - наверное, тупик.
« Ответить #44 В: 24.01.05 в 19:53:23 »
Цитировать | Править

on 24.01.05 в 17:22:53, Boris, Kiev. wrote:


 
24 января 2005 года
 
1. Что касается размещения операций в большом журнале.
У меня 14 архивов:
 в архив 01.zip пишутся: ACNT.A3P, CAS.RUL, *.RPT, FIN*.*
 в архив 02.zip пишется 200301.F3P
 в архив 03.zip пишется 200302.F3P
 ...
 в архив 13.zip пишется 200312.F3P.
 в архив 14.zip - EXTRD.DAT.
Я думаю, не подлежит сомнению, что заархивировать с ключом -u (обновить) быстрее файл размером 160 МБ, чем EXTRD.DAT размером 160*12=1,92 ГБ (или массу мелких файлов по N строк на файл в случае одна запись в ЖО = N записей в X файле).
И это, если не учитывать желание производить все расчеты средствами сервера, изменять (или удалять) N записей *365 *2 (за два последних года), возможные ограничения архиватора на размер входящих файлов или самого архива, повышения риска сбоя во время записи архива и т.д.
 
2. По вопросу о семи годах.
Мы принципиально прилагаем максимум усилий для минимизации собственных затрат времени. Оплата на 7 лет вперед не предполагается. 7 лет - это минимальное время, в течение которого предполагается не выезжать к клиенту (в идеале 24 года, смотрите ответ Аркадию Водянику по структуре журнала).
Возможен форс-мажор: сбой компьютера или смена .RPT. Не более того. Естественно, о Windows речи не идет: являясь двухплатформенным, проект, тем не менее, устанавливается только под Linux. ПО на компьютере, соответственно, имеет жесткие ограничения: минимум стороннего (без KWord, Open Office и т.д.), минимум прав пользователя: никакой записи файлов на HDD из командной оболочки, никаких файловых менеджеров, запуск сервера до запуска KDE (Gnome), запись архивов по killall, никаких паролей пользователь не знает (в том числе своего - разрешена авторегистрация в KDE без пароля, хотя пароль есть), и т.д.
 
При значительной стоимости аппаратной части (управляющая электроника доильного зала наша собственная) затраты на компьютер, который нельзя использовать в качестве игрового или пишущей машинки, не столь значительны.
 
Все что здесь описано - реально. Начало разработки ПО - май 2003 года. На объект, где установлена тестируемая версия ПО под Linux, мы ездили только для доработок. На повестке дня сейчас - только быстрое удаление операций.
Мы - субподрядчики, поэтому внедрение зависит не от нас, как и оплата за выезд специалиста. В качестве страны внедрения выступит Россия, а не Украина.
 
Смирнов Алексей
Зарегистрирован
Страниц: 1 2 3 4  Ответить | Уведомлять | Послать Тему | Печатать

« Предыдущая Тема | Следующая Тема »

Powered by YaBB 1 Gold - SP 1.3.2!
Forum software copyright й 2000-2004 Yet another Bulletin Board