"рдкрд░реНрд▓" 1 рд╕реА рддрдХ рдкрд╣реБрдВрдЪ: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ 8.2


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдРрд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рдХреЛ 1C: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ 8.2 рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдФрд░, рд╢рд╛рдпрдж, рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЕрд╡рдЧрдд рд╣реИрдВ рдХрд┐ рдЖрдк 1C рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: OLE / COM рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬред рд▓реЗрдХрд┐рди рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ OLE / COM рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рди рдХреЗрд╡рд▓ 1C рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ 1C: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд╕рд░реНрд╡рд░ рдХреЛ "рдкреНрд░рдмрдВрдзрд┐рдд" рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк 1C рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдПрдЬреЗрдВрдЯ, рдЦреБрд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рддреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝реЗрдВ ... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, OLE / COM рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдХрд▓реНрдк рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреА рд╣реИ рдФрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЪреБрдирдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддреА рд╣реИ рдЬреЛ рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рднрд╛рд╖рд╛ 1C рд╕реЗ: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ред рдЖрдк рдРрд╕реА рдХреЛрдИ рднреА рднрд╛рд╖рд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ OLE / COM рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ: рдЪрд╛рд╣реЗ рд╡рд╣ VB.Net рд╣реЛ, C / .net, рдпрд╛ рдЬрд╛рд╡рд╛, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ ... рдкрд░реНрд▓ред рдЬреА рд╣рд╛рдВ, рдЖрдкрдиреЗ рд╕рд╣реА рд╕реБрдирд╛ред рдпрд╣ рдкрд░реНрд▓ рд╣реИред
рдЗрд╕рд▓рд┐рдП ...

рдЯрд╛рд╕реНрдХред


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


рдирд┐рд░реНрдгрдпред


рдПрдХ рд╕рд╡рд╛рд▓ рдЖрдк рдореЗрдВ рд░реЗрдВрдЧ рд╕рдХрддрд╛ рд╣реИ, рдХрд╣ рд░рд╣рд╛ рд╣реИ, рдЖрдкрдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рд░реНрд╡рд░ рдПрдЬреЗрдВрдЯ рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 1C: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ 8.2 x64 рдореЗрдВ рдПрдХ "рдЫреЛрдЯреА" рддреНрд░реБрдЯрд┐ рд╣реИред рдпрд╣ infobase рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдЕрджреНрдпрддрди рдХреЗ рджреМрд░рд╛рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЗрд╕рдореЗрдВ рдЕрджреНрдпрддрди рдФрд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ (рдЙрдирдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрддреНрд░рд╛рдЪрд╛рд░ рдореЗрдВ) рдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрд╕реНрдХрд░рдг 8.2 рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдирд┐рдпреЛрдЬрд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬрд╝ 8.3 рддрдХ рдЗрдВрддрдЬрд╛рд░ рдФрд░ "рдЬреАрд╡рд┐рдд" рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЬрд╛рдирддрд╛ рд╣реВрдВ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдпрд╛ рд▓реЗрдЦ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛)ред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрд╢реНрд╡рд╛рд╕рди рджреЗрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдорд╛рдзрд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдмрд╛рдИрдкрд╛рд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдПрдХ рд╡рд░реНрд╖ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдЖрдзрд╛рд░ рдврд╣ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВред


So. рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рд╢рд░реНрдд рдереАред рдЗрд╕ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдмрд┐рд▓реНрдЯ-рдЗрди 1 рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рднрд╛рд╖рд╛, рдиреЗрдЯ рднрд╛рд╖рд╛ рдпрд╛ рдЬрд╛рд╡рд╛ (рдХреЗрд╡рд▓ рдХрдВрд╕реЛрд▓, рдХреЗрд╡рд▓ рд╕рд╣реА рд▓рд┐рдирдХреНрд╕-рд╡реЗ) рдореЗрдВ рд╕реЗ рдПрдХ рдирд╣реАрдВред

1 рд╕реА рдореЗрдВ: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдкрд╛рдИ рдЧрдИ, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдПрдЬреЗрдВрдЯ 1 рд╕реА: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП OLE / COM рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЦреИрд░ ... рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╕рд╣рд╛рдпрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рдЕрдВрд╢
рд╕рд░реНрд╡рд░ рдПрдЬреЗрдВрдЯ рдХрдиреЗрдХреНрд╢рди (IServerAgentConnection)
GetInfoBaseConnections (GetInfoBaseConnections)
рд╡рд╛рдХреНрдп рд░рдЪрдирд╛:

GetInfoBaseConnections (<рдХреНрд▓рд╕реНрдЯрд░>, <рд╕реВрдЪрдирд╛ рдЖрдзрд╛рд░>)

рд╡рд┐рдХрд▓реНрдк:

<рдХреНрд▓рд╕реНрдЯрд░> (рдЖрд╡рд╢реНрдпрдХ)
рдкреНрд░рдХрд╛рд░: рд╕рд░реНрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╡рд░рдг рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

<InformationBase> (рдЖрд╡рд╢реНрдпрдХ)
рдкреНрд░рдХрд╛рд░: рдХрд╛рдлрд┐рд░реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдгред рд╡рд╣ рд╕реВрдЪрдирд╛ рдЖрдзрд╛рд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп:
рдкреНрд░рдХрд╛рд░: COMSafeArrayред рдХреНрд▓рд╕реНрдЯрд░ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╡рд░рдг рдХреА рдПрдХ рд╕рд░рдгреАред рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╡рд░рдг рдХреЛ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╡рд░рдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд┐рд╡рд░рдг:
рдЙрд▓реНрд▓рдВрдШрди рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИред

рдЙрдкрд▓рдмреНрдзрддрд╛:
рдПрдХрддрд╛ред



рдкрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OLE / COM рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ Win32 :: OLE рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред StrawberryPerl рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░реАрдЗрдВрд╕реНрдЯреЙрд▓реНрдб рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рд▓реЗрдХрд┐рди рднрд▓реЗ рд╣реА рдпрд╣ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЗрд╕реЗ CPAN рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
C:\Perl\perl\bin\cpan Win32::OLE 


рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди 1C рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:


рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рд╣реИ рдЬреЛ 1C: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ 1C: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдиреЗрдХреНрд╢рди рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
 use strict; use warnings; use Win32::OLE; use Data::Dumper; sub getConnectionsCount { #   ( )         my ($server, $dbname) = @_; #  COM- my $ole1c = Win32::OLE->new("V82.COMConnector") or die "Could not create OLE-connector!\n"; #     1: my $_agent = $ole1c->ConnectAgent($server) or die "Could not connect to server!\n" . cnv(Dumper $ole1c->ErrorDescription()); #    (   ) my $_cluster = $_agent->GetClusters()->[0] or die "Could not get cluster 0 from array\n"; #    . #          , #        1:. #        ,   #    . #    ,      . $_agent->Authenticate($_cluster, "", ""); #    ,     my $_basesinfo = $_agent->GetInfoBases($_cluster); #     my @_bases = grep { defined $_->{Name} && $_->{Name} =~ m/^$dbname$/ } @$_basesinfo; #     my $_base = $_bases[0]; #    my $connCounter = 0; #        0 my $_baseconns = $_agent->GetInfoBaseConnections($_cluster, $_base) or return 0; # тАЬтАЭ     ,      . #    ,      #   1: foreach (@$_baseconns) { #           if ($_->{Application} !~ m/JobScheduler/ && $_->{Application} !~ m/SrvrConsole/) { $connCounter++; } } return $connCounter; } #   . #     ,      1: print тАЬThere are тАЬ . getConnectionsCount(тАЬlocalhost:1540тАЭ, тАЬBaseтАЭ) . тАЬ active connections\nтАЭ; 


рдЖрдк "рдиреЗрдЯ рдкреНрд░рд╛рд░рдВрдн" рдФрд░ "рдиреЗрдЯ рд╕реНрдЯреЙрдк" рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдЬреЗрдВрдЯ рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 net stop <> net start <> 


рд╡рд╣ рдкреВрд░рд╛ рдХреЛрдб рдЬреЛ рдореИрдВ рдЙрд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдмрд┐рдЯрдХреЙрдЗрди рдкрд░ рд░рдЦрд╛ рдерд╛ред

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


All Articles