рдкреНрд░рддрд┐ рдорд╛рд╣ KPI рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓рдЧрднрдЧ рд╕рдВрддреБрд╖реНрдЯ рдЫреЛрдбрд╝ рджреЗрдВ

рдХрдИ рд╕рдВрдЧрдардиреЛрдВ рдореЗрдВ, KPI (рдореБрдЦреНрдп рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдХреЗрддрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдХрд╛рдИ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд┐рд╕ рд╕рдВрдЧрдарди рдореЗрдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХреЛ "рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдкреНрд░рдгрд╛рд▓реА" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рднреАрддрд░ рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдЗрд╕ рд╕рдм рдХреЗ рд╕рд╛рде, рд╣рдорд╛рд░реА рд╢реНрд░рдо рд▓рд╛рдЧрдд рд╕рдмрд╕реЗ рдмрдбрд╝реА рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╣рдордиреЗ рдХреБрдЫ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓реА рдЖ рд░рд╣реА рд╡рд┐рд╢рд▓рд┐рд╕реНрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореЗрд░реА рдХрд╣рд╛рдиреА рдореЗрдВ рдХреЛрдИ рдкреНрд░рдЪрд╛рд░ рддрдХрдиреАрдХ рдпрд╛ рд░рд╣рд╕реНрдпреЛрджреНрдШрд╛рдЯрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЖрдЦрд┐рд░рдХрд╛рд░, рдкреНрд░рд╛рдВрддреАрдп рд╡рд┐рдХрд╛рд╕ рдХрдареЛрд░ рд╣реИ), рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреБрдЫ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд╣реЛрдВрдЧреЗ рдЬреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛, рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓реЗред рдпрджрд┐ рдЖрдк рдЕрднреА рддрдХ рдКрдм рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


2006 рдореЗрдВ рд╡рд╛рдкрд╕, рд╣рдордиреЗ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╢реБрд░реВ рдХреА: рдкрдВрджреНрд░рд╣ рдореВрд▓реНрдпрд╛рдВрдХрди рдорд╛рдирджрдВрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рдЙрдирдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрджреНрдзрддрд┐ рдФрд░ рдЗрди рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реИрдорд╛рд╕рд┐рдХ рдЖрд╡реГрддреНрддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИ рдереАред рдореВрд▓реНрдпрд╛рдВрдХрди рд╣рдорд╛рд░реЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╕рдВрдЧрдарди рдХреА рдмрд╛рдИрд╕ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЛ рдмрдбрд╝реЗ рдЙрддреНрд╕рд╛рд╣ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмреЛрдирд╕ рдмрд╛рдВрдзрд╛ рдЧрдпрд╛ рдерд╛ - рд╕рдВрдХреЗрддрдХреЛрдВ рдХрд╛ рдпреЛрдЧ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЙрдЪреНрдЪ рд╕реНрдерд╛рди, рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЙрдЪреНрдЪ рд╕реНрдерд╛рди, рдЙрдЪреНрдЪ рдкреНрд░реАрдорд┐рдпрдо, рдФрд░ рд╣рд░ рддрд┐рдорд╛рд╣реА рдФрд░ рд╣рд░ рд╕рд╛рд▓ рдЗрддрдиреЗ рдкрд░ред

рд╕рдордп рдХреЗ рд╕рд╛рде, рдорд╛рдирджрдВрдб рдХреА рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рдЧрдИ, рдкреНрд░рддреНрдпреЗрдХ рддрд┐рдорд╛рд╣реА, рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП рдпрд╛ рдкреБрд░рд╛рдиреЗ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ред рд╢рд┐рдЦрд░ рдкрд░, рд▓рдЧрднрдЧ 2016 рдореЗрдВ, рд╕рдВрдХреЗрддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЪрд╛рд▓реАрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдИ, рдФрд░ рдЕрдм рдХреЗрд╡рд▓ рдЪреМрджрд╣ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╕рдордп рдЙрдирдХреА рдЧрдгрдирд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рди рдереАред рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирджрдВрдб рдХреА рдЧрдгрдирд╛ рдЗрд╕ рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдиреБрдореЛрджрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореВрд▓ рд╕рдВрдЧрдарди рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЗрдХрд╛рдИ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЧрдгрдирд╛ рдХреЛ рдПрдХ рд╕рд░рд▓ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдФрд░ рдХрдИ рдЬрдЯрд┐рд▓ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛рдлреА рдмрд╛рд░ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдкреНрд░рддрд┐рд╢рдд рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рд╕рдВрдХреЗрддрдХ рдХреЛ рдЗрд╕рдХреЗ рдЧреБрдгрд╛рдВрдХ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЕрдВрдХ рдорд╛рдирджрдВрдб рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЕрдВрдХ рд░реИрдВрдХ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рд╕реНрдХреЛрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддреА рд╣реИред рдЕрдВрддрд┐рдо рд╕реНрдерд╛рди рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдВрдХреЛрдВ рдХреЗ рдпреЛрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИред

рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА, рдПрдХреНрд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдФрд░ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдВрдХ рдФрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреА рдЖрдЧреЗ рдХреА рдЧрдгрдирд╛ рдХрд╛ рдЕрдВрддрд┐рдо рд╕реЗрдЯ рдПрдХ рдЕрдЪреНрдЫреА рдкреНрд▓реЗрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдЖрдВрдХрдбрд╝рд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдЕрдЪреНрдЫреЗ рдЯреИрдмрд▓реЗрдЯ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдкреАрдХрд░ рдХреЗрд╡рд▓ рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2016 рдХреА рдЪреМрдереА рддрд┐рдорд╛рд╣реА рдореЗрдВ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛



рд╕рд╣рдордд рд╣реВрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рд╕рдВрдХреЗрддрдХ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдРрд╕реА рдорд╛рддреНрд░рд╛ рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рд╕реЗ рдирд╣реАрдВ рдЬреБрдбрд╝рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдкрджрдВрдб рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдереА, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рднрд╛рдЧ рдХреА рд▓рдбрд╝рдХрд┐рдпреЛрдВ рдиреЗ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдпрд╣ рд╕рд╛рд░рд╛рдВрд╢ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдереАред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рди рдХреЗрд╡рд▓ рдорд╛рдирджрдВрдбреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рдЧрдИ, рдмрд▓реНрдХрд┐ рдЧрдгрдирд╛рдУрдВ рдХреЛ рдХрдИ рдмрд╛рд░ (рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ) рдлрд┐рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рддрд┐рдорд╛рд╣реА рдХреЗ рдЕрдВрддрд┐рдо рджрд┐рдиреЛрдВ рдореЗрдВ, рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЦреБрд╢ рдирд╣реАрдВ рдереЗред рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдирд╛, рдЬрд╛рдВрдЪрдирд╛ рдФрд░ рдЙрд╕реЗ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪрдирд╛ рдерд╛: рдЗрд╕ рддрд░рд╣, рдЖрдк рдЕрдВрдХреЛрдВ рдХреЗ рдпреЛрдЧ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рдЧреБрдгрд╛рдВрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмреЛрдирд╕ рдХрдо рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡реАрд░рддрд╛ рдореЗрдВ рдХрдореА рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рдХрдо рд╡реАрд░рддрд╛рдкреВрд░реНрдг рд╕рддреНрдпрд╛рдкрди рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ, рдЙрди рд╕рднреА рдХреЛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирджрдВрдб, рдкреНрд░рдмрдВрдзрдХреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рдВрдЧрдардирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдЖрдИрдЯреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреЛ рдЬрд╛рдВрдЪрд╛ рдФрд░ рд╕рд╣рдордд рд╣реБрдПред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рднреА рдХрд╛рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдкрд┐рд╡рдЯ рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдореЗрд▓ рдкрд░ рднреЗрдЬреА рдЧрдИ рдереА, рдЕрдХреНрд╕рд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдереАрдВ рдЬрдм рдкрд┐рд╡рдЯ рдЯреЗрдмрд▓ рдореЗрдВ рд╕реВрддреНрд░реЛрдВ рдФрд░ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдереАрдВред рд╕рдмреВрддреЛрдВ рдХреЗ рдХрдкреНрддрд╛рди рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рддреНрдпрд╛рдкрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬрдм рд╕рднреА рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЯреИрдмрд▓реЗрдЯ рдХреЛ рдЕрдиреБрдореЛрджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ, рд╢рд╛рдЦрд╛рдУрдВ рдкрд░ рдпрд╣ рдбрдмрд▓-рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдХреНрдпрд╛ рд╣реБрдЖ рдЕрдЧрд░ рдХрдкрдЯреА рдПрдХреНрд╕реЗрд▓ рдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХреБрдЫ рдЧрд▓рдд рдерд╛? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдорд╛рдирджрдВрдбреЛрдВ рдкрд░ рдПрдХ рд╡рд╛рд░реНрд╖рд┐рдХ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдпрд╛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдХрдо рд░реЛрдорд╛рдВрдЪрдХ рдЦреЛрдЬ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рдмрдВрдзрдХреАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡реА рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдХрд╛рдо рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдФрд░ рдХрд╛рд░реНрдп рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдкрджрдВрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╢рд╛рдЦрд╛ рдХрд╛ рд╕реНрдерд╛рди рдПрдХ рдЕрднрд┐рдиреНрди рд╕рдВрдХреЗрддрдХ рдерд╛ред

рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛


рдЕрднреНрдпрд╛рд╕ рдиреЗ рдПрдХ рдореВрд▓реНрдпрд╛рдВрдХрди рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдФрд░ рдорд╣рддреНрд╡ рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред 2017 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдорд╛рдкрджрдВрдб рдХреА рдЧрдгрдирд╛ рдПрдХ рдмрд╛рд░ рдПрдХ рддрд┐рдорд╛рд╣реА рдореЗрдВ рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдЧрд░рд╛рдиреА рдиреЗ рдЗрд╕реЗ рдХрдордЬреЛрд░ рд╣реЛрдиреЗ рджрд┐рдпрд╛ред рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордпред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рд╣рд░ рджреЛ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕рднреА рддрд┐рдорд╛рд╣реА рдХреЗ рд╕рдорд╛рди рд╣реЛрдВрдЧреЗред рдЧрдгрдирд╛ рдХреА рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдиреЗ рд╢рд╛рдЦрд╛ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдФрд░ рдЕрдкрдиреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рднреАрддрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдореВрд▓ рд╕рдВрдЧрдарди рдореЗрдВ, рдХреБрдЫ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдкреНрд░рд╕рдиреНрди рдереЗ, рд╣рд░ рддрд┐рдорд╛рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╣рд░ рджреЛ рд╕рдкреНрддрд╛рд╣ рдореЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рд╕рдордп-рд╕реАрдорд╛ рддрдВрдЧ рдирд┐рдХрд▓реА: рдирд┐рд░реНрдгрдп рдХреЗ рдХреНрд╖рдг рд╕реЗ рдЧрдгрдирд╛ рдХреА рдПрдХ рдирдИ рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдПрдХ рдорд╣реАрдирд╛ рдмреАрдд рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдФрд░ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд▓ рдХреЗ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реЗ рдмреЗрд╣рддрд░ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╣реА рд╡рд╛рдВрдЫрдиреАрдп рдерд╛, рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдореЗрд▓ред

рдкрд╣рд▓реЗ рддреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдХрд╛рдлреА рдЧрд░реНрдо рдЪрд░реНрдЪрд╛ рд╣реБрдИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рд╕рдВрдХреЗрддрдХ рдХреА рдЧрдгрдирд╛, рдЙрдирдХреЗ рд╕рднреА рд╕реВрддреНрд░реЛрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред рд▓реЗрдХрд┐рди рддрдВрдЧ рд╕рдордп-рд╕реАрдорд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрд╕рдХреЗ рдирд┐рд░рдВрддрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реА:

  • рдорд╛рдирджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрдирдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛;
  • рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдирд╛ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреЗ рдкреНрд▓реЗрдЯ рдореЗрдВ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг;
  • рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕рднреА рдЗрдЪреНрдЫреБрдХ рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реЛ;
  • рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдм рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрд╣реБрдд рдЫреЛрдЯреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред

рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ


рдореИрдВ рд╣рдореЗрд╢рд╛ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреАрдврд╝реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рд╕реАрдЖрд░рдпреВрдбреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЬрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рдЖрдХрд░реНрд╖рдХ рд▓рдЧрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рд░рд▓ рдФрд░ рдЕрдирд╛рдбрд╝реА рддрд░реНрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдХрд░, рдореИрдВрдиреЗ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рд╕реНрдкреНрд░рд┐рдВрдЧ рд░реВрдУ, рдХреНрдпреВрдмрд╛ рдФрд░ рдЕрдиреНрдп рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрдХрд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд▓реНрдк рдУрдкрдирдПрдХреНрд╕рд╡рд╛ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рд╕рдВрддреБрд╖реНрдЯ рдерд╛, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЙрд╕ рд╕рдордп рдпрд╣ рдврд╛рдВрдЪрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рдорд╛рд░реЗ рддрдХрдиреАрдХреА рдвреЗрд░ рдореЗрдВ рдлрд┐рдЯ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░реВрд╕реА рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред

рдУрдкрдирдПрдХреНрд╕рд╡рд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдУрдкрдирдПрдХреНрд╕рд╡рд╛ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬреЛ рдЬреЗрдкреАрдП рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ - рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛, рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛, рд╡реИрдз рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХреЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдмреЙрдХреНрд╕ рд╕реЗ рд╕реАрдЖрд░рдпреВрдбреА, рдЦреЛрдЬ, рдкреАрдбреАрдПрдл рдХреЛ рдирд┐рд░реНрдпрд╛рдд, рдЖрджрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред OpenXava рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдореЙрдбреНрдпреВрд▓ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╛рдкрд╛рд░ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдорд╡реАрд╕реАред

рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг


рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рд╣рдо IBM DB2 DBMS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдорд╛рдирджрдВрдб рдФрд░ рдорд╛рдкрджрдВрдб рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреА рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢рд╛рдЦрд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢рд╛рдЦрд╛рдУрдВ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдПрдХ рдкреНрд▓реЗрдЯ рдЬрд┐рд╕рдореЗрдВ рдорд╛рдкрджрдВрдб рдХреЗ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдорд╛рди рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдкрд░, рдПрдХ рдЧреБрдгрд╛рдВрдХ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдореВрд▓реНрдпрд╛рдВрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред рдорд╛рдирджрдВрдб рдХреЗ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХрд┐рд╕реА рднреА рддрд╛рд░реАрдЦ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдбреЗрдЯрд╛ рд╡реЗ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЕрддреАрдд рдореЗрдВ рдирд┐рдХрдЯрддрдо рддрд┐рдерд┐ рдкрд░ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдереЗред 1C: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ: рдПрдХ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИ рдФрд░ рд╕рдВрдкрд╛рджрди / рд╣рдЯрд╛рдиреЗ рдХреЗ рдореБрджреНрджреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдврд╝рддреЗ рдирд╣реАрдВ рд╣реИрдВред

рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛
CREATE TABLE SUMMAR.CLS_DEPART ( ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY, PARENT_ID BIGINT NOT NULL DEFAULT 0, IS_DELETED INT DEFAULT 0, NAME CLOB, CODE VARCHAR(255), PRIMARY KEY (ID) ); CREATE TABLE SUMMAR.CLS_CRITERIA ( ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY, IS_DELETED INT DEFAULT 0, NAME CLOB, CODE VARCHAR(255), PRIMARY KEY (ID) ); CREATE TABLE SUMMAR.CLS_GROUP_CRITERIA ( ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY, IS_DELETED INT DEFAULT 0, NAME CLOB, CODE VARCHAR(255), PRIMARY KEY (ID) ); CREATE TABLE SUMMAR.REG_STATE_CRITERIA ( ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY, ID_CRITERIA BIGINT NOT NULL, ID_GROUP_CRITERIA BIGINT NOT NULL, TIME_BEGIN TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP, TIME_END TIMESTAMP NOT NULL DEFAULT '9999-12-31-23.59.59.000000000000', TIME_CREATE TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP, KOEFFICIENT DECIMAL(15, 2), PRIMARY KEY (ID), CONSTRAINT FK_CRITERIA FOREIGN KEY (ID_CRITERIA) REFERENCES SUMMAR.CLS_CRITERIA(ID) ON DELETE NO ACTION ON UPDATE RESTRICT, CONSTRAINT FK_GROUP_CRITERIA FOREIGN KEY (ID_GROUP_CRITERIA) REFERENCES SUMMAR.CLS_GROUP_CRITERIA(ID) ON DELETE NO ACTION ON UPDATE RESTRICT ); CREATE TABLE SUMMAR.REG_VALUE_CRITERIA ( ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY, ID_CRITERIA BIGINT NOT NULL, ID_GROUP_CRITERIA BIGINT NOT NULL, ID_DEPART BIGINT NOT NULL, DATE_REG TIMESTAMP(12) NOT NULL DEFAULT CURRENT TIMESTAMP, TIME_END TIMESTAMP NOT NULL DEFAULT '9999-12-31-23.59.59.000000000000', TIME_BEGIN TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP, PERCENT DECIMAL(15, 5), VAL DECIMAL(15, 5), PRIMARY KEY (ID), CONSTRAINT FK_CRITERIA FOREIGN KEY (ID_CRITERIA) REFERENCES SUMMAR.CLS_CRITERIA(ID) ON DELETE NO ACTION ON UPDATE RESTRICT, CONSTRAINT FK_DEPART FOREIGN KEY (ID_DEPART) REFERENCES SUMMAR.CLS_DEPART(ID) ON DELETE NO ACTION ON UPDATE RESTRICT, CONSTRAINT FK_GROUP_CRITERIA FOREIGN KEY (ID_GROUP_CRITERIA) REFERENCES SUMMAR.CLS_GROUP_CRITERIA(ID) ON DELETE NO ACTION ON UPDATE RESTRICT ); 


рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдп рдмрдирд╛рдП рдЧрдП рдереЗ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд┐рдП рдЧрдП рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВред
рдкрд╣рд▓реЗ рд╣рдореЗрдВ рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рд╕рднреА рдорд╛рдирджрдВрдб рдорд╛рдиреНрдп рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЙрд╕ рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдорд╛рдирджрдВрдб рдЧреБрдгрд╛рдВрдХ рд╣реИрдВ
 CREATE OR REPLACE FUNCTION SUMMAR.SLICE_STATE_ALL_CRITERIA ( PMAX_TIME TIMESTAMP ) RETURNS TABLE ( ID_CRITERIA BIGINT, ID_GROUP_CRITERIA BIGINT, TIME_BEGIN TIMESTAMP, TIME_END TIMESTAMP, TIME_CREATE TIMESTAMP, KOEFFICIENT DECIMAL(15, 2) ) LANGUAGE SQL RETURN SELECT RSC.ID_CRITERIA, RSC.ID_GROUP_CRITERIA, RSC.TIME_BEGIN, RSC.TIME_END, RSC.TIME_CREATE, RSC.KOEFFICIENT FROM SUMMAR.REG_STATE_CRITERIA AS RSC INNER JOIN ( SELECT ID_CRITERIA, MAX(TIME_BEGIN) AS TIME_BEGIN FROM ( SELECT DISTINCT ID_CRITERIA, TIME_BEGIN FROM SUMMAR.REG_STATE_CRITERIA WHERE TIME_BEGIN < PMAX_TIME AND TIME_END > PMAX_TIME ) AS SL GROUP BY ID_CRITERIA ) AS MAX_SLICE ON RSC.ID_CRITERIA = MAX_SLICE.ID_CRITERIA AND RSC.TIME_BEGIN = MAX_SLICE.TIME_BEGIN ; 


рдЕрдм рд╣рдо рдЙрд╕реА рддрд┐рдерд┐ рдХреЛ рд╕рднреА рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ
 CREATE OR REPLACE FUNCTION SUMMAR.SLICE_VALUE_ACTUAL_ALL_CRITERIA_ALL_DEPART_WITH_NAMES ( PMAX_TIME TIMESTAMP ) RETURNS TABLE ( ID_CRITERIA BIGINT, ID_GROUP_CRITERIA BIGINT, ID_DEPART BIGINT, DATE_REG TIMESTAMP, PERCENT DECIMAL(15, 2), VAL DECIMAL(15, 2), KOEFFICIENT DECIMAL(15, 2), CRITERIA_NAME CLOB, CRITERIA_CODE VARCHAR(255), GROUP_CRITERIA_NAME CLOB, GROUP_CRITERIA_CODE VARCHAR(255), DEPART_NAME CLOB, DEPART_CODE VARCHAR(255), DEPART_CODE_INT INT ) LANGUAGE SQL RETURN SELECT CDEP.ID_CRITERIA, COALESCE(VALS.ID_GROUP_CRITERIA, 0) AS ID_GROUP_CRITERIA, CDEP.ID_DEPART, VALS.DATE_REG, COALESCE(VALS.PERCENT, 0.0) AS PERCENT, COALESCE(VALS.VAL, 0.0) AS VAL, COALESCE(VALS.KOEFFICIENT, 0.0) AS KOEFFICIENT, CDEP.CRITERIA_NAME, CDEP.CRITERIA_CODE, COALESCE(VALS.GROUP_CRITERIA_NAME, '') AS GROUP_CRITERIA_NAME, COALESCE(VALS.GROUP_CRITERIA_CODE, '') AS GROUP_CRITERIA_CODE, CDEP.DEPART_NAME, CDEP.DEPART_CODE, CDEP.DEPART_CODE_INT FROM ( SELECT CCRT.ID AS ID_CRITERIA, CCRT."NAME" AS CRITERIA_NAME, CCRT.CODE AS CRITERIA_CODE, CDEP.ID AS ID_DEPART, CDEP."NAME" AS DEPART_NAME, CDEP.CODE AS DEPART_CODE, CAST (CDEP.CODE AS INT) AS DEPART_CODE_INT FROM SUMMAR.CLS_DEPART AS CDEP, ( SELECT * FROM SUMMAR.CLS_CRITERIA AS CC INNER JOIN TABLE(SUMMAR.SLICE_STATE_ALL_CRITERIA (PMAX_TIME)) AS ACTC ON CC.ID = ACTC.ID_CRITERIA WHERE CC.IS_DELETED = 0 ) AS CCRT WHERE CDEP.IS_DELETED = 0 ) AS CDEP LEFT JOIN ( SELECT VALS.ID_CRITERIA, VALS.ID_GROUP_CRITERIA, VALS.ID_DEPART, VALS.DATE_REG, VALS.PERCENT, VALS.VAL, VALS.KOEFFICIENT, CGRT."NAME" AS GROUP_CRITERIA_NAME, CGRT.CODE AS GROUP_CRITERIA_CODE FROM TABLE(SUMMAR.SLICE_VALUE_ACTUAL_ALL_CRITERIA (PMAX_TIME)) AS VALS INNER JOIN SUMMAR.CLS_GROUP_CRITERIA AS CGRT ON VALS.ID_GROUP_CRITERIA = CGRT.ID ) as VALS ON CDEP.ID_DEPART = VALS.ID_DEPART AND CDEP.ID_CRITERIA = VALS.ID_CRITERIA ; 


рдЕрдВрддрд┐рдо рдХреНрд╡реЗрд░реА рдореЗрдВ, рд╣рдо рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрдЦреНрдпрд╛ рджреЗрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд░реИрдВрдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдкрд╛рддреЗ рд╣реИрдВ, рдмрд╛рдж рдореЗрдВ рд╕реНрдерд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
 SELECT ROW_NUMBER() OVER() AS ID_NUM, RANK() OVER( PARTITION BY ID_CRITERIA ORDER BY VAL DESC ) AS RATING, CASE WHEN MAX(RANK() OVER( PARTITION BY ID_CRITERIA ORDER BY VAL DESC ) ) OVER() = RANK() OVER( PARTITION BY ID_CRITERIA ORDER BY VAL DESC ) THEN 1 ELSE 0 END AS MAX_RATING, CASE WHEN MIN(RANK() OVER( PARTITION BY ID_CRITERIA ORDER BY VAL DESC ) ) OVER() = RANK() OVER( PARTITION BY ID_CRITERIA ORDER BY VAL DESC ) THEN 1 ELSE 0 END AS MIN_RATING, VALS.* FROM TABLE(SUMMAR.SLICE_VALUE_ACTUAL_ALL_CRITERIA_ALL_DEPART_WITH_NAMES (?)) AS VALS ORDER BY GROUP_CRITERIA_CODE, CRITERIA_CODE, DEPART_CODE_INT 


DBMS рдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рднрд╛рдЧ рдХрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╛рд╡рд╛ рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЬрдЯрд┐рд▓ рдпрд╛ рдиреЙрдирдЯреНрд░рд┐рд╡рд┐рдЕрд▓ рдСрдкрд░реЗрд╢рди рдЕрднреА рднреА рдЖрд╕рд╛рди рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдбреЗрдЯрд╛ рдирдореВрдирд╛рдХрд░рдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рд╕реЗрдЯ, рдХрддрд░рди рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрд╡реЗрджрди


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, OpenXava рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ CRUD рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, web.xml рдореЗрдВ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдбрдСрди рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рд╕рд░реНрд╡рд▓реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

web.xml
 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <filter> <filter-name>naviox</filter-name> <filter-class>com.openxava.naviox.web.NaviOXFilter</filter-class> </filter> <filter-mapping> <filter-name>naviox</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>naviox</filter-name> <url-pattern>/modules/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <filter-mapping> <filter-name>naviox</filter-name> <servlet-name>naviox</servlet-name> </filter-mapping> <filter-mapping> <filter-name>naviox</filter-name> <servlet-name>module</servlet-name> </filter-mapping> <servlet> <servlet-name>naviox</servlet-name> <servlet-class>com.openxava.naviox.web.NaviOXServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>naviox</servlet-name> <url-pattern>/m/*</url-pattern> </servlet-mapping> </web-app> 


рдЗрд╕рдХреЗ рдмрд╛рдж, рдирд┐рдпрдВрддреНрд░рдХреЛрдВред Xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:

controllers.xml
 <controllers> <controller name="Typical_View"> <extends controller="Navigation"/> <extends controller="CRUD"/> <extends controller="ExtendedPrint"/> </controller> </controllers> 


рдЙрдкрд░реЛрдХреНрдд рдирд┐рдпрдВрддреНрд░рдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ OpenXava рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд╛рдореЛрдВ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ, application.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдирд┐рд░реНрдорд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдореЙрдбрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

application.xml
 <application name="summar"> <module name="RegValueCriteria"> <model name="RegValueCriteria"/> <controller name="Typical_View"/> </module> </application> 


рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрди рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Reg.alueCriteria рдШрдЯрдХ рдХреЛ application.xml рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдорд╛рдиреЗрдВред рдпрд╣ рдШрдЯрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдХрд╕реМрдЯреА рдХреЗ рдорд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ (рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдХрд╛ рд╡рд┐рд╡рд░рдг рдмрдЪрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛):

рдШрдЯрдХ рд╡рд░реНрдЧ
 @Entity @Table(name = "REG_VALUE_CRITERIA", catalog = "", schema = "SUMMAR") @XmlRootElement @Views({ @View(members = "idCriteria [idCriteria];" + "idGroupCriteria [idGroupCriteria];" + "idDepart [idDepart];" + "data [dateReg, percent, val]"), @View(name="massReg", members = "idDepart.name, percent, val") }) @Tab(properties= "idDepart.name, idCriteria.name, idGroupCriteria.name, dateReg, percent, val" ) public class RegValueCriteria implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "ID") private Long id; @Basic(optional = false) @NotNull @Column(name = "DATE_REG") @Temporal(TemporalType.TIMESTAMP) @DefaultValueCalculator(CurrentDateCalculator.class) @Stereotype("DATETIME") private Date dateReg; @Column(name = "PERCENT") @OnChange(OnChangePercentAction.class) private BigDecimal percent; @Column(name = "VAL") private BigDecimal val; @JoinColumn(name = "ID_CRITERIA", referencedColumnName = "ID") @ManyToOne(optional = false) @DescriptionsList( descriptionProperties="name" ) @OnChange(OnChangeClsCriteriaAction.class) private ClsCriteria idCriteria; @JoinColumn(name = "ID_GROUP_CRITERIA", referencedColumnName = "ID") @ManyToOne(optional = false) @DescriptionsList( descriptionProperties="name" ) private ClsGroupCriteria idGroupCriteria; @JoinColumn(name = "ID_DEPART", referencedColumnName = "ID") @ManyToOne(optional = false) @DescriptionsList( descriptionProperties="name" ) private ClsDepart idDepart; } 


рд╕рд╛рдорд╛рдиреНрдп рдЬреЗрдкреАрдП рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛ред рдЖрдк OpenXava рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рднреА рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@View рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдХреЗ рдкреНрд░рд╕реНрддреБрддрд┐ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ, рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдФрд░ ; ред рдпрджрд┐ рдПрдХрд▓ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдХрдИ рдореИрдкрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ @View рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ @View рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЧреБрдгреЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

 @View(members = "idCriteria [idCriteria];" + "idGroupCriteria [idGroupCriteria];" + "idDepart [idDepart];" + "data [dateReg, percent, val]") 

рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ, рд▓реЗрдХрд┐рди рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рдеред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдлреЙрд░реНрдо рдХреЛ рдереЛрдбрд╝рд╛ "рдкреБрдирд░реНрдЬреАрд╡рд┐рдд" рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред
рдШрдЯрдХ рдмрдирд╛рддреЗ рд╕рдордп рднрд░реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкрдВрдЬреАрдХрд░рдг рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП, @DefaultValueCalculator рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ @DefaultValueCalculator , рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ, OpenXava рдХреЗ рдПрдХ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдПрдХ рдХрд╕реНрдЯрдо рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдпреБрдХреНрдд рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд┐рдирд╛рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @Stereotype рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рд▓реА рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, @DescriptionsList рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ @DescriptionsList , рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рд╕рдВрдкрддреНрддрд┐ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧреАред

рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдлреЙрд░реНрдо рдХреЗ рдХреБрдЫ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рдЬрдм рдкреНрд░рддрд┐рд╢рдд рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдорд╛рди рдХреА рдЧрдгрдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдорд╛рдирджрдВрдб рдХреЗ рдЧреБрдгрд╛рдВрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрдк BigDecimal val @OnChange рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП @OnChange рдПрдиреЛрдЯреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рдо @OnChange рдХреЗ рд▓рд┐рдП @OnChange рдПрдиреЛрдЯреЗрд╢рди рдХреЗ @OnChange , рдЙрд╕реЗ OnChangePropertyBaseAction рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдПрдХрд▓ execute() рдкрджреНрдзрддрд┐ рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рджреГрд╢реНрдп рд╕реЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЧрдгрдирд╛ рдореВрд▓реНрдп рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдмрд╛рд▓ рд╡рд░реНрдЧ OnChangePropertyBaseAction
 public class OnChangePercentAction extends OnChangePropertyBaseAction{ @Override public void execute() throws Exception { BigDecimal percent = (BigDecimal)getNewValue(); if (percent != null){ Map value = (Map)getView().getValue("idCriteria"); if (value != null){ Long idCriteria = (Long)value.get("id"); Query query = XPersistence.getManager().createNativeQuery( "SELECT KOEFFICIENT FROM SUMMAR.SLCLA_STATE_CRITERIA WHERE ID_CRITERIA = ?"); query.setParameter(1, idCriteria); List<?> list = query.getResultList(); if (list != null && !list.isEmpty()){ BigDecimal koef = (BigDecimal) list.get(0); BigDecimal vl = koef.multiply(percent); getView().setValue("val", vl); } } } } } 


рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕рд╛рд░рдгреАрдмрджреНрдз рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП, @Tab рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ @Tab , рдЬреЛ рдЖрдкрдХреЛ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рд░рдгреАрдмрджреНрдз рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

 @Tab(properties= "idDepart.name, idCriteria.name, idGroupCriteria.name, dateReg, percent, val" ) 

рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦреЗрдЧрд╛



рдлрд┐рд▓реНрдЯрд░, рдкреЗрдЬрд┐рдиреЗрд╢рди рдФрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕реЗ рдкреНрд░рд╕рдиреНрди, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдИ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред OpenXava рдХрд╛ рдЙрдкрдпреЛрдЧ CRUD рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдХрдо рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдкреНрд░рдкрддреНрд░реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рд╕реЗ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рд╕рдордп рдмрдЪрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдЧрд▓рддреА рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрдИ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдиреБрднрд╡ рдореЗрдВ рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рд╕рдм рдХреНрдпрд╛ рдерд╛


рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдРрдк рдХрд┐рд╕ рд▓рд┐рдП рдерд╛? рд╣рд╛рдВ, рддрд╛рдХрд┐ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рд╛рде рдкреНрд▓реЗрдЯ рд╡реАрд░рддрд╛ рд╕реЗ рдХрдо рди рд╣реЛ, рд▓реЗрдХрд┐рди рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдкрд┐рд╡рдЯ рдЯреЗрдмрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рд╢реБрд░реВ рд╣реБрдИ:




рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЗ рд╕рд╛рде рдЬреЗрдПрд╕рдкреА рдХрд╛ рдорд┐рд╢реНрд░рдг рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЖрдо рдЬрдирддрд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдбреЗрдЯрд╛ рдирдореВрдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдКрдкрд░ рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╡рд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЬрдм рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдкреНрд░рдмрдВрдзрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐, рд╕рд╛рд░рд╛рдВрд╢ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдХреЗрддрдХ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдирдХреНрд╢реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдерд╛рди рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╢рд╛рдЦрд╛ рдХреЗ рд╕реНрдХреЛрд░ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХрд┐рд╕рдиреЗ рдкрд╣рдЪрд╛рдирд╛ - рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ =)



рдПрдХ рдУрд░, рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдереА, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рдЪрд┐рддреНрд░ рджреГрд╢реНрдп рд╣реЛрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рдж, рдПрд╕рд╡реАрдЬреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рдХреА рдЫрд╡рд┐ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдПрдХреНрд╕рдПрд╕рдПрд▓рдЯреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред

рдкрд░рд┐рдгрд╛рдореА рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрд╕рд╛рдиреА рд╕реЗ рдбреЗрдЯрд╛ рд╕реЗ рднрд░ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдкреАрдПрдирдЬреА рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдбреЗрдЯрд╛ рдХрд╛ рдирдореВрдирд╛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ
 @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "VisualisedValuesCriteria") public class VisualisedValuesCriteria { private XMLGregorianCalendar date; private String criteriaName; private String koefficient; private List<VisualizedValueCriteria> departValues; public XMLGregorianCalendar getDate() { return date; } public void setDate(XMLGregorianCalendar date) { this.date = date; } public String getCriteriaName() { return criteriaName; } public void setCriteriaName(String criteriaName) { this.criteriaName = criteriaName; } public String getKoefficient() { return koefficient; } public void setKoefficient(String koefficient) { this.koefficient = koefficient; } public List<VisualizedValueCriteria> getDepartValues() { if (departValues == null){ departValues = new ArrayList<>(); } return departValues; } public void setDepartValues(List<VisualizedValueCriteria> departValues) { this.departValues = departValues; } } @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class VisualizedValueCriteria { private String departName; private String departCode; private String value; private String percent; private String colorCode; public String getDepartName() { return departName; } public void setDepartName(String departName) { this.departName = departName; } public String getDepartCode() { return departCode; } public void setDepartCode(String departCode) { this.departCode = departCode; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getPercent() { return percent; } public void setPercent(String percent) { this.percent = percent; } public String getColorCode() { return colorCode; } public void setColorCode(String colorCode) { this.colorCode = colorCode; } } } 


рдЕрдЧрд▓рд╛, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ XML рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ;

рдкрд░рд┐рд╡рд░реНрддрди
 Private String marshal (VisualisedValuesCriteria obj){ final Marshaller marshaller = JAXBContext.newInstance(VisualisedValuesCriteria.class).createMarshaller(); marshaller.setEventHandler(new DefaultValidationEventHandler()); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); StringWriter writer = new StringWriter(); marshaller.marshal(obj, writer); return writer.toString(); } 


рдЕрдм, рдкрд░рд┐рдгрд╛рдореА XML, рддреИрдпрд╛рд░ XSLT рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓реЗрдВ, рд░реВрдкрд╛рдВрддрд░рдг рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ svg рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

Svg рд▓реЗ рдЖрдУ
  String xml = marshal(obj); TransformerFactory factory = TransformerFactory.newInstance(); FileInputStream xsltFis = new FileInputStream("C:\\TEMP\\map_xsl.svg"); InputStreamReader xsltIn = new InputStreamReader(xsltFis, "UTF-8"); Source xslt = new StreamSource(xsltIn); Transformer transformer = factory.newTransformer(xslt); InputStream xmlIn = new ByteArrayInputStream( xml.getBytes( "UTF-8" ) ); Source text = new StreamSource(xmlIn); String filename = "map" + System.currentTimeMillis() + ".svg"; String filePath = "C:\\TEMP\\" + filename; transformer.transform(text, new StreamResult(new File(filePath))); 


рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╣рдо рдпрд╣рд╛рдВ рд░реБрдХ рд╕рдХрддреЗ рд╣реИрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдПрд╕рд╡реАрдЬреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡рд░реНрдгрд┐рдд рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдПрд╕рд╡реАрдЬреА рдХреЛ рдЬреЗрдкреАрдИрдЬреА рдпрд╛ рдкреАрдПрдирдЬреА рдЬреИрд╕реЗ рдХреБрдЫ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрд╛рдЪреЗ рдмрд╛рдЯрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдкреАрдПрдирдЬреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ
 private String convertToPNG(final String svg, final String filename, final String filePath){ String png = filePath + filename + ".png"; try { PNGTranscoder trancoder = new PNGTranscoder(); String svgURI = new File(svg).toURL().toString(); TranscoderInput input = new TranscoderInput(svgURI); OutputStream ostream = new FileOutputStream(png); TranscoderOutput output = new TranscoderOutput(ostream); trancoder.transcode(input, output); ostream.flush(); ostream.close(); return filename + ".png"; } catch (MalformedURLException ex) { Logger.getLogger(ActualCriteriaValueGraphicServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (FileNotFoundException | TranscoderException ex) { Logger.getLogger(ActualCriteriaValueGraphicServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(ActualCriteriaValueGraphicServlet.class.getName()).log(Level.SEVERE, null, ex); } return null; } 


рдирдХреНрд╢реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рд╣реИред рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдирд┐рдпрдд рд╕рдордп рддрдХ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдордп рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рд░реНрдЪ 2017 рдореЗрдВ, рдПрдХреНрд╕реЗрд▓ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдХреЗрддрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рд▓рдЧреЗред рдПрдХ рддрд░рдл, рдЕрдзрд┐рдХрддрдо рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рдЗрди рдЧрдгрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдирд┐рд░рдВрддрд░ рд╕реБрдзрд╛рд░ рдХреЗ рдЬреЛрдЦрд┐рдореЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдиреЗ рдирд┐рд░рдВрддрд░ рдкрд░рд┐рд╡рд░реНрддрди, рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдПрдХреНрд╕реЗрд▓ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдХреЗ рд╕рд╛рд░рд╛рдВрд╢ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореИрдиреБрдЕрд▓ рдХрд╛рдо, рдЪреЗрдХ рдФрд░ рдХреНрд░реЙрд╕-рдЪреЗрдХ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рд╣реИрдВред

рдпрд╣ рдХрд╣рдирд╛ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдУрдкрди Xav рдкрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЦреБрд╢ рдирд╣реАрдВ рдерд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрдИ рд╕рд╡рд╛рд▓ рдереЗред рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдХрд┐ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, "рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдоред" рдореБрдЭреЗ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрдирдкреБрдЯ рдЧрддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рднреА рдХрд░рдиреА рдереАред рдЗрд╕ рдирд┐рдЧрд░рд╛рдиреА рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рдмрд╕реЗ рдЧрдВрднреАрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЗрдирдкреБрдЯ рдкрд░ 15 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдмрд┐рддрд╛рдП, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ 5-7 рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЙрдиреНрд╣реЗрдВ 22 рд╢рд╛рдЦрд╛рдУрдВ рдкрд░ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдРрд╕реЗ рд╕рдВрдХреЗрддрдХ рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд▓рдЧрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рджреЛ рдмрд╛рддреЗрдВ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

  1. рдУрдкрди Xava рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдг рд╕рд╛рдмрд┐рдд рд╣реБрдЖред рдореИрдВ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднреА рдХрд╣реВрдВрдЧрд╛ред рд╕рд╛рде рд╣реА рдЗрд╕рдХрд╛ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рд▓рд╛рдн рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдо рдФрд░ рдирд┐рдпрдорд┐рддрддрд╛ рд╣реИред рдЖрд╡реЗрджрди рдореЗрдВ рд╕рднреА рдлреЙрд░реНрдо рдПрдХрд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрдиреЗ рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЙрд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реВрдкреЛрдВ рдХреЗ рдорд╛рдирдХ рд╕реЗрдЯ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдпрд╛ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдиреЗ рд╣рдореЗрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЖрд╡рдВрдЯрд┐рдд рд╕рдордп рдореЗрдВ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХреЗред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╣рдо рд╕рд┐рд░реНрдл рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдП, рдФрд░ рд▓рдХреНрд╖реНрдп рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд╕реАрдЖрд░рдпреВрдбреА-рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛ рдерд╛ред рдЦреБрдж рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реВрдВ рдХрд┐ рдУрдкрди рдПрдХреНрд╕рд╡рд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрд╕рд╛рди рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрдХреНрд╕рдЯреЗрдЬ рдпрд╛ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рд╣реИ ред
  2. рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрд╢реНрд╡рд╕реНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВред рдпрд╣ рдмреЗрд╢рдХ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдкреНрд░рдгрд╛рд▓реАрдЧрдд рдкреНрд░рдХреГрддрд┐ рдХреА рд╕рдордЭ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╣реИред рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдЬреНрдЮрд╛рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ / рд▓рд╛рдЗрдиреЛрдВ (рд╕реВрдЪреА рдкреНрд░рдкрддреНрд░) рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдлреЙрд░реНрдо рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдРрд╕реЗ рдлреЙрд░реНрдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдорд╛рди рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ, рдкреГрд╖реНрдард╛рдВрдХрди, рдЫрдБрдЯрд╛рдИ рдХрд╛рд░реНрдп рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХред рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрдЯрди рдФрд░ рд░реВрдкреЛрдВ рдХрд╛ рд▓рдЧрднрдЧ рд╕рд╣рдЬ рдвреЗрд░ рд╣реИ, "рдЗрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ" рдХреА рд╢реИрд▓реА рдореЗрдВ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡реАред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдПрдХ рд╣реА рдУрдкрди Xav рдЕрдиреБрд╢рд╛рд╕рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЗрдВрдЯрд░рдлреЗрд╕, рд╕рд┐рд░ рдореЗрдВ рдЕрдзрд┐рдХ рдХреНрд░рдо рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рдЪ рд╣реИ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЬрд╛рджреВ рдмрдЯрди рдХрд╣реАрдВ рднреА рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдореЗрдВ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдпрджрд┐ рд╣рдо рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рд╕рдВрдЧрдарди рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рдирд┐рдпрдВрддреНрд░рдг рдХреА рдбрд┐рдЧреНрд░реА рдмрдврд╝ рдЧрдИред рдлрд╝реАрд▓реНрдб рдиреЗрддрд╛рдУрдВ рдХреЛ рд╕рдВрдХреЗрддрдХ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реЗ рдХрд╛рдо рдХреЛ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд╛рд▓рди рдореЛрдб рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднреЗрдЬреЗ рдЧрдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рд╣реБрдП рдмрд┐рдирд╛, рд╡рд┐рднрд┐рдиреНрди рдЕрд╡рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдкрдиреА рд╢рд╛рдЦрд╛ рдХреА рдирд┐рд░рдВрддрд░ рдФрд░ рд╕рддрд░реНрдХ рдирд┐рдЧрд░рд╛рдиреА рдореЗрдВ рдиреЗрддрд╛рдУрдВ рдХреА рд░реБрдЪрд┐ рдХреЛ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рд╣реА рд░реЛрдЪрдХ рддрд░реАрдХреЗ рд╕реЗ рдЦреЛрдЬрд╛ рдЧрдпрд╛ рдерд╛: рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рд▓реЙрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреБрдЫ рд░рд┐рдкреЛрд░реНрдЯ рд╕реБрдмрд╣ 4 рдпрд╛ 5 рдмрдЬреЗ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ рдереАрдВред рдЖрдк рддреБрд░рдВрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рдХрд╛рдо рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИред

рд╡рд╣ рд╕рдм рд╣реИред рдореИрдВ рд░рдЪрдирд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛!

Source: https://habr.com/ru/post/hi423919/


All Articles