āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻā§ 1C āĻĒā§āĻ°ā§āĻĄāĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¸ā§āĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻŽāĻ°āĻž āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŦāĻŋāĻˇā§āĻā§āĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ - āĻāĻāĻāĻŋ 1C āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻā§āĻ˛ā§āĻ° āĻ
āĻāĻžāĻŦāĨ¤ āĻāĻŦāĻ āĻ°ā§āĻ āĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ GUI āĻ˛āĻŋāĻā§ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻ āĻŋāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻāĻžāĻˇāĻžāĻāĻŋ āĻāĻŋāĻ˛ tcl/tk, āĻāĻŽāĻžāĻ° āĻŽāĻ¤ā§, āĻāĻ āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĨ¤ āĻāĻŦāĻ āĻāĻāĻ¨, āĻāĻŽāĻŋ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋāĻ¤ā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻŋāĻā§ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻĻāĻŋāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĨ¤
āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§ tcl/tk āĻāĻŦāĻ 1C āĻŦāĻŋāĻ¤āĻ°āĻŖāĨ¤ āĻāĻŦāĻ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻŋ āĻĨāĻžāĻ°ā§āĻĄ-āĻĒāĻžāĻ°ā§āĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°ā§āĻ tcl/tk-āĻāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĄā§āĻ˛āĻŋāĻāĻžāĻ°āĻŋāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĻ° āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻ¤āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ 8.6.7 āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§ ttk - āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ ttk āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ :: TreeView, āĻāĻāĻŋ āĻāĻžāĻā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ (āĻ¤āĻžāĻ˛āĻŋāĻāĻž) āĻāĻāĻžāĻ°ā§ āĻāĻāĻāĻĒā§āĻ āĻĄā§āĻāĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻ¸āĻš āĻāĻžāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻā§āĻ°āĻžāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ, āĻ¯āĻž āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ)āĨ¤
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤ (āĻ¯āĻĻāĻŋāĻ āĻāĻŋāĻā§āĻ āĻ¸āĻŦāĻāĻŋāĻā§āĻā§ āĻāĻ āĻšāĻ¤ā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻ¯āĻŧ āĻ¨āĻž):
rac_gui.cfg - āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
rac_gui.tcl - āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ
lib āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ˛ā§āĻĄ āĻšāĻāĻ¯āĻŧāĻž āĻĢāĻžāĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§:
function.tcl - āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻš āĻĢāĻžāĻāĻ˛
gui.tcl - āĻĒā§āĻ°āĻ§āĻžāĻ¨ GUI
images.tcl - base64 āĻāĻŽā§āĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ
rac_gui.tcl āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻ¸āĻ˛ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻāĻžāĻ˛ā§ āĻāĻ°ā§, āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻļā§āĻ°ā§ āĻāĻ°ā§, āĻŽāĻĄāĻŋāĻāĻ˛ āĻ˛ā§āĻĄ āĻāĻ°ā§, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ°āĻ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§āĨ¤ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ¸āĻš āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§:
rac_gui.tcl
#!/bin/sh
exec wish "$0" -- "$@"
# ĐŖŅŅĐ°ĐŊавĐģиваĐĩĐŧ ŅĐĩĐēŅŅиК ĐēĐ°ŅĐ°ĐģĐžĐŗ
set dir(root) [pwd]
# ĐŖŅŅĐ°ĐŊавĐģиваĐĩĐŧ ŅайОŅиК ĐēĐ°ŅĐ°ĐģĐžĐŗ, ĐĩŅĐģи ĐĩĐŗĐž ĐŊĐĩŅ ŅĐž ŅОСдаŅĐŧ
set dir(work) [file join $env(HOME) .rac_gui]
if {[file exists $dir(work)] == 0 } {
file mkdir $dir(work)
}
# ĐēĐ°ŅĐ°ĐģĐžĐŗ Ņ ĐŧОдŅĐģŅĐŧи
set dir(lib) "[file join $dir(root) lib]"
# СаĐŗŅŅĐļĐ°ĐĩĐŧ ĐŋĐžĐģŅСОваŅĐĩĐģŅŅĐēиК ĐēĐžĐŊŅиĐŗ, ĐĩŅĐģи ĐžĐŊ ĐžŅŅŅŅŅŅвŅĐĩŅ, ŅĐž ĐēĐžĐŋиŅŅĐĩĐŧ Đ´ĐĩŅĐžĐģŅĐŊŅĐš
if {[file exists [file join $dir(work) rac_gui.cfg]] ==0} {
file copy [file join [pwd] rac_gui.cfg] [file join $dir(work) rac_gui.cfg]
}
source [file join $dir(work) rac_gui.cfg]
# ĐОд ĐŋŅОвĐĩŅĐēи ĐŊĐ°ĐģиŅиŅ rac и ĐŋŅавиĐģŅĐŊĐžŅŅи ŅĐēаСаĐŊиŅ ĐŋŅŅи в ĐēĐžĐŊŅиĐŗĐĩ
# ĐĩŅĐģи ĐŋŅĐžĐŗŅĐ°ĐŧĐŧĐ° ĐŊĐĩ ĐŊаКдĐĩĐŊĐ° ŅĐž ĐąŅĐ´ĐĩŅ вŅвĐĩĐ´ĐĩĐŊ диаĐģĐžĐŗ Đ´ĐģŅ ŅĐēаСаĐŊиŅ ĐēĐžŅŅĐĩĐēŅĐŊĐžĐŗĐž ĐŋŅŅи
# и ŅŅĐžŅ ĐŋŅŅŅ ĐąŅĐ´ĐĩŅ СаĐŋиŅĐ°ĐŊ в ĐŋĐžĐģŅСОваŅĐĩĐģŅŅĐēиК ĐēĐžĐŊŅиĐŗ
if {[file exists $rac_cmd] == 0} {
set rac_cmd [tk_getOpenFile -initialdir $env(HOME) -parent . -title "ĐŖĐēĐ°ĐļиŅĐĩ ĐŋŅŅŅ Đ´Đž rac" -initialfile rac]
file copy [file join $dir(work) rac_gui.cfg] [file join $dir(work) rac_gui.cfg.bak]
set orig_file [open [file join $dir(work) rac_gui.cfg.bak] "r"]
set file [open [file join $dir(work) rac_gui.cfg] "w"]
while {[gets $orig_file line] >=0 } {
if {[string match "set rac_cmd*" $line]} {
puts $file "set rac_cmd $rac_cmd"
} else {
puts $file $line
}
}
close $file
close $orig_file
#return "$host:$port"
file delete [file join $dir(work) 1c_srv.cfg.bak]
} else {
puts "Found $rac_cmd"
}
set cluster_user ""
set cluster_pwd ""
set agent_user ""
set agent_pwd ""
## LOAD FILE ##
# ĐĐ°ĐŗŅŅĐļĐ°ĐĩĐŧ ĐŧОдŅĐģи ĐēŅĐžĐŧĐĩ gui.tcl ŅĐ°Đē ĐēĐ°Đē ĐĩĐŗĐž ĐŊĐ°Đ´Đž СаĐŗŅŅСиŅŅ ĐŋĐžŅĐģĐĩĐ´ĐŊиĐŧ
foreach modFile [lsort [glob -nocomplain [file join $dir(lib) *.tcl]]] {
if {[file tail $modFile] ne "gui.tcl"} {
source $modFile
puts "Loaded module $modFile"
}
}
source [file join $dir(lib) gui.tcl]
source [file join $dir(work) rac_gui.cfg]
# ЧиŅĐ°ĐĩĐŧ ŅĐ°ĐšĐģ ŅĐž ŅĐŋиŅĐēĐžĐŧ ŅĐĩŅвĐĩŅОв 1ĐĄ
# и дОйавĐģŅĐĩĐŧ в Đ´ĐĩŅĐĩвО
if [file exists [file join $dir(work) 1c_srv.cfg]] {
set f [open [file join $dir(work) 1c_srv.cfg] "RDONLY"]
while {[gets $f line] >=0} {
.frm_tree.tree insert {} end -id "server::$line" -text "$line" -values "$line"
}
}
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻāĻŦāĻ rac āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻāĻāĻ¨ā§āĻĄā§ āĻāĻžāĻ˛ā§ āĻšāĻŦā§āĨ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤:
āĻā§āĻ˛āĻŦāĻžāĻ°, āĻāĻžāĻ āĻāĻŦāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻāĻŽāĻŋ "āĻāĻžāĻ" āĻāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ 1C āĻĨā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻāĻāĻ¨ā§āĻĄā§āĻ-āĻ¸āĻ°āĻā§āĻāĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻāĻ°ā§āĻāĻŋāĨ¤
āĻāĻ āĻāĻāĻ¨ā§āĻĄā§āĻāĻŋ āĻāĻ āĻ¨āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻā§āĻĄāĻāĻŋ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§
lib/gui.tcl
# ŅŅŅĐ°ĐŊОвĐēĐ° ŅаСĐŧĐĩŅĐ° и ĐŋĐžĐģĐžĐļĐĩĐŊиŅ ĐžŅĐŊОвĐŊĐžĐŗĐž ĐžĐēĐŊĐ°
# ĐŧĐžĐļĐŊĐž ŅŅŅĐ°ĐŊОвиŅŅ в ĐŋĐĩŅĐĩĐŧĐĩĐŊĐŊŅŅ topLevelGeometry в ĐēĐžĐŊŅиĐŗ ĐŋŅĐžĐŗŅĐ°ĐŧĐŧŅ
if {[info exists topLevelGeometry]} {
wm geometry . $topLevelGeometry
} else {
wm geometry . 1024x768
}
# ĐĐ°ĐŗĐžĐģОвОĐē ĐžĐēĐŊĐ°
wm title . "1C Rac GUI"
wm iconname . "1C Rac Gui"
# иĐēĐžĐŊĐēĐ° ĐžĐēĐŊĐ° (ĐąĐĩŅĐĩŅŅŅ иС ŅĐ°ĐšĐģĐ° lib/imges.tcl)
wm iconphoto . tcl
wm protocol . WM_DELETE_WINDOW Quit
wm overrideredirect . 0
wm positionfrom . user
ttk::style theme use clam
# ĐĐ°ĐŊĐĩĐģŅ иĐŊŅŅŅĐŧĐĩĐŊŅОв
set frm_tool [frame .frm_tool]
pack $frm_tool -side left -fill y
ttk::panedwindow .panel -orient horizontal -style TPanedwindow
pack .panel -expand true -fill both
pack propagate .panel false
ttk::button $frm_tool.btn_add -command Add -image add_grey_32
ttk::button $frm_tool.btn_del -command Del -image del_grey_32
ttk::button $frm_tool.btn_edit -command Edit -image edit_grey_32
ttk::button $frm_tool.btn_quit -command Quit -image quit_grey_32
pack $frm_tool.btn_add $frm_tool.btn_del $frm_tool.btn_edit -side top -padx 5 -pady 5
pack $frm_tool.btn_quit -side bottom -padx 5 -pady 5
# ĐĐĩŅĐĩвО Ņ ĐŋĐžĐģĐžŅĐ°Đŧи ĐŋŅĐžĐēŅŅŅĐēи
set frm_tree [frame .frm_tree]
ttk::scrollbar $frm_tree.hsb1 -orient horizontal -command [list $frm_tree.tree xview]
ttk::scrollbar $frm_tree.vsb1 -orient vertical -command [list $frm_tree.tree yview]
set tree [ttk::treeview $frm_tree.tree -show tree
-xscrollcommand [list $frm_tree.hsb1 set] -yscrollcommand [list $frm_tree.vsb1 set]]
grid $tree -row 0 -column 0 -sticky nsew
grid $frm_tree.vsb1 -row 0 -column 1 -sticky nsew
grid $frm_tree.hsb1 -row 1 -column 0 -sticky nsew
grid columnconfigure $frm_tree 0 -weight 1
grid rowconfigure $frm_tree 0 -weight 1
# ĐŊаСĐŊĐ°ŅĐĩĐŊиĐĩ ОйŅайОŅŅиĐēĐ° ĐŊĐ°ĐļĐ°ŅиŅ ĐēĐŊĐžĐŋĐēОК ĐŧŅŅи
bind $frm_tree.tree <ButtonRelease> "TreePress $frm_tree.tree"
# ĐĄĐŋиŅĐžĐē Đ´ĐģŅ Đ´Đ°ĐŊĐŊŅŅ
(ŅĐ°ĐąĐģиŅĐ°)
set frm_work [frame .frm_work]
ttk::scrollbar $frm_work.hsb -orient horizontal -command [list $frm_work.tree_work xview]
ttk::scrollbar $frm_work.vsb -orient vertical -command [list $frm_work.tree_work yview]
set tree_work [
ttk::treeview $frm_work.tree_work
-show headings -columns "par val" -displaycolumns "par val"
-xscrollcommand [list $frm_work.hsb set]
-yscrollcommand [list $frm_work.vsb set]
]
# ĐŖŅŅĐ°ĐŊОвĐēĐ° ŅвĐĩŅОв Đ´ĐģŅ ŅĐĩŅĐĩдОваĐŊиŅ в ŅĐ°ĐąĐģиŅĐĩ
$tree_work tag configure dark -background $color(dark_table_bg)
$tree_work tag configure light -background $color(light_table_bg)
# РаСĐŧĐĩŅĐĩĐŊиĐĩ ŅĐģĐĩĐŧĐĩĐŊŅОв ĐŊĐ° ŅĐžŅĐŧĐĩ
grid $tree_work -row 0 -column 0 -sticky nsew
grid $frm_work.vsb -row 0 -column 1 -sticky nsew
grid $frm_work.hsb -row 1 -column 0 -sticky nsew
grid columnconfigure $frm_work 0 -weight 1
grid rowconfigure $frm_work 0 -weight 1
pack $frm_tree $frm_work -side left -expand true -fill both
#.panel add $frm_tool -weight 1
.panel add $frm_tree -weight 1
.panel add $frm_work -weight 1
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
1. āĻļā§āĻ°ā§āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (āĻ āĻ°ā§āĻĨāĻžā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° (āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§, "/opt/1C/v8.3/x86_64/ras āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° -āĻĄā§āĻŽāĻ¨" āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ))āĨ¤
āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, "+" āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¯ā§ āĻāĻāĻ¨ā§āĻĄā§āĻāĻŋ āĻā§āĻ˛ā§, āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻ āĻ˛āĻŋāĻā§āĻ¨:
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§ āĻā§āĻ°āĻŋāĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻŦā§, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻā§āĻ˛āĻŦā§ āĻŦāĻž āĻāĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§āĨ¤
2. āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨āĻžāĻŽā§āĻ° āĻāĻĒāĻ° āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻ˛ā§ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻā§āĻ˛āĻŦā§āĨ¤
3āĨ¤âĻ
āĻāĻžāĻ˛, āĻāĻŦāĻ āĻ¤āĻžāĻ, i.e. āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§, āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¯ā§ āĻā§āĻ¨ā§āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻ˛āĻŦāĻžāĻ°ā§ "+" āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĄāĻžāĻ¯āĻŧāĻžāĻ˛āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§:
āĻā§āĻ˛āĻŦāĻžāĻ°ā§āĻ° āĻŦā§āĻ¤āĻžāĻŽāĻā§āĻ˛āĻŋ āĻĒā§āĻ°ā§āĻā§āĻˇāĻžāĻĒāĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻžāĻ°ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ āĻāĻžāĻ āĻŦāĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻāĻ āĻŦāĻž āĻ¸ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻŦā§āĨ¤
āĻ ā§āĻ¯āĻžāĻĄ āĻŦā§āĻ¤āĻžāĻŽā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ (â+â):
āĻŦā§āĻ¤āĻžāĻŽ āĻāĻ āĻ¨ āĻā§āĻĄ:
ttk::button $frm_tool.btn_add -command Add -image add_grey_32
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ āĻ¯ā§ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒāĻ˛ā§ "āĻ ā§āĻ¯āĻžāĻĄ" āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻŦā§, āĻāĻ° āĻā§āĻĄāĻāĻŋ āĻšāĻ˛:
proc Add {} {
global active_cluster host
# ĐĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ идĐĩĐŊŅиŅиĐēĐ°ŅĐžŅ вŅĐ´ĐĩĐģĐĩĐŊĐŊĐžĐŗĐž ŅĐģĐĩĐŧĐĩĐŊŅĐ°
set id [.frm_tree.tree selection]
# ĐĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиĐĩ ŅŅĐžĐŗĐž ŅĐģĐĩĐŧĐĩĐŊŅĐ°
set values [.frm_tree.tree item [.frm_tree.tree selection] -values]
set key [lindex [split $id "::"] 0]
# в СавиŅиĐŧĐžŅŅи ĐžŅ ŅĐžĐŗĐž ŅŅĐž вŅĐ´ĐĩĐģиĐģи ĐąŅĐ´ĐĩŅ СаĐŋŅŅĐĩĐŊĐ° ĐŊŅĐļĐŊĐ°Ņ ĐŋŅĐžŅĐĩĐ´ŅŅĐ°
if {$key eq "" || $key eq "server"} {
set host [ Add::server ]
return
}
Add::$key .frm_tree.tree $host $values
}
āĻāĻāĻžāĻ¨ā§ āĻ¸ā§āĻĄāĻŧāĻ¸ā§āĻĄāĻŧāĻŋāĻ° āĻĒā§āĻ˛āĻžāĻ¸āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĻā§āĻ¯āĻŧ - āĻāĻĒāĻ¨āĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¨āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
Add::$key .frm_tree.tree $host $values
āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĸā§āĻā§ â+â āĻāĻžāĻĒāĻŋ, āĻ¤āĻžāĻšāĻ˛ā§ Add::server āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻžāĻ˛ā§ āĻšāĻŦā§, āĻ¯āĻĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ â Add::cluster, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ (āĻāĻŽāĻŋ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻāĻā§ āĻ˛āĻŋāĻāĻŦ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ "āĻā§āĻā§āĻ˛āĻŋ" āĻ¨ā§āĻā§ āĻĨā§āĻā§ āĻāĻ¸ā§), āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻĒā§āĻ°ā§āĻā§āĻˇāĻžāĻĒāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻžāĻ˛ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻāĻā§ā§ˇ
āĻāĻĒāĻ¨āĻŋ āĻ¯ā§āĻŽāĻ¨ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻā§āĻ¨, āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋ āĻļā§āĻ˛ā§āĻ¤ā§ āĻāĻāĻ āĻ°āĻāĻŽ - āĻāĻāĻŋ āĻāĻļā§āĻāĻ°ā§āĻ¯āĻāĻ¨āĻ āĻ¨āĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§, āĻĢāĻ°ā§āĻŽā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĢā§āĻ°ā§āĻŽ (āĻāĻāĻ¨ā§āĻĄā§, āĻŦā§āĻ¤āĻžāĻŽ, āĻāĻŋāĻ¤ā§āĻ°, āĻ˛ā§āĻŦā§āĻ˛), āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¨āĻžāĻŽ āĻāĻĒ āĻ˛ā§āĻā§āĻ˛ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
proc AddToplevel {lbl img {win_name .add}} {
set cmd "destroy $win_name"
if [winfo exists $win_name] {destroy $win_name}
toplevel $win_name
wm title $win_name $lbl
wm iconphoto $win_name tcl
# ĐŧĐĩŅĐēĐ° Ņ иĐēĐžĐŊĐēОК
ttk::label $win_name.lbl -image $img
# ŅŅĐĩĐšĐŧ Ņ ĐŋĐžĐģŅĐŧи ввОда
set frm [ttk::labelframe $win_name.frm -text $lbl -labelanchor nw]
grid columnconfigure $frm 0 -weight 1
grid rowconfigure $frm 0 -weight 1
# ŅŅĐĩĐšĐŧ и ĐēĐŊĐžĐŋĐēи
set frm_btn [frame $win_name.frm_btn -border 0]
ttk::button $frm_btn.btn_ok -image ok_grey_24 -command { }
ttk::button $frm_btn.btn_cancel -command $cmd -image quit_grey_24
grid $win_name.lbl -row 0 -column 0 -sticky nw -padx 5 -pady 10
grid $frm -row 0 -column 1 -sticky nw -padx 5 -pady 5
grid $frm_btn -row 1 -column 1 -sticky se -padx 5 -pady 5
pack $frm_btn.btn_cancel -side right
pack $frm_btn.btn_ok -side right -padx 10
return $frm
}
āĻāĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°: āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ, āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻŋāĻ° āĻ¨āĻžāĻŽ (lib/images.tcl) āĻāĻŦāĻ āĻāĻā§āĻāĻŋāĻ āĻāĻāĻ¨ā§āĻĄā§ āĻ¨āĻžāĻŽā§āĻ° āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° (āĻĄāĻŋāĻĢāĻ˛ā§āĻ .add)āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŋ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ āĻāĻ˛ āĻšāĻŦā§:
AddToplevel "ĐОйавĐģĐĩĐŊиĐĩ ĐžŅĐŊОвĐŊĐžĐŗĐž ŅĐĩŅвĐĩŅĐ°" server_grey_64
āĻŦāĻž
AddToplevel "ĐОйавĐģĐĩĐŊиĐĩ ĐēĐģĐ°ŅŅĐĩŅĐ°" cluster_grey_64
āĻ āĻŋāĻ āĻāĻā§, āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§, āĻāĻŽāĻŋ āĻāĻŽāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻžāĻŦ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻĄ āĻĄāĻžāĻ¯āĻŧāĻžāĻ˛āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¯ā§āĻ
proc Add::server {} {
global default
# вŅвОдиĐŧ ĐžŅĐŊОвĐŊŅŅ ŅĐžŅĐŧŅ
set frm [AddToplevel "ĐОйавĐģĐĩĐŊиĐĩ ĐžŅĐŊОвĐŊĐžĐŗĐž ŅĐĩŅвĐĩŅĐ°" server_grey_64]
# дОйавĐģŅĐĩĐŧ ĐĩŅĐēи и ĐŋĐžĐģŅ ввОда ĐŊĐ° ŅŅŅ ŅĐžŅĐŧŅ
label $frm.lbl_host -text "ĐĐ´ŅĐĩŅ ŅĐĩŅвĐĩŅĐ°"
entry $frm.ent_host
label $frm.lbl_port -text "ĐĐžŅŅ"
entry $frm.ent_port
$frm.ent_port insert end $default(port)
grid $frm.lbl_host -row 0 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_host -row 0 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_port -row 1 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_port -row 1 -column 1 -sticky nsew -padx 5 -pady 5
grid columnconfigure $frm 0 -weight 1
grid rowconfigure $frm 0 -weight 1
#set frm_btn [frame .add.frm_btn -border 0]
# ĐŋĐĩŅĐĩĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ ОйŅайОŅŅиĐē ĐŊĐ°ĐļĐ°ŅиŅ ĐēĐŊĐžĐŋĐēи
.add.frm_btn.btn_ok configure -command {
set host [SaveMainServer [.add.frm.ent_host get] [.add.frm.ent_port get]]
.frm_tree.tree insert {} end -id "server::$host" -text "$host" -values "$host"
destroy .add
return $host
}
return $frm
}
āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:: āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°
proc Add::cluster {tree host values} {
global default lifetime_limit expiration_timeout session_fault_tolerance_level
global max_memory_size max_memory_time_limit errors_count_threshold security_level
global load_balancing_mode kill_problem_processes
agent_user agent_pwd cluster_user cluster_pwd auth_agent
if {$agent_user ne "" && $agent_pwd ne ""} {
set auth_agent "--agent-user=$agent_user --agent-pwd=$agent_pwd"
} else {
set auth_agent ""
}
# ŅŅŅĐ°ĐŊавĐģиваĐĩĐŧ ĐŗĐģОйаĐģŅĐŊŅĐĩ ĐŋĐĩŅĐĩĐŧĐĩĐŊĐŊŅĐĩ ()
set lifetime_limit $default(lifetime_limit)
set expiration_timeout $default(expiration_timeout)
set session_fault_tolerance_level $default(session_fault_tolerance_level)
set max_memory_size $default(max_memory_size)
set max_memory_time_limit $default(max_memory_time_limit)
set errors_count_threshold $default(errors_count_threshold)
set security_level [lindex $default(security_level) 0]
set load_balancing_mode [lindex $default(load_balancing_mode) 0]
set frm [AddToplevel "ĐОйавĐģĐĩĐŊиĐĩ ĐēĐģĐ°ŅŅĐĩŅĐ°" cluster_grey_64]
label $frm.lbl_host -text "ĐĐ´ŅĐĩŅ ĐžŅĐŊОвĐŊĐžĐŗĐž ŅĐĩŅвĐĩŅĐ°"
entry $frm.ent_host
label $frm.lbl_port -text "ĐĐžŅŅ"
entry $frm.ent_port
$frm.ent_port insert end $default(port)
label $frm.lbl_name -text "ĐаСваĐŊиĐĩ ĐēĐģĐ°ŅŅĐĩŅĐ°"
entry $frm.ent_name
label $frm.lbl_secure_connect -text "ĐĐ°ŅиŅŅĐŊĐŊĐžĐĩ ŅĐžĐĩдиĐŊĐĩĐŊиĐĩ"
ttk::combobox $frm.cb_security_level -textvariable security_level -values $default(security_level)
label $frm.lbl_expiration_timeout -text "ĐŅŅĐ°ĐŊавĐģиваŅŅ вŅĐēĐģŅŅĐĩĐŊĐŊŅĐĩ ĐŋŅĐžŅĐĩŅŅŅ ŅĐĩŅĐĩС:"
entry $frm.ent_expiration_timeout -textvariable expiration_timeout
label $frm.lbl_session_fault_tolerance_level -text "ĐŖŅОвĐĩĐŊŅ ĐžŅĐēаСОŅŅŅОКŅивОŅŅи"
entry $frm.ent_session_fault_tolerance_level -textvariable session_fault_tolerance_level
label $frm.lbl_load_balancing_mode -text "Đ ĐĩĐļиĐŧ ŅĐ°ŅĐŋŅĐĩĐ´ĐĩĐģĐĩĐŊиŅ ĐŊĐ°ĐŗŅŅСĐēи"
ttk::combobox $frm.cb_load_balancing_mode -textvariable load_balancing_mode
-values $default(load_balancing_mode)
label $frm.lbl_errors_count_threshold -text "ĐĐžĐŋŅŅŅиĐŧĐžĐĩ ĐžŅĐēĐģĐžĐŊĐĩĐŊиĐĩ ĐēĐžĐģиŅĐĩŅŅва ĐžŅийОĐē ŅĐĩŅвĐĩŅĐ°, %"
entry $frm.ent_errors_count_threshold -textvariable errors_count_threshold
label $frm.lbl_processes -text "РайОŅиĐĩ ĐŋŅĐžŅĐĩŅŅŅ:"
label $frm.lbl_lifetime_limit -text "ĐĐĩŅиОд ĐŋĐĩŅĐĩСаĐŋŅŅĐēĐ°, ŅĐĩĐē."
entry $frm.ent_lifetime_limit -textvariable lifetime_limit
label $frm.lbl_max_memory_size -text "ĐĐžĐŋŅŅŅиĐŧŅĐš ОйŅŅĐŧ ĐŋĐ°ĐŧŅŅи, ĐĐ"
entry $frm.ent_max_memory_size -textvariable max_memory_size
label $frm.lbl_max_memory_time_limit -text "ĐĐŊŅĐĩŅваĐģ ĐŋŅĐĩвŅŅĐĩĐŊиŅ Đ´ĐžĐŋŅŅŅиĐŧĐžĐŗĐž ОйŅŅĐŧĐ° ĐŋĐ°ĐŧŅŅи, ŅĐĩĐē."
entry $frm.ent_max_memory_time_limit -textvariable max_memory_time_limit
label $frm.lbl_kill_problem_processes -justify left -anchor nw -text "ĐŅиĐŊŅдиŅĐĩĐģŅĐŊĐž СавĐĩŅŅĐ°ŅŅ ĐŋŅОйĐģĐĩĐŧĐŊŅĐĩ ĐŋŅĐžŅĐĩŅŅŅ"
checkbutton $frm.check_kill_problem_processes -variable kill_problem_processes -onvalue yes -offvalue no
grid $frm.lbl_host -row 0 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_host -row 0 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_port -row 1 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_port -row 1 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_name -row 2 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_name -row 2 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_secure_connect -row 3 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.cb_security_level -row 3 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_expiration_timeout -row 4 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_expiration_timeout -row 4 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_session_fault_tolerance_level -row 5 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_session_fault_tolerance_level -row 5 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_load_balancing_mode -row 6 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.cb_load_balancing_mode -row 6 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_errors_count_threshold -row 7 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_errors_count_threshold -row 7 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_processes -row 8 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.lbl_lifetime_limit -row 9 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_lifetime_limit -row 9 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_max_memory_size -row 10 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_max_memory_size -row 10 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_max_memory_time_limit -row 11 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.ent_max_memory_time_limit -row 11 -column 1 -sticky nsew -padx 5 -pady 5
grid $frm.lbl_kill_problem_processes -row 12 -column 0 -sticky nw -padx 5 -pady 5
grid $frm.check_kill_problem_processes -row 12 -column 1 -sticky nw -padx 5 -pady 5
# ĐŋĐĩŅĐĩĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ ОйŅайОŅŅиĐē
.add.frm_btn.btn_ok configure -command {
RunCommand "" "cluster insert
--host=[.add.frm.ent_host get]
--port=[.add.frm.ent_port get]
--name=[.add.frm.ent_name get]
--expiration-timeout=$expiration_timeout
--lifetime-limit=$lifetime_limit
--max-memory-size=$max_memory_size
--max-memory-time-limit=$max_memory_time_limit
--security-level=$security_level
--session-fault-tolerance-level=$session_fault_tolerance_level
--load-balancing-mode=$load_balancing_mode
--errors-count-threshold=$errors_count_threshold
--kill-problem-processes=$kill_problem_processes
$auth_agent $host"
Run::server $tree $host ""
destroy .add
}
return $frm
}
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻā§āĻĄ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯āĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻā§āĻā§ āĻĻā§āĻļā§āĻ¯āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧ, āĻāĻŽāĻŋ āĻ āĻŋāĻ āĻāĻā§ āĻŦā§āĻ¤āĻžāĻŽ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§ āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻŦāĨ¤ āĻāĻžāĻāĻžāĻ¯āĻŧ, āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻžāĻ˛ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°. āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻāĻāĻĒā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ:
ttk::button $frm_btn.btn_ok -image ok_grey_24 -command { }
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻ¤ā§, āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§:
.add.frm_btn.btn_ok configure -command {
RunCommand "" "cluster insert
--host=[.add.frm.ent_host get]
--port=[.add.frm.ent_port get]
--name=[.add.frm.ent_name get]
--expiration-timeout=$expiration_timeout
--lifetime-limit=$lifetime_limit
--max-memory-size=$max_memory_size
--max-memory-time-limit=$max_memory_time_limit
--security-level=$security_level
--session-fault-tolerance-level=$session_fault_tolerance_level
--load-balancing-mode=$load_balancing_mode
--errors-count-threshold=$errors_count_threshold
--kill-problem-processes=$kill_problem_processes
$auth_agent $host"
Run::server $tree $host ""
destroy .add
}
āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, "āĻā§āĻ°ā§āĻ¯āĻžāĻŽāĻĄ" āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ Tk-āĻ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋ āĻāĻ°āĻž āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ - āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĄā§āĻāĻž āĻāĻ¨āĻĒā§āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ (āĻāĻ¨ā§āĻā§āĻ°āĻŋ, āĻāĻŽā§āĻŦā§āĻŦāĻā§āĻ¸, āĻā§āĻāĻŦāĻžāĻāĻ¨, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ), āĻāĻāĻāĻŋ āĻĒāĻžāĻ ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ (āĻā§āĻā§āĻ¸āĻāĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛) āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
entry $frm.ent_lifetime_limit -textvariable lifetime_limit
āĻāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻāĻŋ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. āĻā§āĻˇā§āĻ¤ā§āĻ° āĻĨā§āĻā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻā§āĻā§āĻ¸āĻ āĻĒā§āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻŽāĻžāĻ¨āĻāĻŋ āĻĒāĻĄāĻŧāĻ¤ā§ āĻšāĻŦā§ (āĻ āĻŦāĻļā§āĻ¯āĻ, āĻ¯āĻāĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤
āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻā§āĻā§āĻ¸āĻ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ (āĻāĻžāĻāĻĒ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯) āĻšāĻ˛ get āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž:
.add.frm.ent_name get
āĻāĻ āĻĻā§āĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ āĻāĻĒāĻ°ā§āĻ° āĻā§āĻĄā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻŦā§āĨ¤
āĻāĻ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒāĻ˛ā§, āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, rac-āĻāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§āĻā§āĻˇāĻŋāĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸āĻš RunCommand āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°ā§:
/opt/1C/v8.3/x86_64/rac cluster insert --host=localhost --port=1540 --name=dsdsds --expiration-timeout=0 --lifetime-limit=0 --max-memory-size=0 --max-memory-time-limit=0 --security-level=0 --session-fault-tolerance-level=0 --load-balancing-mode=performance --errors-count-threshold=0 --kill-problem-processes=no localhost:1545
āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻŽā§āĻ˛ āĻāĻŽāĻžāĻ¨ā§āĻĄā§ āĻāĻ˛ā§ āĻāĻ¸ā§āĻāĻŋ, āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ rac-āĻāĻ° āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§, āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻĒā§āĻāĻā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻŦāĻ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ā§ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°ā§:
āĻāĻĒāĻ¨āĻžāĻ° āĻāĻĻā§āĻļ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĻ¨
proc RunCommand {root par} {
global dir rac_cmd cluster work_list_row_count agent_user agent_pwd cluster_user cluster_pwd
puts "$rac_cmd $par"
set work_list_row_count 0
# ĐžŅĐēŅŅваĐĩĐŧ ĐēĐ°ĐŊĐ°Đģ в ĐŊĐĩĐąĐģĐžĐēиŅŅŅŅĐĩĐŧ ŅĐĩĐļиĐŧĐĩ
# $rac - ĐēĐžĐŧĐ°ĐŊĐ´Đ° Ņ ĐŋĐžĐģĐŊŅĐŧ ĐŋŅŅŅĐŧ
# $par - ŅŅĐžŅĐŧиŅОваĐŊĐŊŅĐĩ ĐēĐģŅŅи СаĐŋŅŅĐēĐ° и ĐžĐŋŅии
set pipe [open "|$rac_cmd $par" "r"]
try {
set lst ""
set l ""
# вŅвОд ĐēĐžĐŧĐ°ĐŊĐ´Ņ дОйавĐģŅĐĩĐŧ в ŅĐŋиŅĐžĐē ŅĐŋиŅĐēОв
while {[gets $pipe line]>=0} {
#puts $line
if {$line eq ""} {
lappend l $lst
set lst ""
} else {
lappend lst [string trim $line]
}
}
close $pipe
return $l
} on error {result options} {
# ĐĐ°ĐŋŅŅĐē ОйŅайОŅŅиĐēĐ° ĐžŅийОĐē
ErrorParcing $result $options
return ""
}
}
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻĄā§āĻāĻž āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¤ā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§, āĻāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ°ā§āĻ° Add:server āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻĄāĻāĻŋ āĻĻāĻžāĻ¯āĻŧā§:
.frm_tree.tree insert {} end -id "server::$host" -text "$host" -values "$host"
āĻāĻāĻ¨, āĻā§āĻ°āĻŋāĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻāĻĒāĻ° āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻāĻŽāĻ°āĻž āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻāĻŽāĻ°āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° (āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°, āĻāĻ¨āĻĢā§āĻŦā§āĻ¸, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻāĨ¤ āĻāĻāĻŋ TreePress āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (lib/function.tcl āĻĢāĻžāĻāĻ˛):
proc TreePress {tree} {
global host server active_cluster infobase
# ĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ вŅĐ´ĐĩĐģĐĩĐŊĐŊŅĐš ŅĐģĐĩĐŧĐĩĐŊŅ
set id [$tree selection]
# ŅŅŅĐ°ĐŊавĐģиваĐĩĐŧ ĐŊŅĐļĐŊŅĐĩ ĐŗĐģОйаĐģŅĐŊŅĐĩ ĐŋĐĩŅĐĩĐŧĐĩĐŊĐŊŅĐĩ
SetGlobalVarFromTreeItems $tree $id
# ĐĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ ĐēĐģŅŅ и СĐŊĐ°ŅĐĩĐŊиĐĩ, Ņ.Đĩ. иĐŧĐĩĐŊĐŊĐž ŅиĐŋ вŅĐąŅĐ°ĐŊĐŊĐžĐŗĐž ŅĐģĐĩĐŧĐĩĐŊŅĐ°
set values [$tree item $id -values]
set key [lindex [split $id "::"] 0]
# и в СавиŅиĐŧĐžŅŅи ĐžŅ ŅĐžĐŗĐž ŅŅĐž вŅĐąŅĐ°Đģи ĐąŅĐ´ĐĩŅ СаĐŋŅŅĐĩĐŊĐ° ŅООŅвĐĩŅŅŅвŅŅŅĐ°Ņ ĐŋŅĐžŅĐĩĐ´ŅŅĐ°
# в ĐŋŅĐžŅŅŅĐ°ĐŊŅŅвĐĩ иĐŧŅĐŊ Run
Run::$key $tree $host $values
}
āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ Run::server āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻŦā§ (Cluster-āĻāĻ° āĻāĻ¨ā§āĻ¯ Run::cluster, Run::work_server-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)āĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. $key āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻšāĻ˛ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻā§āĻ°āĻŋ āĻāĻ˛āĻŋāĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻ āĻāĻļ -āĻāĻāĻĄāĻŋ.
āĻāĻ˛ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¤āĻžāĻāĻžāĻ¨
āĻāĻžāĻ˛āĻžāĻ¨::āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°
proc Run::server {tree host values} {
# ĐŋĐžĐģŅŅĐ°ĐĩĐŧ ŅĐŋиŅĐžĐē ĐēĐģĐ°ŅŅĐĩŅОв ŅŅĐĩĐąŅĐĩĐŧĐžĐŗĐž ŅĐĩŅвĐĩŅĐ°
set lst [RunCommand server::$host "cluster list $host"]
if {$lst eq ""} {return}
set l [lindex $lst 0]
#puts $lst
# ŅĐ´Đ°ĐģŅĐĩĐŧ ĐģиŅĐŊĐĩĐĩ иС ŅĐŋиŅĐēĐ°
.frm_work.tree_work delete [ .frm_work.tree_work children {}]
# ŅиŅĐ°ĐĩĐŧ ŅĐŋиŅĐžĐē
foreach cluster_list $lst {
# ĐĐ°ĐŋĐžĐģĐŊŅĐĩĐŧ ŅĐŋиŅĐžĐē ĐŋĐžĐģŅŅĐĩĐŊĐŊŅĐŧи СĐŊĐ°ŅĐĩĐŊиŅĐŧи
InsertItemsWorkList $cluster_list
# ОйŅайаŅŅваĐĩĐŧ вŅвОд (ŅĐŋиŅĐžĐē) Đ´ĐģŅ дОйавĐģĐĩĐŊиŅ Đ´Đ°ĐŊĐŊŅŅ
в Đ´ĐĩŅĐĩвО
foreach i $cluster_list {
#puts $i
set cluster_list [split $i ":"]
if {[string trim [lindex $cluster_list 0]] eq "cluster"} {
set cluster_id [string trim [lindex $cluster_list 1]]
lappend cluster($cluster_id) $cluster_id
}
if {[string trim [lindex $cluster_list 0]] eq "name"} {
lappend cluster($cluster_id) [string trim [lindex $cluster_list 1]]
}
}
}
# дОйавĐģŅĐĩĐŧ ĐēĐģĐ°ŅŅĐĩŅŅ в Đ´ĐĩŅĐĩвО
foreach x [array names cluster] {
set id [lindex $cluster($x) 0]
if { [$tree exists "cluster::$id"] == 0 } {
$tree insert "server::$host" end -id "cluster::$id" -text "[lindex $cluster($x) 1]" -values "$id"
# дОйавĐģŅĐĩĐŧ ŅĐģĐĩĐŧĐĩĐŊŅŅ в ĐēĐģĐ°ŅŅĐĩŅ
InsertClusterItems $tree $id
}
}
if { [$tree exists "agent_admins::$id"] == 0 } {
$tree insert "server::$host" end -id "agent_admins::$id" -text "ĐĐ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅŅ" -values "$id"
#InsertClusterItems $tree $id
}
}
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ RunCommand āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻ¯āĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¤āĻž āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¤ā§ āĻ¸āĻŦ āĻ§āĻ°āĻŖā§āĻ° āĻāĻŋāĻ¨āĻŋāĻ¸ āĻ¯ā§āĻ āĻāĻ°ā§ - āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ°ā§āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ (āĻŦā§āĻ¸, āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°, āĻ¸ā§āĻļāĻ¨, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻ¤āĻžāĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻŋāĻ¤āĻ°ā§ āĻāĻĒāĻ¨āĻŋ InsertItemsWorkList āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻ˛ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨āĨ¤ āĻāĻāĻŋ rac āĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋāĻ° āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻžāĻ˛ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻāĻāĻā§āĻŽ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻĒā§āĻ°ā§āĻŦā§ $lst āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§āĻāĻŋāĻ˛āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻā§āĻĄāĻŧāĻž āĻ§āĻžāĻ°āĻŖāĻāĻžāĻ°ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž:
svk@svk ~]$ /opt/1C/v8.3/x86_64/rac connection list --cluster=783d2170-56c3-11e8-c586-fc75165efbb2 localhost:1545
connection : dcf5991c-7d24-11e8-1690-fc75165efbb2
conn-id : 0
host : svk.home
process : 79de2e16-56c3-11e8-c586-fc75165efbb2
infobase : 00000000-0000-0000-0000-000000000000
application : "JobScheduler"
connected-at : 2018-07-01T14:49:51
session-number : 0
blocked-by-ls : 0
connection : b993293a-7d24-11e8-1690-fc75165efbb2
conn-id : 0
host : svk.home
process : 79de2e16-56c3-11e8-c586-fc75165efbb2
infobase : 00000000-0000-0000-0000-000000000000
application : "JobScheduler"
connected-at : 2018-07-01T14:48:52
session-number : 0
blocked-by-ls : 0
āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻŦā§:
āĻāĻĒāĻ°ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻšā§āĻĄāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻŦā§āĻ° āĻāĻ°ā§:
InsertItemsWorklist
proc InsertItemsWorkList {lst} {
global work_list_row_count
# ŅŅŅĐ°ĐŊОвĐēĐ° ŅĐĩŅĐĩдОваĐŊиŅ ŅвĐĩŅĐ° Đ´ĐģŅ ŅŅŅĐžĐēи
if [expr $work_list_row_count % 2] {
set tag dark
} else {
set tag light
}
# ŅаСйОŅ ŅŅŅĐžĐē ĐŊĐ° ĐŋĐ°ŅŅ ĐēĐģŅŅ - СĐŊĐ°ŅĐĩĐŊиĐĩ
foreach i $lst {
if [regexp -nocase -all -- {(D+)(s*?|)(:)(s*?|)(.*)} $i match param v2 v3 v4 value] {
lappend column_list [string trim $param]
lappend value_list [string trim $value]
}
}
# СаĐŋĐžĐģĐŊĐĩĐŊиĐĩ ŅĐ°ĐąĐģиŅŅ
.frm_work.tree_work configure -columns $column_list -displaycolumns $column_list
.frm_work.tree_work insert {} end -values $value_list -tags $tag
.frm_work.tree_work column #0 -stretch
# ŅŅŅĐ°ĐŊОвĐēĐ° СаĐŗĐžĐģОвĐēОв
foreach j $column_list {
.frm_work.tree_work heading $j -text $j
}
incr work_list_row_count
}
āĻāĻāĻžāĻ¨ā§, āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ [split $str ":"], āĻ¯āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻāĻŋāĻā§ ":" āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻāĻāĻāĻŋ āĻ°ā§āĻā§āĻ˛āĻžāĻ° āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŋāĻā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻ¨āĻ āĻĨāĻžāĻā§āĨ¤
InsertClusterItems āĻĒāĻĻā§āĻ§āĻ¤āĻŋ (āĻ
āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻ°ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ) āĻā§āĻŦāĻ˛ āĻāĻžāĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻāĻ˛ā§āĻĄ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯ā§āĻ āĻāĻ°ā§
ClusterItems āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻžāĻ¨
proc InsertClusterItems {tree id} {
set parent "cluster::$id"
$tree insert $parent end -id "infobases::$id" -text "ĐĐŊŅĐžŅĐŧĐ°ŅиОĐŊĐŊŅĐĩ йаСŅ" -values "$id"
$tree insert $parent end -id "servers::$id" -text "РайОŅиĐĩ ŅĐĩŅвĐĩŅŅ" -values "$id"
$tree insert $parent end -id "admins::$id" -text "ĐĐ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅŅ" -values "$id"
$tree insert $parent end -id "managers::$id" -text "ĐĐĩĐŊĐĩĐ´ĐļĐĩŅŅ ĐēĐģĐ°ŅŅĐĩŅĐ°" -values $id
$tree insert $parent end -id "processes::$id" -text "РайОŅиĐĩ ĐŋŅĐžŅĐĩŅŅŅ" -values "workprocess-all"
$tree insert $parent end -id "sessions::$id" -text "ĐĄĐĩĐ°ĐŊŅŅ" -values "sessions-all"
$tree insert $parent end -id "locks::$id" -text "ĐĐģĐžĐēиŅОвĐēи" -values "blocks-all"
$tree insert $parent end -id "connections::$id" -text "ĐĄĐžĐĩдиĐŊĐĩĐŊиŅ" -values "connections-all"
$tree insert $parent end -id "profiles::$id" -text "ĐŅĐžŅиĐģи ĐąĐĩСОĐŋĐ°ŅĐŊĐžŅŅи" -values $id
}
āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ āĻĻā§āĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻŽā§āĻ˛āĻ āĻāĻĻā§āĻļāĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻŽā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¤āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻŦā§:
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§, āĻ¯ā§āĻ āĻāĻŦāĻ āĻā§āĻāĻŋāĻ āĻŽāĻžāĻĨāĻžāĻ° āĻāĻĒāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
InsertBaseItems
proc InsertBaseItems {tree id} {
set parent "infobase::$id"
if { [$tree exists "sessions::$id"] == 0 } {
$tree insert $parent end -id "sessions::$id" -text "ĐĄĐĩĐ°ĐŊŅŅ" -values "$id"
}
if { [$tree exists "locks::$id"] == 0 } {
$tree insert $parent end -id "locks::$id" -text "ĐĐģĐžĐēиŅОвĐēи" -values "$id"
}
if { [$tree exists "connections::$id"] == 0 } {
$tree insert $parent end -id "connections::$id" -text "ĐĄĐžĐĩдиĐŊĐĩĐŊиŅ" -values "$id"
}
}
āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻā§:
āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻāĻāĻā§āĻŽ āĻĸā§āĻāĻžāĻ¨
proc InsertProfileItems {tree id} {
set parent "profile::$id"
set lst {
{dir "ĐиŅŅŅĐ°ĐģŅĐŊŅĐĩ ĐēĐ°ŅĐ°ĐģĐžĐŗи"}
{com "РаСŅĐĩŅŅĐŊĐŊŅĐĩ COM-ĐēĐģĐ°ŅŅŅ"}
{addin "ĐĐŊĐĩŅĐŊиĐĩ ĐēĐžĐŧĐŋĐžĐŊĐĩĐŊŅŅ"}
{module "ĐĐŊĐĩŅĐŊиĐĩ ĐžŅŅŅŅŅ и ОйŅайОŅĐēи"}
{app "РаСŅĐĩŅŅĐŊĐŊŅĐĩ ĐŋŅиĐģĐžĐļĐĩĐŊиŅ"}
{inet "Đ ĐĩŅŅŅŅŅ иĐŊŅĐĩŅĐŊĐĩŅ"}
}
foreach i $lst {
append item [lindex $i 0] "::$id"
if { [$tree exists $item] == 0 } {
$tree insert $parent end -id $item -text [lindex $i 1] -values "$id"
}
unset item
}
}
āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻšāĻ˛ āĻāĻā§āĻ°ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ (āĻā§āĻ˛āĻŋ) āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§āĨ¤
āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻĄā§āĻāĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻāĻŋ, āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§, āĻŽā§āĻ˛āĻ¤, āĻāĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻŦāĻ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻšāĻ˛ āĻāĻ¨āĻĢā§āĻŦā§āĻ¸), āĻĄāĻžāĻ¯āĻŧāĻžāĻ˛āĻ āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋ āĻāĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻāĻāĻ°āĻāĻŽ āĻĻā§āĻāĻžāĻā§āĻā§:
āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨::$key->AddTopLevel
āĻāĻŦāĻ āĻāĻ āĻŽāĻ¤ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯:
āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°ā§āĻ¨::$key->āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨::$key->AddTopLevel
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻĄāĻŋāĻāĻŋāĻ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ, āĻ¯ā§āĻŽāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽā§ āĻāĻžāĻā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§, āĻā§āĻ˛āĻŦāĻžāĻ°ā§ (āĻĒā§āĻ¨ā§āĻ¸āĻŋāĻ˛) āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒā§āĻ¨ āĻāĻŦāĻ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĢāĻ°ā§āĻŽāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§:
āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž:: āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°
proc Edit::cluster {tree host values} {
global default lifetime_limit expiration_timeout session_fault_tolerance_level
global max_memory_size max_memory_time_limit errors_count_threshold security_level
global load_balancing_mode kill_problem_processes active_cluster
agent_user agent_pwd cluster_user cluster_pwd auth
if {$cluster_user ne "" && $cluster_pwd ne ""} {
set auth "--cluster-user=$cluster_user --cluster-pwd=$cluster_pwd"
} else {
set auth ""
}
# ŅиŅŅĐĩĐŧ ŅĐžŅĐŧŅ Đ´ĐģŅ ĐēĐģĐ°ŅŅĐĩŅĐ°
set frm [Add::cluster $tree $host $values]
# ĐŧĐĩĐŊŅĐĩĐŧ ŅĐĩĐēŅŅ ĐŊĐ° ĐŧĐĩŅĐēĐĩ
$frm configure -text "Đ ĐĩĐ´Đ°ĐēŅиŅОваĐŊиĐĩ ĐēĐģĐ°ŅŅĐĩŅĐ°"
set active_cluster $values
# ĐŋĐžĐģŅŅĐ°ĐĩĐŧ Đ´Đ°ĐŊĐŊŅĐĩ ĐŋĐž вŅĐ´ĐĩĐģĐĩĐŊĐŊĐžĐŧŅ ĐēĐģĐ°ŅŅĐĩŅŅ
set lst [RunCommand cluster::$values "cluster info --cluster=$active_cluster $host"]
# СаĐŋĐžĐģĐŊŅĐĩĐŧ ĐŋĐžĐģŅ
FormFieldsDataInsert $frm $lst
# вŅĐēĐģŅŅĐ°ĐĩĐŧ ĐŋĐžĐģŅ, ŅĐĩĐ´Đ°ĐēŅиŅОваĐŊиĐĩ ĐēĐžŅĐžŅŅŅ
СаĐŋŅĐĩŅĐĩĐŊĐž
$frm.ent_host configure -state disable
$frm.ent_port configure -state disable
# ĐŋĐĩŅĐĩĐŊаСĐŊĐ°ŅĐ°ĐĩĐŧ ОйŅайОŅŅиĐē
.add.frm_btn.btn_ok configure -command {
RunCommand "" "cluster update
--cluster=$active_cluster $auth
--name=[.add.frm.ent_name get]
--expiration-timeout=$expiration_timeout
--lifetime-limit=$lifetime_limit
--max-memory-size=$max_memory_size
--max-memory-time-limit=$max_memory_time_limit
--security-level=$security_level
--session-fault-tolerance-level=$session_fault_tolerance_level
--load-balancing-mode=$load_balancing_mode
--errors-count-threshold=$errors_count_threshold
--kill-problem-processes=$kill_problem_processes
$auth $host"
$tree delete "cluster::$active_cluster"
Run::server $tree $host ""
destroy .add
}
}
āĻā§āĻĄā§āĻ° āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻ¨ā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§, āĻ¸āĻŦāĻāĻŋāĻā§āĻ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°, āĻŦā§āĻ¤āĻžāĻŽ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻā§āĻĄāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻžāĻĄāĻŧāĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĢāĻ°ā§āĻŽāĻĢāĻŋāĻ˛ā§āĻĄāĻ¸āĻĄā§āĻāĻžāĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĄā§āĻāĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋ āĻļā§āĻ°ā§ āĻāĻ°ā§:
FormFieldsDataInsert
proc FormFieldsDataInsert {frm lst} {
foreach i [lindex $lst 0] {
# ĐŋĐžĐģŅŅĐ°ĐĩĐŧ ŅĐŋиŅĐžĐē ĐŋĐ°ŅĐ°ĐŧĐĩŅŅОв и СĐŊĐ°ŅĐĩĐŊиК
if [regexp -nocase -all -- {(D+)(s*?|)(:)(s*?|)(.*)} $i match param v2 v3 v4 value] {
# ĐŧĐĩĐŊŅĐĩĐŧ ŅиĐŧвОĐģŅ
regsub -all -- "-" [string trim $param] "_" entry_name
# СаĐŋĐžĐģĐŊŅĐĩĐŧ Đ´Đ°ĐŊĐŊŅĐŧи
if [winfo exists $frm.ent_$entry_name] {
$frm.ent_$entry_name delete 0 end
$frm.ent_$entry_name insert end [string trim $value """]
}
if [winfo exists $frm.cb_$entry_name] {
global $entry_name
set $entry_name [string trim $value """]
}
# Đ´ĐģŅ ŅĐĩĐēйОĐēŅОв ĐŧĐĩĐŊŅĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиŅ
if [winfo exists $frm.check_$entry_name] {
global $entry_name
if {$value eq "0"} {
set $entry_name no
} elseif {$value eq "1"} {
set $entry_name yes
} else {
set $entry_name $value
}
}
}
}
}
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§, tcl-āĻāĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻĒā§āĻ˛āĻžāĻ¸ āĻĻā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ - āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¨āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻž āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻā§āĻˇā§āĻ¤ā§āĻ° āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ rac āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻ¸ā§āĻāĻ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻ¸āĻš āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ - āĻĄā§āĻ¯āĻžāĻļ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻĄāĻžāĻ°āĻ¸ā§āĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻŽāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤-āĻāĻžāĻāĻ°āĻŋ-āĻ āĻ¸ā§āĻŦā§āĻā§āĻ¤āĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ ent_scheduled_jobs_deny āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤_āĻāĻžāĻ_āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ°.
āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖā§ āĻ¯ā§āĻ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻžāĻ° āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋ āĻāĻ˛āĻžāĻĻāĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻāĻ¨āĻĢā§āĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻž:
āĻāĻāĻŦāĻŋ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻāĻŦāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž
āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ Edit::infobase, āĻĢāĻ°ā§āĻŽāĻāĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻāĻāĻžāĻ¨ā§ āĻā§āĻĄāĻāĻŋ āĻĻāĻŋāĻā§āĻāĻŋ āĻ¨āĻžāĨ¤
āĻ¸āĻžāĻĻā§āĻļā§āĻ¯ āĻĻā§āĻŦāĻžāĻ°āĻž, āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻ, āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž, āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻāĻŋ āĻŦā§āĻāĻžāĻ¯āĻŧ āĻ¸ā§āĻŽāĻžāĻšā§āĻ¨ āĻ¸āĻāĻā§āĻ¯āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°, āĻāĻ¨āĻĢā§āĻŦā§āĻ¸ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ, āĻā§āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦāĻž IS āĻā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§, āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻžāĻā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽā§āĻ˛ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ˛ā§ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§:
GlobalVarFromTreeItems āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨
proc SetGlobalVarFromTreeItems {tree id} {
global host server active_cluster infobase
set parent [$tree parent $id]
set values [$tree item $id -values]
set key [lindex [split $id "::"] 0]
switch -- $key {
server {set host $values}
work_server {set server $values}
cluster {set active_cluster $values}
infobase {set infobase $values}
}
if {$parent eq ""} {
return
} else {
SetGlobalVarFromTreeItems $tree $parent
}
}
āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° 1C āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻž āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻĻā§āĻāĻŋ āĻ§āĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ āĻ°āĻ¯āĻŧā§āĻā§ - āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻļāĻžāĻ¸āĻāĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻ¸āĻ āĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻļāĻžāĻ¸āĻā§āĻ° āĻ˛āĻāĻāĻ¨ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸āĻš āĻāĻ°āĻ 4āĻāĻŋ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. āĻ¯āĻĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ āĻ˛āĻāĻāĻ¨ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĄāĻžāĻ¯āĻŧāĻžāĻ˛āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§, āĻĄā§āĻāĻž āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻŦā§ āĻāĻŦāĻ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻŦā§āĨ¤
āĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦāĨ¤
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒāĻžāĻ°āĻ¸āĻŋāĻ
proc ErrorParcing {err opt} {
global cluster_user cluster_pwd agent_user agent_pwd
switch -regexp -- $err {
"Cluster administrator is not authenticated" {
AuthorisationDialog "ĐĐ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅ ĐēĐģĐ°ŅŅĐĩŅĐ°"
.auth_win.frm_btn.btn_ok configure -command {
set cluster_user [.auth_win.frm.ent_name get]
set cluster_pwd [.auth_win.frm.ent_pwd get]
destroy .auth_win
}
#RunCommand $root $par
}
"Central server administrator is not authenticated" {
AuthorisationDialog "ĐĐ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅ Đ°ĐŗĐĩĐŊŅĐ° ĐēĐģĐ°ŅŅĐĩŅĐ°"
.auth_win.frm_btn.btn_ok configure -command {
set agent_user [.auth_win.frm.ent_name get]
set agent_pwd [.auth_win.frm.ent_pwd get]
destroy .auth_win
}
}
"ĐĐ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅ ĐēĐģĐ°ŅŅĐĩŅĐ° ĐŊĐĩ Đ°ŅŅĐĩĐŊŅиŅиŅиŅОваĐŊ" {
AuthorisationDialog "ĐĐ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅ ĐēĐģĐ°ŅŅĐĩŅĐ°"
.auth_win.frm_btn.btn_ok configure -command {
set cluster_user [.auth_win.frm.ent_name get]
set cluster_pwd [.auth_win.frm.ent_pwd get]
destroy .auth_win
}
#RunCommand $root $par
}
"ĐĐ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅ ŅĐĩĐŊŅŅĐ°ĐģŅĐŊĐžĐŗĐž ŅĐĩŅвĐĩŅĐ° ĐŊĐĩ Đ°ŅŅĐĩĐŊŅиŅиŅиŅОваĐŊ" {
AuthorisationDialog "ĐĐ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅ Đ°ĐŗĐĩĐŊŅĐ° ĐēĐģĐ°ŅŅĐĩŅĐ°"
.auth_win.frm_btn.btn_ok configure -command {
set agent_user [.auth_win.frm.ent_name get]
set agent_pwd [.auth_win.frm.ent_pwd get]
destroy .auth_win
}
}
(.+) {
tk_messageBox -type ok -icon error -message "$err"
}
}
}
āĻ¸ā§āĻā§āĻ˛ā§. āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻā§ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻ¸ā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŦā§āĨ¤
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧ 95 āĻļāĻ¤āĻžāĻāĻļ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻŋ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻ¯āĻŧā§ āĻā§āĻā§ =)āĨ¤ āĻāĻāĻžāĻ¨ā§āĻ āĻļā§āĻˇ. āĻāĻŽāĻŋ āĻā§āĻ°ā§āĻŖāĻŦāĻŋāĻā§āĻ°ā§āĻŖ āĻāĻ˛ā§āĻĒ āĻāĻ¨ā§āĻ¯ āĻā§āĻˇāĻŽāĻžāĻĒā§āĻ°āĻžāĻ°ā§āĻĨā§.
āĻā§āĻĄ, āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤āĻāĻžāĻŦā§ āĻāĻĒāĻ˛āĻŦā§āĻ§
āĻāĻĒāĻĄā§āĻ: āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻļā§āĻˇāĨ¤ āĻāĻāĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž 100% āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻĒāĻĄā§āĻ 2: āĻāĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻ°āĻŖ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, win7 āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻŋāĻ¤ āĻāĻžāĻ
āĻāĻ¤ā§āĻ¸: www.habr.com