REST рдЕрдиреБрд░реЛрдз рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдЯрд▓рд╕рд┐рдпрди рдХреЙрдиреНрдлреНрд▓реБрдПрдВрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛

рдирдорд╕реНрдХрд╛рд░!

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдПрдЯрд▓рд╕рд┐рдпрди рдХрдВрдлреНрд▓реБрдПрдВрд╕ рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЗрдЬ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдЬреЛ рдбреЗрдЯрд╛ рдПрдХ рдЖрд░рдИрдПрд╕рдЯреА рдЕрдиреБрд░реЛрдз рд╕реЗ рдЖрдПрдЧрд╛ред

рд╣рдо Confluence рдореЗрдВ рдПрдХ рдкреЗрдЬ рдмрдирд╛рдПрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ Jira рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдорд╛рдирдХ рдЬреАрд░рд╛ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреАрд░рд╛ рд╕реЗ рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ ред

рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдпрд╣рд╛рдБ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред

рд╕рдВрдЧрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рджреНрдпреБрдд рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рд╣рдо рдХреЙрдиреНрдлреНрд▓реБрдПрдВрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдкрд╛рд╡рд░ рд╕реНрдХреНрд░рд┐рдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреАрд░рд╛ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ ред рдпрд╣ рдПрдХ рдлреНрд░реА рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдареАрдХ рд╣реИ, рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рдВрдЧрдо рдореЗрдВ рдкрд╛рд╡рд░ рд╕реНрдХреНрд░рд┐рдкреНрд╕ рдлреЙрд░ рдХреЙрдиреНрдлреНрд▓реБрдПрдВрд╕ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ ред

рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ


рдЕрдм рдЧрд┐рдпрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдЬрд╛рдПрдВ -> рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ -> рдПрд╕рдЖрдИрдПрд▓ рдкреНрд░рдмрдВрдзрдХред



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде getProjects.sil рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

struct Project {
    string key;
    string name;
    string projectTypeKey;
}

HttpRequest request;
HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
request.headers += authHeader;
 
Project [] projects = httpGet("http://host.docker.internal:8080/rest/api/2/project", request);
runnerLog(projects);
return projects;

рдЕрдкрдиреЗ рдЬреАрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ host.docker.internal : 8080 / рдХреЗ рдкрддреЗ рдХреЛ рдмрджрд▓реЗрдВ ред

рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ рдХрд┐ рдбреЗрдЯрд╛ рдЬреАрд░рд╛ рд╕реЗ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ:



Confluence рдореЗрдВ рдПрдХ рдкреЗрдЬ рдмрдирд╛рдПрдВ


рдЕрдм SIL рдЯреЗрдмрд▓ рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде Confluence рдореЗрдВ рдПрдХ рдкреЗрдЬ рдмрдирд╛рдПрдВ ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ



рдХрд░реЗрдВ getProjects.sil: рдкреГрд╖реНрда рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЛ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:



рдЖрдЗрдП рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ


рдирд┐рдореНрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

  • рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
  • рдЦреЗрддреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдирд╛рдо рджреЗрдВ рдФрд░ рдЕрдзрд┐рдорд╛рдирддрдГ рд░реВрд╕реА рдореЗрдВ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, getProjects.sil рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВред

рдЙрд╕реА рд╕рдордп, рд╣рдо рдереЛрдбрд╝рд╛ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпрд╛ рдХрд░реЗрдЧреА:

  • рдЬреАрд░рд╛ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреАрд░рд╛ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  • рд╣рдо рдкреНрд░рд╛рдкреНрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд╛рд░рдгреАрдмрджреНрдз рджреГрд╢реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
  • рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ

рдпрд╣ рдХреЛрдб рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

Project [] projects = getProjectData();
TableRow [] tableRows =  convertProjectDataToTableData(projects);

return tableRows;

рдЕрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ:

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

рд▓реЗрдХрд┐рди рд╢рдмреНрдж рдХреЛрдб рдореЗрдВ рдмрджрд▓ рдЧрдП:

function getProjectData() {
    HttpRequest request;
    HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
    request.headers += authHeader;
    HttpQueryParam param = httpCreateParameter("expand", "description,lead,url,projectKeys");
    request.parameters += param;
    Project[] projects = httpGet("http://host.docker.internal:8080/rest/api/2/project", request);
    return projects;
}

рдЕрдм рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

[
   {
      "key":"KAN",
      "lead":{
         "name":"admin",
         "displayName":"Alexey Matveev",
      },
      "name":"kanban",
      "projectTypeKey":"software"
   },
   {
      "key":"SCRUM",
      "description":"",
      "lead":{
         "name":"admin",
         "displayName":"Alexey Matveev",
      },
      "name":"scrum",
      "projectTypeKey":"software"
   }
]

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдВрдЬреА, рдирд╛рдо рдФрд░ ProjectTypeKey рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рд╣рдорд╛рд░реЗ json рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рд▓реАрдб рдлреАрд▓реНрдб рдХреЗ рд▓рд┐рдП, рдореВрд▓реНрдп рдХреЗ рдмрдЬрд╛рдп, рд╣рдо json рджреЗрдЦрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕ json рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╛рдо рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗрдиреЗрдо рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╣рдо рд▓реАрдб (рд▓реАрдб) рдХреНрд╖реЗрддреНрд░ рдореЗрдВ json рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:

struct Lead {
    string name;
    string displayName;
}

рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдЬрд╕рди (рдкрд░рд┐рдпреЛрдЬрдирд╛) рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ:

struct Project {
    string key;
    string name;
    string projectTypeKey;
    Lead lead;
}

рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕рдЖрдИрдПрд▓ рдЯреЗрдмрд▓ рдореИрдХреНрд░реЛ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрддрд░ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдкрдиреЗ рдврд╛рдВрдЪреЗ рдХреЛ рдиреЗрд╕реНрдЯрд┐рдВрдЧ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ) рдХреЗ рджреЛ рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрддрд░ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ (рдлреНрд▓реИрдЯ рд╕рдВрд░рдЪрдирд╛) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдПрдХ рдлреНрд▓реИрдЯ рд╕рдВрд░рдЪрдирд╛ (рдЯреЗрдмрд▓рд░реЙрд╡) рдмрдирд╛рдПрдВ:

struct TableRow {
    string key;
    string name;
    string projectTypeKey;
    string lead;
    string leadDisplayName;
}

рдФрд░ рдЕрдм рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ:

function convertProjectDataToTableData(Project [] projectData) {
    TableRow [] tableRows;
    for (Project project in projectData) {
        TableRow tableRow;
        tableRow.key = project.key;
        tableRow.name = project.name;
        tableRow.projectTypeKey = project.projectTypeKey;
        tableRow.lead = project.lead.name;
        tableRow.leadDisplayName = project.lead.displayName;
        tableRows = arrayAddElement(tableRows, tableRow);
    } 
    return tableRows;
}

рд╕рдмред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рд╣реИ!

рдпрд╣рд╛рдБ рдЕрдВрддрд┐рдо getProjects.sil рдХреЛрдб рд╣реИ:

struct Lead {
    string name;
    string displayName;
}

struct Project {
    string key;
    string name;
    string projectTypeKey;
    Lead lead;
}

struct TableRow {
    string key;
    string name;
    string projectTypeKey;
    string lead;
    string leadDisplayName;
}

function getProjectData() {
    HttpRequest request;
    HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
    request.headers += authHeader;
    HttpQueryParam param = httpCreateParameter("expand", "description,lead,url,projectKeys");
    request.parameters += param;
    string pp = httpGet("http://host.docker.internal:8080/rest/api/2/project", request);
    runnerLog(pp);
    Project[] projects = httpGet("http://host.docker.internal:8080/rest/api/2/project", request);
    return projects;
}

function convertProjectDataToTableData(Project [] projectData) {
    TableRow [] tableRows;
    for (Project project in projectData) {
        TableRow tableRow;
        tableRow.key = project.key;
        tableRow.name = project.name;
        tableRow.projectTypeKey = project.projectTypeKey;
        tableRow.lead = project.lead.name;
        tableRow.leadDisplayName = project.lead.displayName;
        tableRows = arrayAddElement(tableRows, tableRow);
    } 
    return tableRows;
}Project [] projects = getProjectData();
TableRow [] tableRows =  convertProjectDataToTableData(projects);

return tableRows;

рдЕрдм рд╣рдо Confluence рдореЗрдВ рдкреЗрдЬ рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░ рдкрд░ рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рд▓реЗрдХрд┐рди рдХреЙрд▓рдо рдХреЗ рдирд╛рдо рдПрдХ рддрд░рд╣ рдХреЗ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдЖрдЗрдП рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рдирд╛рдо рджреЗрдВред

рд╣рдо рдкреГрд╖реНрда рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдПрд╕рдЖрдИрдПрд▓ рдЯреЗрдмрд▓ рдореИрдХреНрд░реЛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрд▓рдо рдлрд╝реАрд▓реНрдб рдореЗрдВ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░ рдХрд╛ рдирд╛рдо" рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ:



рдкреЗрдЬ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:



рд╕рдм рдХреБрдЫ рдирд┐рдХрд▓рд╛!

All Articles