рд╡рд┐рд╖рдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ рдпрд╛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ 17 рдШрдВрдЯреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдордПрд╕ SQL тАЛтАЛрдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреИрд╕реЗ рдЖрдмрд╛рдж рдХрд░реЗрдВ

рд╢реБрдн рджрд┐рди

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

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, .NET, C ++, Java, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдпрд╣ рдЖрд▓реЗрдЦ MS SQL рд╕рд░реНрд╡рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ T-SQL рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рдиреЛрдВ рд╕реЗ рднрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ред



рдкрд░рд┐рдЪрдп



рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рдореБрдЭреЗ MS SQL рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдорд┐рд▓рд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреВрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреЗрд╡рд▓ рдЯреА-рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рд▓рдВрдмреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рдЯреА-рдПрд╕рдХреНрдпреВрдПрд▓ рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ (рд╣рд╛рд▓ рд╣реА рдореЗрдВ) рддрдХ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ "рдбреЗрдЯрд╛рдмреЗрд╕" рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реЗ рдХреЗрд╡рд▓ рдЬреНрдЮрд╛рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд "рдмреИрд╕рд╛рдЦреА" рдФрд░ рдзреАрдорд╛ (рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛) рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред



рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рд╣реИрдмрд░ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛, рдпрд╛ рдЗрд╕рдХреЗ Ctrl + A рдФрд░ Shift + Del рдХреЗ рд╕рд╛рде рдПрдХ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рд╣реИред



рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдХреНрдпрд╛ рдерд╛:



рдЖрдкрдХреЛ рдЗрд╕ рд╕рдм рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдерд╛:



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



рдкреВрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА:



рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд░рд╣рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред (рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХ, рд▓реЗрдЦрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд , рдПрд╕рдХреНрдпреВрдПрд▓ рдХреА рдореВрд▓ рдмрд╛рддреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ)



randomString
CREATE PROCEDURE [dbo].[randomString] @inputSize int, @outputRandomString nvarchar(max) output AS BEGIN --        . END;
      
      







рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдЬреЛ рдореИрдВ рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рдлреЛрд░рдо рд╕реЗ рдЖрдпрд╛ рдерд╛ред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рдВрдмрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдЖрдХрд╛рд░ рдХреЗ NVARCHAR (MAX) рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЧрдВрднреАрд░ рд╕рдордп рд▓рд╛рдЧрдд рдирд╣реАрдВ рд╣реИред рд╣рдо рдФрд░ рдЖрдЧреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред



randomInt
 CREATE PROCEDURE [dbo].[randomInt] @inputSize int, @outputInteger int output AS BEGIN DECLARE @TEMP bigint SET @TEMP = SUBSTRING('999999999999999999',1,@inputSize) SET @outputInteger = (ABS(CHECKSUM(NewId())) % @TEMP) END
      
      







рдлрд╝рдВрдХреНрд╢рди рдЫреЛрдЯрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ SUBSTRING рдХреЗ рд╕рд╛рде рдПрдХ рдЬрдЧрд╣), рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдореБрдЭреЗ рдЗрд╕рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред



generateDataByType
 CREATE PROCEDURE [dbo].[generateDataByType] @tableName nvarchar(40), --  ,      @inputColumName nvarchar(40), --  ,      @inputType nvarchar(10), @inputSize int, @outputString nvarchar(max) output --  AS BEGIN DECLARE @isFK bit = 0; DECLARE @FKName NVARCHAR(MAX); DECLARE @ParentTable NVARCHAR(MAX); -- @tableName     FK (ccu.table_name)     (references_table)           DECLARE columnsCursor1 CURSOR FOR SELECT kcu.column_name, ccu.table_name AS references_table FROM information_schema.table_constraints tc INNER JOIN information_schema.key_column_usage kcu ON tc.constraint_catalog = kcu.constraint_catalog AND tc.constraint_schema = kcu.constraint_schema AND tc.constraint_name = kcu.constraint_name INNER JOIN information_schema.referential_constraints rc ON tc.constraint_catalog = rc.constraint_catalog AND tc.constraint_schema = rc.constraint_schema AND tc.constraint_name = rc.constraint_name AND tc.constraint_type = 'FOREIGN KEY' INNER JOIN information_schema.constraint_column_usage ccu ON rc.unique_constraint_catalog = ccu.constraint_catalog AND rc.unique_constraint_schema = ccu.constraint_schema AND rc.unique_constraint_name = ccu.constraint_name WHERE tc.table_name = @tableName OPEN columnsCursor1; FETCH NEXT FROM columnsCursor1 INTO @FKName,@ParentTable --     WHILE @@FETCH_STATUS = 0 BEGIN -- ,        @inputColumName       IF (@inputColumName = @FKName) BEGIN SET @isFK = 1; --   true -   FK         . DECLARE @selectedPK NVARCHAR(MAX); DECLARE @params NVARCHAR(MAX); --           ,         SET @selectedPK = N'SELECT TOP 1 @outputString =' + @FKName + ' FROM ' + @ParentTable + ' ORDER BY NEWID(); '; SET @params = N'@FKName NVARCHAR(MAX), @ParentTable NVARCHAR(MAX), @outputString NVARCHAR(MAX) OUTPUT'; EXEC sp_executesql @selectedPK , @params, @FKName = @FKName, @ParentTable = @ParentTable, @outputString = @outputString OUTPUT; END FETCH NEXT FROM columnsCursor1 INTO @FKName,@ParentTable END; CLOSE columnsCursor1; DEALLOCATE columnsCursor1; --          . IF (@isFK <> 1) BEGIN IF (@inputType = 'nvarchar') BEGIN EXECUTE randomString @inputSize, @outputRandomString = @outputString OUTPUT ; END ELSE --          . END
      
      







рдФрд░ рдЗрд╕рд▓рд┐рдП, "рдореБрдЦреНрдп" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдореВрд▓ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреЛ рднрд░рдиреЗ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рд╢реНрд░реЗрдгреА рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдЗрд╕ рдЦреЛрдЬ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд░реНрд╢рди рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдорд╛рдорд▓рд╛ рд╕рд┐рд╕реНрдЯреЗрдХреНрдЯ рдЯреЗрдмрд▓ рдФрд░ рд░реИрдВрдбрдо рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╕реЗ рд╕реЗрд▓реЗрдХреНрдЯ рдореЗрдВ рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП: FK рдХреЗ рдмрд┐рдирд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 1 рдорд┐рд▓рд┐рдпрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 20 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ, FK рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 1 рдорд┐рд▓рд┐рдпрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ 17 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдЧрддреЗ рд╣реИрдВред рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рд╕рд╛рдл INSERT рдХреЗ рд╕рд╛рде рдПрдХ рдорд┐рд▓рд┐рдпрди рд▓рд╛рдЗрдиреЗрдВ рд▓рд┐рдЦрдиреЗ рдореЗрдВ 6-10 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред

рдлрд┐рд▓рд╣рд╛рд▓, рдореИрдВ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖ рд╕рдХрддрд╛ рдерд╛, рдЬреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред



insertRandomData
 CREATE PROCEDURE [dbo].[insertRandomData] @childTableName nvarchar(MAX), @insertRowCount int AS BEGIN DECLARE @i int = 0 /*  */ DECLARE @columnName NVARCHAR(30); DECLARE @columnType NVARCHAR(10); DECLARE @columnLenght INT; DECLARE @columnUniq INT; /*      */ DECLARE @insertQuery NVARCHAR(MAX); DECLARE @insertColumnsQuery NVARCHAR(MAX); DECLARE @insertValuesQuery VARCHAR(MAX); DECLARE @params NVARCHAR(MAX); SET @insertColumnsQuery = ''; SET @insertValuesQuery = ''; begin transaction WHILE (@i < @insertRowCount) BEGIN DECLARE columnsCursor CURSOR FOR ----------        @childTableName    ----- SELECT all_columns.column_id, all_columns.name, systypes.name, all_columns.max_length FROM SYS.all_objects join SYS.all_columns on all_columns.object_id = all_objects.object_id join SYS.systypes on all_columns.system_type_id = systypes.xtype WHERE all_objects.name like @childTableName and all_objects.type = 'U' AND systypes.name <> 'sysname'/*-     2   ( )*/ ORDER BY all_columns.column_id; OPEN columnsCursor; --  ,   ID- (   ) FETCH NEXT FROM columnsCursor INTO @columnUniq, @columnName, @columnType, @columnLenght; FETCH NEXT FROM columnsCursor INTO @columnUniq, @columnName, @columnType, @columnLenght; DECLARE @tempLenght INT = 0; WHILE @@FETCH_STATUS = 0 BEGIN /*   (   -1   30) , -1   MAX  ,         30 . */ IF(@columnLenght >= 0) BEGIN SET @tempLenght = @columnLenght; END ELSE BEGIN SET @tempLenght = 30; END --    INSERT,   . SET @insertColumnsQuery = @insertColumnsQuery + @columnName + ', '; DECLARE @TEMPValues nvarchar(MAX) = '' ---  generateStringByType,    TEMPValues--- EXECUTE generateDataByType @childTableName, @columnName, @columnType, @tempLenght, @outputString = @TEMPValues OUTPUT --     INSERT,  . SET @insertValuesQuery = @insertValuesQuery +'''' + @TEMPValues + ''',' FETCH NEXT FROM columnsCursor INTO @columnUniq, @columnName, @columnType, @columnLenght; END; --         INSERT SET @insertColumnsQuery = SUBSTRING(@insertColumnsQuery, 1, LEN(@insertColumnsQuery)-1); SET @insertValuesQuery = SUBSTRING(@insertValuesQuery,1, LEN(@insertValuesQuery)-1); --       . SET @insertQuery = N'INSERT INTO ' + @childTableName + N' (' + @insertColumnsQuery + N') VALUES (' + @insertValuesQuery + ') ;'; EXEC(@insertQuery); --  
      
      







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



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



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



All Articles