*ред рдЧреНрд░реВрд╡реА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдбреЙрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ

рдЫрд╡рд┐

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

рдХрд╛рд░реНрдп


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

рдЙрдиреНрд╣реЗрдВ рдФрд░ рдкрд░рд┐рд╖реНрдХреГрдд рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛:


рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди


рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЙрддреНрдкрд╛рдж (рдореИрдВ рдЬрд╛рд╡рд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ) рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЬреИрд╕реНрдкрд░ рдХреА рд░рд┐рдкреЛрд░реНрдЯ

рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ xml рдорд╛рд░реНрдХрдЕрдк рдлрд╝рд╛рдЗрд▓ * .jrxml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорд╛рд░реНрдХрдЕрдк рдлрд╝рд╛рдЗрд▓ + рдбреЗрдЯрд╛ (рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдореИрдк рдкреИрд░рд╛рдореАрдЯрд░ рджреЛрдиреЛрдВ рд╕реЗ) рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ: рдкреАрдбреАрдПрдл, рдПрдХреНрд╕рдПрдордПрд▓, рдПрдЪрдЯреАрдПрдордПрд▓, рд╕реАрдПрд╕рд╡реА, рдПрдХреНрд╕рдПрд▓рдПрд╕, рдЖрд░рдЯреАрдПрдл, TXTред
рд╕реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛:

Docx4java

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

рдЕрдкрд╛рдЪреЗ POI

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


рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рдирд╛


рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ :)

1. рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рдВрдкреАрдбрд╝рд┐рдд xml рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╛рд░рдВрдкрд░рд┐рдХ JDK 6 рдЬрд╝рд┐рдк рд╕реНрдкрд╖реНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ (рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо) рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдирдкреИрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЬрдм рдпрд╣ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЯрд╛ docx рдирд┐рдХрд▓рд╛ред рд╕рд╛рдордЧреНрд░реА рдкреИрдХ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде Groovy AntBuilder рдЖрд╡рд░рдг рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

2. рдПрдордПрд╕ рд╡рд░реНрдб рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ xml рдЯреИрдЧ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореБрдЭреЗ рдкрд╣рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ xml рдЧреИрд╕рдХреЗрдЯ рд╕реЗ рд╕рдлрд╛рдИ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдерд╛ред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ regex рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд╡реЗ рдореБрдЭреЗ SAX рдкрд╛рд░реНрд╕рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рд▓рдЧ рд░рд╣реЗ рдереЗ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдирд╣реАрдВ рдорд╛рдкрд╛ рдерд╛)ред

3. рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рд╛рджрдЧреА, рдЬрд╛рд╡рд╛ рдкреНрд░рдХреГрддрд┐ рдФрд░ рдХреЛрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╡рдЬрд╣ рд╕реЗ рдЧреНрд░реВрд╡реА рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЙрд╕реЗ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реБрдИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ 10-рд╢реАрдЯ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рднреА, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рдХреА рд░реЗрдЦрд╛ рдХреА рд╕реАрдорд╛ рдкрд░ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрди рд╕рднреА рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ UUID рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЬрд╛рддреЗ рд╣реИрдВ, Groovy рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ UUID рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдореВрд▓ XML рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред

рдЗрди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛!

рдореИрдВрдиреЗ рдПрдХ рдЕрдВрдЧреНрд░реЗрдЬреА-рднрд╛рд╖рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд▓ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкрддрд╛: snowindy.github.com/scriptlet4docx

рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг

 HashMap<String, Object> params = new HashMap<String, Object>(); params.put("name", "John"); params.put("sirname", "Smith"); DocxTemplater docxTemplater = new DocxTemplater(new File("path_to_docx_template/template.docx")); docxTemplater.process(new File("path_to_result_docx/result.docx"), params); 


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

рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░, рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг


рдбрд┐рд╕реНрдХреНрд▓реЗрдорд░: рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЧреНрд░реВрд╡реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЧреНрд░реВрд╡реА рдХреЛрдб рдореЗрдВ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рдХрд╛ рдкрд╛рда рдЗрд╕ рддрд░рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ: out.print('template_text')

$ {рдбреЗрдЯрд╛}

рдбреЗрдЯрд╛ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорддреБрд▓реНрдп: out.print(data)

<% = рдбреЗрдЯрд╛%>

рдбреЗрдЯрд╛ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорддреБрд▓реНрдп: out.print(data)

<% any_code%>

рдХрд┐рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛрдб рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд╢рд░реНрдд рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 <% if (cond) { %>    ,  "cond == true" <% } else { %>    ,  "cond != true" <% } %> 


$ [@ listVar.field]

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

  1. рдЗрдирдкреБрдЯ рд╡реИрд▓реНрдпреВ рдореИрдк рдореЗрдВ 'personList' рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рдирд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рд╕реВрдЪреА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
  2. рдбреЙрдХреНрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджреЛ рдХреЙрд▓рдо рдФрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдирд╛ред
  3. рдкрд╣рд▓реА рд╕реЗрд▓ рдореЗрдВ $[@person.name] рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; $[@person.address] - рджреВрд╕рд░реЗ рдореЗрдВред
  4. рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рд╡реНрдпрдХреНрддрд┐ рд╕реВрдЪреА рд╕реВрдЪреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдореБрджреНрд░рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред


рд▓рд╛рдЗрд╡ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЙрджрд╛рд╣рд░рдг

рдпрд╣рд╛рдБ рдЭреВрда: рд▓рд┐рдВрдХ ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕


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


рдореБрдЭреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рддрд░рдг рдореЗрдВ рд╕рд▓рд╛рд╣ рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА!

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


All Articles