powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Быстродействие.
32 сообщений из 32, показаны все 2 страниц
Быстродействие.
    #34872580
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. У меня такой вопрос. Имею систему вин 2003 сервер (2 проца интел ксеон 3 Ггц (не коре 2 дуо) 4 ГБ оперативки) с установленным Cache` 5.0.20.6305.0 и АБС "Гефест" "Прогромбанка". В конце месяца, когда отчетчики получают свои отчеты, система практически останавливается... Процессоры загружены на 100%. Скорее всего проблема даже не в коши, а в коде Прогромбанка. Некоторые выходят из данной ситуации следующим образом. Ставят еще один комп с Cache` и на первом врубают зеркалирование на второй сервер. И пускают отчетников на зеркало, чтобы не загружать первый сервер и на нем все работали нормально. Может ли кто-нибудь предложить мне какое-нибудь решение? Просто сейчас хотим менять сервер, но тут появляется вопрос, если мы увеличим мощности сервера, но вся система все равно будет тормозить, может и не стоит покупать новый серв? Помогите пожалуйста, может кто сталкивался с этим...
...
Рейтинг: 0 / 0
Быстродействие.
    #34872988
uuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А размазать по времени отчётчиков из этого Погромбанка не пробовали?
...
Рейтинг: 0 / 0
Быстродействие.
    #34873074
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сами собираемся применять зеркало - хотя у нас в системе ситуация немного другая- там I/O тормозить ... то есть загрузка проца никакая ...

В Вашем случае если отчетники готовять это в фоновых процессах - можно попытатся у каши настройку приоритета у фоновых процессов понизить - загрузка останеться но остальным должно быть легче
...
Рейтинг: 0 / 0
Быстродействие.
    #34873542
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uuserА размазать по времени отчётчиков из этого Погромбанка не пробовали?
Отчетчики не програмбанка, а наши. А они обычно в конце месяца отчеты делают.
...
Рейтинг: 0 / 0
Быстродействие.
    #34873553
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А обычно загрузка какая? Что за отчеты? Может там какой-нить запрос кривой, который можно оптимизировать?
...
Рейтинг: 0 / 0
Быстродействие.
    #34873560
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PtnСами собираемся применять зеркало - хотя у нас в системе ситуация немного другая- там I/O тормозить ... то есть загрузка проца никакая ...

В Вашем случае если отчетники готовять это в фоновых процессах - можно попытатся у каши настройку приоритета у фоновых процессов понизить - загрузка останеться но остальным должно быть легче
У нас отчеты делаются от 40 минут до 2 часов. Если понизим приоритет, то думаю что это время увеличится еще. Может есть еще какое-нибудь решение. Даже не знаю что делать. Сейчас, возможно, будем покупать сервер HP который стоит 500 000р. И если после этого ситуация не изменится, то надо будет как то объяснять президенту в чем дело :) Как думаете, в зеркалировании единственный выход?
...
Рейтинг: 0 / 0
Быстродействие.
    #34873565
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NoGotА обычно загрузка какая? Что за отчеты? Может там какой-нить запрос кривой, который можно оптимизировать?
обычная загрузка 8-20%. Запрос 100% кривой. Но программу пишу не я, а фирма Програмбанк, потому врядли мне получится что то изменить...
...
Рейтинг: 0 / 0
Быстродействие.
    #34873615
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы используем "Аналитическую систему"... Суть которой собирать информацию каждый день по интересующим показателям. А в отчетный период запросы идут только по БД показателей, что значительно ускоряет создание отчетов и снижает нагрузку на комп...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Быстродействие.
    #34873666
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МаксимАКБ
У нас отчеты делаются от 40 минут до 2 часов. Если понизим приоритет, то думаю что это время увеличится еще. Может есть еще какое-нибудь решение. Даже не знаю что делать. Сейчас, возможно, будем покупать сервер HP который стоит 500 000р. И если после этого ситуация не изменится, то надо будет как то объяснять президенту в чем дело :) Как думаете, в зеркалировании единственный выход?
Каков размер кэша? Если дело не в нем, можно ли локализовать проблему?
...
Рейтинг: 0 / 0
Быстродействие.
    #34873755
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНекоторые выходят из данной ситуации следующим образом. Ставят еще один комп с Cache` и на первом врубают зеркалирование на второй сервер

По моему, это наоборот медленее будет работать, ведь ресурсы потянет сам процесс
зеркалирования
В М системах есть такое понятие, как распределенная обработка данных, т.е. можно пустить
процес на отдельной Cache' машине, которая в свою очередь по сетке связана с Cache' сервером.
Но это опять связано с тем, как написан Ваш софт ...
В общем разные подходы существуют, нужно проекспериментировать
Увеличивать нпример раздел под пользователя
...
Рейтинг: 0 / 0
Быстродействие.
    #34873793
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МаксимАКБ NoGotА обычно загрузка какая? Что за отчеты? Может там какой-нить запрос кривой, который можно оптимизировать?
обычная загрузка 8-20%. Запрос 100% кривой. Но программу пишу не я, а фирма Програмбанк, потому врядли мне получится что то изменить...

Ну тогда я могу посоветовать не подстраиваться под заведомо кривые запросы (а тем более не покупать сервер за пол-ляма), а обратиться к разработчикам с просьбой (а можно даже и с требованием) исправить проблему.
...
Рейтинг: 0 / 0
Быстродействие.
    #34874173
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei Obrastsov МаксимАКБ
У нас отчеты делаются от 40 минут до 2 часов. Если понизим приоритет, то думаю что это время увеличится еще. Может есть еще какое-нибудь решение. Даже не знаю что делать. Сейчас, возможно, будем покупать сервер HP который стоит 500 000р. И если после этого ситуация не изменится, то надо будет как то объяснять президенту в чем дело :) Как думаете, в зеркалировании единственный выход?
Каков размер кэша? Если дело не в нем, можно ли локализовать проблему?
размер кэша 1 гиг, сама база где то 30 гигов...
...
Рейтинг: 0 / 0
Быстродействие.
    #34874182
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valeriu авторНекоторые выходят из данной ситуации следующим образом. Ставят еще один комп с Cache` и на первом врубают зеркалирование на второй сервер

По моему, это наоборот медленее будет работать, ведь ресурсы потянет сам процесс
зеркалирования
В М системах есть такое понятие, как распределенная обработка данных, т.е. можно пустить
процес на отдельной Cache' машине, которая в свою очередь по сетке связана с Cache' сервером.
Но это опять связано с тем, как написан Ваш софт ...
В общем разные подходы существуют, нужно проекспериментировать
Увеличивать нпример раздел под пользователя
Вроде в какомто банке уже так сделано. Все работают на первом сервере а отчетники на зеркале. Вроде как спасает. Но некрасиво как то сделано. Расскажите,если не трудно, про распределенную обработку, или скажите где можно почитать. И что за раздел можно увеличить?
...
Рейтинг: 0 / 0
Быстродействие.
    #34874574
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Включаеш ECP - поднимаеш еще один сервер (тот что якобы зеркало)...

Вместо зеркалирования СУБД - выбираешь что вот этот DATEBASE у тебя есть база удаленная расположена там то там то - собираеш из неё NAMESPACE и пускаеш туда пользователей.

База одна - пользователи разнесены по серверам - у каждого сервера свой кэш данных.
Сетку только получше между серваками делайте.

Возможность использовасть ECP возможно, не помню точно, зависит от лицензии.

Вообще нужно пинать разарабов - кривому запросу никакой "мегасервер" не помеха
...
Рейтинг: 0 / 0
Быстродействие.
    #34874610
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuПо моему, это наоборот медленее будет работать, ведь ресурсы потянет сам процесс
зеркалирования...Это не так, зеркалирование работает очень экономично. В фоне передаются блоки журнала (64К-байтные) по мере готовности. Каждый блок передается, замечу, всегда один раз, в отличие от ECP, где при нехватке места в кэше сервера приложений начинаются повторые передачи блоков.
Но все-таки 100% CPU, скорее всего, результат какой-то упрятанной вглубь ошибки. Плохо написанный запрос, более вероятно, что упрется в Disk I/O. Стоит поискать "виновника" с помощью PERFMON, %MONLBL.
...
Рейтинг: 0 / 0
Быстродействие.
    #34875064
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы сталкивались как-то со 100% загрузкой если в цикле был опрос ввода с клавиатуры с временем ожидания ноль...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Быстродействие.
    #34875079
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PtnВключаеш ECP - поднимаеш еще один сервер (тот что якобы зеркало)...

Вместо зеркалирования СУБД - выбираешь что вот этот DATEBASE у тебя есть база удаленная расположена там то там то - собираеш из неё NAMESPACE и пускаеш туда пользователей.

База одна - пользователи разнесены по серверам - у каждого сервера свой кэш данных.
Сетку только получше между серваками делайте.

Возможность использовасть ECP возможно, не помню точно, зависит от лицензии.

Вообще нужно пинать разарабов - кривому запросу никакой "мегасервер" не помеха
Думаю стоит попробовать...
...
Рейтинг: 0 / 0
Быстродействие.
    #34875089
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov ValeriuПо моему, это наоборот медленее будет работать, ведь ресурсы потянет сам процесс
зеркалирования...Это не так, зеркалирование работает очень экономично. В фоне передаются блоки журнала (64К-байтные) по мере готовности. Каждый блок передается, замечу, всегда один раз, в отличие от ECP, где при нехватке места в кэше сервера приложений начинаются повторые передачи блоков.
Но все-таки 100% CPU, скорее всего, результат какой-то упрятанной вглубь ошибки. Плохо написанный запрос, более вероятно, что упрется в Disk I/O. Стоит поискать "виновника" с помощью PERFMON, %MONLBL.

Сейчас попробовали переставить все на другой сервер. Процессоры уже не загружаются на 100%, но по прежнему также тормозит. так что скорее всего это

Плохо написанный запрос, более вероятно, что упрется в Disk I/O.
...
Рейтинг: 0 / 0
Быстродействие.
    #34875100
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо что ответили. Будем пробовать. Здесь отпишусь как и что получается. Если у кого то будут еще идеи, пишите...
...
Рейтинг: 0 / 0
Быстродействие.
    #34875217
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так как сейчас выяснилось, что загрузка системы происходит из за кривого запроса то ECP, на сколько я понимаю, не решит данную проблему. Остается только зеркалирование.
...
Рейтинг: 0 / 0
Быстродействие.
    #34875231
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaМы используем "Аналитическую систему"... Суть которой собирать информацию каждый день по интересующим показателям. А в отчетный период запросы идут только по БД показателей, что значительно ускоряет создание отчетов и снижает нагрузку на комп...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT

не подскажете что, за "Аналитическую систему" вы используете?
...
Рейтинг: 0 / 0
Быстродействие.
    #34875686
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МаксимАКБне подскажете что, за "Аналитическую систему" вы используете?
Это наша разработка... Суть ее в сборе данных (каждый день, ночью), которых хватит для составления нужной отчетности...
В отчетный период (и не только) отчеты делаются не из оперативной БД, а из аналитической БД...
...
Рейтинг: 0 / 0
Быстродействие.
    #34876840
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МаксимАКБтак как сейчас выяснилось, что загрузка системы происходит из за кривого запроса
Все-таки это выяснилось? А нельзя ли его просто переписать?
...
Рейтинг: 0 / 0
Быстродействие.
    #34876845
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov МаксимАКБтак как сейчас выяснилось, что загрузка системы происходит из за кривого запроса
Все-таки это выяснилось? А нельзя ли его просто переписать?
Да, поторопился, прошу прощения. Но все же стоит на него посмотреть поближе.
...
Рейтинг: 0 / 0
Быстродействие.
    #34880302
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei Obrastsov Sergei Obrastsov МаксимАКБтак как сейчас выяснилось, что загрузка системы происходит из за кривого запроса
Все-таки это выяснилось? А нельзя ли его просто переписать?
Да, поторопился, прошу прощения. Но все же стоит на него посмотреть поближе.
Попробую достать код.. Посмотрим что там...
...
Рейтинг: 0 / 0
Быстродействие.
    #34881496
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
OT17p ;
	q
	;$Id: OT17p. 1 .INT,v  1 . 21   2005 / 07 / 14   17 : 58 : 17  pin Exp $
StartKred(N) ; Запуск отчетов из модуля "Кредиты"
	n KBS,Dat,T,X
	q:+$g(N)= 0 
	s %TMP("FAAKRED")= 1 
	d SetPar(.Dat)
	d @N
	k %TMP("FAAKRED")
	q
	;--------------------- Селектор отчетов -------------------------
OT(Dat,NZ,KBS,T) k (%sys,%M,%TMP,Dat,NZ,KBS,T) k ^GRINT(%sys)
	n saveT,kvart s saveT=T  ;похоже, что ^%WMSA (или что-то другое) портит T
	s %F="0,ENT,F10,ESC"
	d SetPar(Dat)
Sel k %P s %G=$na(^SELECT("DOC","SmallScreen 5", 1 )),%X="s Z=^(S)"
	s %F( 4 )= 1 ,(%F("Q"),%P("P"))= 1 ,%P("G")=$na(^OTHA17( 0 )),%P("Q")=$na(^mtempORL17(%sys, 4 )),%P("PL")="± "
	d ZH^%WM(%G," Список отчетов 17-й инструкции "," <Ins>, <Пробел> Отметить <Enter> Вызов отчетов ")
	s %S=$c( 0 , 8 , 3 , 24 )_%S
	d ^%WMSA i %sys("FK")="ESC" s %W=+%F d C^%WM QUIT   ;***
	s ^mtempORL17(%sys, 1 , 1 )=Dat,^( 2 )=NZ,^( 3 )=$p(KBS,","),^( 4 )=T
	s T=$g(^mtempORL17(%sys, 1 , 4 ))
	i $d(^mtempORL17(%sys, 4 ))< 10  s (%F( 2 . 2 ),N)=%P g:$t(@N)="" Sel M ^GRINT(%sys)=^mtempORL17(%sys, 1 ) d @N g Sel
	s N="" f  s N=$o(^mtempORL17(%sys, 4 ,N)) q:N=""  i $t(@N)'="" M ^GRINT(%sys)=^mtempORL17(%sys,1) d @N
	k ^mtempORL17(%sys,4) s %F(1)=2 g Sel
1 d V1^OT17v d  q
	.i +$g(%TMP("FAAOT17"))'= 0  d RunRep^GRRun("OT17p1_TKB") q
	.d RunRep^GRRun("OT17p1") q
 2  d V2^OT17v d  q
	.i +$g(%TMP("FAAOT17"))'=0 d RunRep^GRRun("OT17p2_TKB") q
	.d RunRep^GRRun("OT17p2") q
3 d Start^Z2017V04($g(Dat),$g(KBS),$g(T)) q
4 d VYB^OTH17i4o d  q
	.i +$g(%TMP("FAAOT17"))'= 0  d Pril4^Z2017F01() q
	.d RunRep^GRRun("I17P4") q
 5  n %F,N,Dat,NZ,KBS,T d V5^OT17v d  q
	.i +$g(%TMP("FAAOT17"))'=0 d RunRep^GRRun("OT17p5_TKB") q
	.d RunRep^GRRun("OT17p5") q
6 n %F,N,Dat,NZ,KBS,T d V6^OT17v d  q
	.i +$g(%TMP("FAAOT17"))'= 0  d RunRep^GRRun("OT17p6_TKB") q
	.d RunRep^GRRun("OT17p6") q
 7  i $g(Dat)="" s Dat=$$GetDat^Z2017V01() q:Dat=""      ; дата отчета (ЗА)
	i $g(KBS)="" s KBS=$$GetKBS^Z2017V01(Dat) q:KBS=""   ; список банков
	i $g(T)="" s T=$$GetPrec^Z2017V01(Dat) q:T=""        ; точность отчета
	n TypOt i $g(TypOt)="" s TypOt=$$GetTypOt^Z2017V01()  ; тип отчетности
	d V7^OT17v(Dat,KBS,T,TypOt) d  q
	.i +$g(%TMP("FAAOT17"))'=0 d Pril7^Z2017F01() q
	.d SetPar^GR("I17P7",Dat,T,KBS,%M("KBN"),TypOt),RunRep^GRRun("I17P7")
	.i $g(%TMP("FAAPROT"))=1,$$Q^%pbwin03("Показать протокол?","Да~Нет",1)=1 d
	..d SetPar^GR("I17Prot115",Dat),RunRep^GRRun("I17Prot115")
	.i $g(%TMP("FAAFILE")),$$Q^%pbwin03("Производить сброс Приложения 7 в файл ?","Да~Нет",1)=1 d
	..i $g(%TMP("FAAFILE"))=2 d WritePTKPSD7^Z2017N02(Dat+1,$na(^mtempORL17(%sys))) q
10 d Start10^Z2017V03($g(Dat),$g(KBS),$g(T)) q
13 d Start13^Z2017V02($g(Dat),$g(KBS),$g(T)) q
15 d DenSred^Z2000P17($g(T)) q
16 d SvedRK^Z2000P17 q
17 d AktPass^Z2000P17($g(Dat),$g(KBS),$g(T)) q
18 d  q
	.i +$g(%TMP("FAAOT17"))'= 0  d Pril18^Z2017F01(KBS,Dat,T) q
	.d SetPar^GR("I17P18",Dat,T,KBS,%M("KBN")),RunRep^GRRun("I17P18") q
 20  d Start20^Z2017V01($g(Dat),$g(KBS),$g(T)) q
 21  i $g(Dat)="" s Dat=$$GetDat^Z2017V01() q:Dat=""   ; дата отчета (ЗА) KRA
	i $g(KBS)="" s KBS=$$GetKBS^Z2017V01(Dat) q:KBS=""  ; список банков    KRA
	i $g(T)="" s T=$$GetPrec^Z2017V01(Dat) q:T=""       ; точность отчета  KRA
	d V21^OT17v(Dat,KBS,T) d  q
	.i +$g(%TMP("FAAOT17"))'=0 d Pril21^Z2017F01(KBS,Dat,T) q       
	.d SetPar^GR("I17P21",Dat,T,KBS,%M("KBN")),RunRep^GRRun("I17P21")
	.i $g(%TMP("FAAPROT")) d
	..i $g(%TMP("FAAPROT"))=1,$$Q^%pbwin03("Показать протоколы?","Да~Нет",1)'= 1  q
	..d SetPar^GR("I17Prot21",Dat),RunRep^GRRun("I17Prot21")
	..d SetPar^GR("I17Prot21-1",Dat),RunRep^GRRun("I17Prot21-1")
	.i $g(%TMP("FAAFILE")) d
	..i $$Q^%pbwin03("Производить сброс Приложения 21 в файл ?","Да~Нет", 1 )'=1 q
	..i $g(%TMP("FAAFILE"))=1 d Write21ToKliko^Z2017N01($na(^mtempORL17(%sys,0)),Dat) q
	..i $g(%TMP("FAAFILE"))=2 d WritePTKPSD21^Z2017N02(Dat+1,$na(^mtempORL17(%sys,0))) q
22 d V22^OT17v(Dat,KBS,T) d  q
	.i +$g(%TMP("FAAOT17"))'= 0  d Pril22^Z2017F01() q
	.d SetPar^GR("I17P22",Dat,T,KBS,%M("KBN")),RunRep^GRRun("I17P22") q
 23  d V23^OT17v(Dat,KBS,T) d  Q
	.i +$g(%TMP("FAAOT17"))'=0 d Pril23^Z2017F01() q
	.d SetPar^GR("I17P23",Dat,T,KBS,%M("KBN")),RunRep^GRRun("I17P23") q
24 d V24^OT17v(Dat,KBS,T) d  Q
	.s kvart=$$GetNumKvart^OT17p(Dat)
	.i +$g(%TMP("FAAOT17"))'= 0  d Pril24^Z2017F01() q
	.d SetPar^GR("I17P24",Dat,T,KBS,%M("KBN"),kvart),RunRep^GRRun("I17P24") q
GetNumKvart(DAT) 
	n ss,mm
	s ss=$$hA^%pbwin04($g(DAT))
	s mm=+$e(ss, 5 , 6 ),mm=$s(mm< 4 :"1",mm< 7 :"2",mm< 10 :"3", 1 : 4 )_" квартал "_$e(ss, 1 , 4 )_" г."
	Q mm
GetBegKvart(DAT) 
	n ss,mm
	s ss=$$hA^%pbwin04($g(DAT))
	s mm=+$e(ss, 5 , 6 ),mm=$s(mm< 4 :"01",mm< 7 :"04",mm< 10 :"07", 1 : 10 )
	s ss=$$hB^%pbwin04($e(ss, 1 , 4 )_mm_"01")
	Q ss
SetPar(Dat)
	n dt,fld,oth
	i $g(Dat)="" s Dat=$$GetDat^Z2017V01() q:Dat="" 
	s dt=$o(^OTH17("PAR",Dat+ 0 . 01 ),- 1 )
	i dt="" d  q
	.i $$Q^%pbwin03("Не заданы параметры формирования отчетов!")
	s oth=$na(^OTH17("PAR",dt))
	s fld="" f  s fld=$o(@oth@(fld)) q:fld=""  d
	.s %TMP(fld)=$g(@oth@(fld))
	q
retpath() q $na(^FFFAAA( 115 ))

вот что я нашел. вызывается отчет вот так

s %TMP("FAAKRED")=1 s %TMP("STAVKI")=1 d StartKred^OT17p(20)

StartKred^OT17p

я выложил выше
...
Рейтинг: 0 / 0
Быстродействие.
    #34881789
Hima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно Start20^Z2017V01 еще?))
...
Рейтинг: 0 / 0
Быстродействие.
    #34881945
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
Start20(Dat,KBS,T) 
	n KrEnable,Vib,Cnt,Dogs,Par,bDlngEn,naTikets,CrdEnable,CDogs
	i $g(Dat)="" s Dat=$$GetDat() q:Dat=""          ; дата отчета (ЗА)
	i $g(KBS)="" s KBS=$$GetKBS(Dat) q:KBS=""      ; список банков
	; --- счета 2-го порядка из :OTHPB(128)
	s VerB2=$NA(@$$TMP^%pb0()@("Z2017V01","VerB2"))
	K @VerB2
	S DAT=$O(^OTHPB( 128 ,Dat+. 1 ),- 1 ) I DAT="" D  ;;;;;Q
	.;;;;;I $$Q^%pbwin03("Нет настроек Б.С. для формы №128 по 1579-У (в ^OTHPB(128)")
	I DAT'="" S (R,COL)="" F  S R=$O(^OTHPB(128,DAT,R)) Q:R=""  D
	.F  S COL=$O(^OTHPB(128,DAT,R,COL)) Q:COL=""  S DN=^(COL) D
	..S X="F I="_$P(DN,%sys("del"),2)_" S @VerB2@(R,COL,I)="""""
	..X X
	; ---------------------------------------------------------------
	d Lst2Arr^OPaLibF2(.KBS,",") k ^FFFAAA(128)
	i $g(T)="" s T=$$GetPrec(Dat) q:T=""            ; точность отчета
	s Par("Dat")=Dat
	s KrEnable=$$KredPres()                         ; наличие модуля кредитов
	s CrdEnable=$$CardPres()
	s Vib=$NA(^mtempORL17(%sys,0)) k @Vib           ; выборка для отчета
	s bDlngEn=(+$$RgKeyGet^Z0004VER("Версии продуктов","Валютный дилинг (2)")>0) ; установлен дилинг
	s Dogs=$NA(@$$TMP^%pb0()@("Z2017V01","SelDogs")) ; отобранные договора
	s CDogs=$NA(@$$TMP^%pb0()@("Z2017V01","SelCDogs")) ;отобранные карточные договора
	s naTikets=$NA(@$$TMP^%pb0()@("Z2017V01","SelTikets")) ; отобранные сделки дилинга
	k @Dogs,@CDogs,@naTikets s Cnt=0
	;
	n rur,usd,euro,kurs,kurseu,in,Prot,sysnd,c,Prot1
	s c=%sys("del") s Prot=$na(@$$TMP^%pb0()@("Z2017V01","PROTOCOL")),Prot1=$na(@$$TMP^%pb0()@("Z2017V01","PROTOCOL-OUT")) k @Prot,@Prot1
	s rur=$$ISO2KV^libOPLv(810,Dat,%M("KBN"))
	s usd=$$ISO2KV^libOPLv(840,Dat,%M("KBN"))
	s euro=$$ISO2KV^libOPLv(978,Dat,%M("KBN"))
	n sysnd
	s sysnd=$$GetKurs^libOPLv(usd,Dat,0,2)
	s in("Kur")=""
	s kurs=$$ReadMn^libDoc(.in,sysnd,.in)
	s kurs=$g(in("Kur"))
	s kurs=$s(+$p(kurs,":")'= 0 :$p(kurs,":", 2 )/$p(kurs,":"), 1 : 0 )
	s sysnd=$$GetKurs^libOPLv(euro,Dat, 0 , 2 )
	s in("Kur")=""
	s kurseu=$$ReadMn^libDoc(.in,sysnd,.in)
	s kurseu=$g(in("Kur"))
	s kurseu=$s(+$p(kurseu,":")'=0:$p(kurseu,":",2)/$p(kurseu,":"),1:0)
	s (@Prot@("KV",usd),@Prot1@("KV",usd))=$$KV2ISO^libOPLv(usd,2)_c_$j(kurs,0,4)
	s (@Prot@("KV",euro),@Prot1@("KV",euro))=$$KV2ISO^libOPLv(euro,2)_c_$j(kurseu,0,4)
	;
	i KrEnable d
	.s Cnt=$$GetDogs^Z2017V01(.KBS,Dogs,"Pril20","KODDOPOLN,ISPOLNEN·TECHDATA",,Dat,$s($g(%TMP("FAAKRED"))'="": 0 , 1 : 1 )) q:Cnt=- 1      ; отбор договоров (селектор)
	.s Par("KursVal")=$g(@Dogs@("SEL","KursVal"),"DatOtc")  ; DatSob/DatOtc/Nominal
	.s Par("ValOtc")=$g(@Dogs@("SEL","ValOtc"),%M("KVNe"))  ; валюта отчета
	.i Par("ValOtc")=%M("KVNe") q
	.i $$Q^%pbwin03("Отчет не в н.э. Показатели будут |проигнорированы|.","Продолжить~Отказаться", 1 ,"|")= 2  s Cnt=- 1 
	i bDlngEn d  ; отбор сделок из дилинга
	. D GetTikets^ZDLNGDPT(KBS,naTikets, 1 ,$$bom^Zdate(Dat),Dat,$s($g(%TMP("FAAKRED"))'="":0,1:1))
	i 'KrEnable s Par("KursVal")="DatOtc" s Par("ValOtc")=%M("KVNe")
	i CrdEnable d
	.d GetCardDogs(.KBS,CDogs,Dat)
	i Cnt=- 1  k @Dogs,@Vib q
	d mes^%pbwin05("Просмотр показателей...")
	d V20^OT17v(Dat,KBS,$s(KrEnable!bDlngEn!CrdEnable:"0,2", 1 :T))     ; заполним отчет показателями
	i KrEnable!bDlngEn,Par("ValOtc")'=%M("KVNe") d PreCalc20(Vib,.Par)
	i KrEnable d Start20^Z2KRDF10(KBS,Dat,T,Prot,Prot1)
	i bDlngEn d dlCalc20(naTikets,Vib,Par("ValOtc"),Dat)         ; дополним данными из дилинга
	i CrdEnable d CardCalc20(KBS,CDogs,Vib,Dat)
	i KrEnable!bDlngEn!CrdEnable d Prec20(Vib,T)                                    ; "причешем" и приведем к нужной точности
	n Rzd s Rzd="" f  s Rzd=$o(@Vib@(Rzd)) q:Rzd=""  s $p(@Vib@(Rzd),%sys("del"),4)=$p("российских рублях,долларах США,евро",",",Rzd)
	d mes^%pbwin05("",1)
	i '$d(%M("Prec")) s %M("Prec")=T
	d
	. i +$g(%TMP("FAAOT17"))'=0 d Pril20^Z2017F01() q
	. d SetPar^GR("I17P20",Dat,T,KBS,%M("KBN")),RunRep^GRRun("I17P20")
	. i $g(%TMP("FAAPROT")) d
	.. i $g(%TMP("FAAPROT"))=1,$$Q^%pbwin03("Показать протоколы?","Да~Нет",1)'= 1  q
	.. d SetPar^GR("I17Prot20",Dat),RunRep^GRRun("I17Prot20")
	.. d SetPar^GR("I17Prot20-1",Dat),RunRep^GRRun("I17Prot20-1")
	. i $g(%TMP("FAAFILE")) d  q
	.. i $$Q^%pbwin03("Производить сброс Приложения 20 в файл ?","Да~Нет", 1 )'= 1  q
	.. i $g(%TMP("FAAFILE"))= 1  d Write20ToKliko^Z2017N01(Vib,Dat) q
	.. i $g(%TMP("FAAFILE"))= 2  d WritePTKPSD20^Z2017N02(Dat+ 1 ,Vib) q
	k @Vib,@Dogs,@naTikets                              ; убрали мусор
	q
...
Рейтинг: 0 / 0
Быстродействие.
    #34882428
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз код доступен - имеет смысл нтравить на него ^%MONLBL
...
Рейтинг: 0 / 0
Быстродействие.
    #34883637
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
	n saveT,kvart s saveT=T  ;похоже, что ^%WMSA (или что-то другое) портит T
...
	d ^%WMSA i %sys("FK")="ESC" s %W=+%F d C^%WM QUIT   ;***
	s ^mtempORL17(%sys, 1 , 1 )=Dat,^( 2 )=NZ,^( 3 )=$p(KBS,","),^( 4 )=T

Ну раз они сами пишут "портит T", то нафига ж делать " ^(4)=T "?
Следует поправить на " ^(4)=saveT ", раз уж потом все-равно идет:

Код: plaintext
1.
	s T=$g(^mtempORL17(%sys, 1 , 4 ))


Далее, очень хотелось бы уточнить по Z2017V01, какого рода ссылку представляет
из себя результат

Код: plaintext
1.
s VerB2=$NA(@$$TMP^%pb0()@("Z2017V01","VerB2"))

Это важно.
...
Рейтинг: 0 / 0
Быстродействие.
    #34883779
МаксимАКБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei Obrastsov
Код: plaintext
1.
2.
3.
4.
	n saveT,kvart s saveT=T  ;похоже, что ^%WMSA (или что-то другое) портит T
...
	d ^%WMSA i %sys("FK")="ESC" s %W=+%F d C^%WM QUIT   ;***
	s ^mtempORL17(%sys, 1 , 1 )=Dat,^( 2 )=NZ,^( 3 )=$p(KBS,","),^( 4 )=T

Ну раз они сами пишут "портит T", то нафига ж делать " ^(4)=T "?
Следует поправить на " ^(4)=saveT ", раз уж потом все-равно идет:

Код: plaintext
1.
	s T=$g(^mtempORL17(%sys, 1 , 4 ))


Далее, очень хотелось бы уточнить по Z2017V01, какого рода ссылку представляет
из себя результат

Код: plaintext
1.
s VerB2=$NA(@$$TMP^%pb0()@("Z2017V01","VerB2"))

Это важно.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Z2017V01

VerB2(kns,Rzd,Col) ;
	N b2
	; ---- Нет Настроек
	I $D(@VerB2)< 10  Q  1 
	S kns=$G(kns),Rzd=$G(Rzd),Col=$G(Col)
	i kns="" Q  0 
	S b2=$$GetFondS^libOPL2(kns,Dat,"B2",,kbn)
	I $D(@VerB2@(+Rzd,+Col,+b2)) Q  1 
	Q  0 
авторНу раз код доступен - имеет смысл нтравить на него ^%MONLBL
попробую
...
Рейтинг: 0 / 0
Быстродействие.
    #34886512
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МаксимАКБ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
VerB2(kns,Rzd,Col) ;
	N b2
	; ---- Нет Настроек
	I $D(@VerB2)< 10  Q  1 
	S kns=$G(kns),Rzd=$G(Rzd),Col=$G(Col)
	i kns="" Q  0 
	S b2=$$GetFondS^libOPL2(kns,Dat,"B2",,kbn)
	I $D(@VerB2@(+Rzd,+Col,+b2)) Q  1 
	Q  0 

Нет, это не то. Меня интересует именно сама ссылка. Что это, локаль или глобаль?
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Быстродействие.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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