{"id":275702,"date":"2016-03-09T10:23:02","date_gmt":"2016-03-09T07:23:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=275702"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=275702","title":{"rendered":"\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 FireBird \u0438\u0437 1\u0421. \u0421\u0431\u043e\u0440\u043d\u0438\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0446\u0435\u043f\u0442\u043e\u0432"},"content":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ce1\/2c6\/ef7\/ce12c6ef704a41ed8c303abe15350dea.jpg\"\/><br \/>  \u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435.<br \/>  \u042d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u043e\u0431\u043e\u0431\u0449\u0438\u0442\u044c \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u0438 \u043f\u0440\u0438\u0435\u043c\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 InterBase\/FireBird \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0445 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 1\u0421. \u041f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043e \u0437\u0434\u0435\u0441\u044c, \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043b\u043d\u044b\u0439. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0447\u0442\u043e-\u0442\u043e \u0438\u0437 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u0435\u043c\u044b \u0438 \u0443\u043f\u0443\u0449\u0435\u043d\u043e, \u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e, \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 (\u0432 \u043c\u043e\u0435\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438) \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0437\u0430\u0434\u0430\u0447 (\u043a\u0441\u0442\u0430\u0442\u0438, \u043a\u043e\u0435-\u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u2013 \u043c\u043e\u0436\u0435\u0442 \u043a\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043a \u0441\u0442\u0430\u0442\u044c\u0435, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u043c\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u0430\u0440\u043a\u0430\u0441\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u0447 \u043f\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0438\u0437 1\u0421 \u043a \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c \u0431\u0430\u0437\u0430\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u043c\u0435\u0436\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043c\u044b \u043f\u043e\u043a\u0430\u0436\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0430\u0437\u0430\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u0438\u0434\u044b \u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0411\u0414. <br \/>  \u0412 \u044d\u0442\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043e \u0442\u043e\u043c:<br \/>   \u2014 \u043a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 (\u0431\u0430\u0437\u0435) \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b;<br \/>   \u2014 \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b (\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, BLOB-\u043f\u043e\u043b\u044f));<br \/>   \u2014 \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u0442.\u0447. \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043e\u043a, \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0430\u0437\u0443 \u0438 \u0438\u0437 \u0431\u0430\u0437\u044b;<br \/>   \u2014 \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435 \u0431\u0430\u0437\u044b (\u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b);<br \/>   \u2014 \u043a\u0430\u043a \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043e\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u0430 TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0411\u0414;<br \/>   \u2014 \u043f\u0440\u043e\u0447\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043f\u0440\u0438\u0435\u043c\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 (\u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0443\u0434\u043e\u0431\u043d\u043e, \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e).<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c\u2026<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h1>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435.<\/h1>\n<p>  \u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043c. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0435\u0442\u043a\u0430\u044f \u2013 \u0442\u0430\u043a \u0447\u0442\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e. <br \/>  \u0412 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 (\u044d\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u044f\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430) \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u044b\u0439 \u043f\u0440\u0438\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u043d\u044b\u0439 \u00ab\u041e\u041e\u041f \u0432 1\u0421\u00bb (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e <a href=\"https:\/\/habrahabr.ru\/post\/271731\/\">\u0437\u0434\u0435\u0441\u044c<\/a>). \u041f\u043e \u0441\u0443\u0442\u0438, \u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0441\u044c \u043e\u0431\u0449\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (\u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f) \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440.<br \/>  \u0422\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u0430\u044f \u00ab\u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u0430\u00bb, \u043a\u0430\u043a \u00ab\u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\u00bb (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e <a href=\"https:\/\/habrahabr.ru\/post\/278521\/\">\u0437\u0434\u0435\u0441\u044c<\/a>).<\/p>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0430\u0441\u044c \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 <b>FireBird 1.5<\/b> \u0438 <b>FireBird 2.1<\/b>. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0421\u0423\u0411\u0414. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0430\u0437\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e <b>ADO<\/b>. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435, \u0433\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442 1\u0421, \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u00ab<b>Firebird_ODBC<\/b>\u00bb, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u00ab<b>gds32.dll<\/b>\u00bb. <\/p>\n<p>  \u041f\u043e\u043b\u043d\u044b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443 (\u0434\u0430\u0436\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0441 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f\u043c\u0438). \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043b\u0443\u0447\u0448\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 1\u0421 \u2013 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u0442\u043e, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 HTML-\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<h1>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0443\u0442\u044c \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430).<\/h1>\n<p>  \u0411\u0443\u0434\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u043d\u0443\u044e \u00ab\u0417\u0430\u043f\u0438\u0441\u043d\u0430\u044f \u043a\u043d\u0438\u0436\u043a\u0430\u00bb. \u041e\u043d\u0430 \u0447\u0435\u043c-\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043e\u0431\u043d\u0430 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435. \u0423 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0412 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f (\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432) \u2013 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043b\u044e\u0431\u043e\u0439 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u00ab\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0438\u00bb, \u0442.\u0435. \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 (\u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438) \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430. \u041f\u043e\u0438\u0441\u043a\u0430 \u043d\u0435\u0442 (\u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0432\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443 \u0433\u0440\u0443\u043f\u043f). \u041a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043a \u0442\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u0432\u043e\u0434\u0438\u043b\u0438 (\u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 \u043f\u043e\u043b\u044f \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439\u041e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 1\u0421) \u0442\u043e\u0436\u0435 \u043d\u0435\u0442, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u0442 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438) \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0414\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u043e\u0439 \u044d\u0442\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0430 \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c.<\/p>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c (\u043f\u043e\u043a\u0430\u0436\u0435\u043c \u043d\u0430 \u0441\u0435\u0440\u0438\u0438 \u0441\u043b\u0430\u0439\u0434\u043e\u0432-\u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432):<br \/>  <i>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u043a\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:<\/i><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8ae\/991\/090\/8ae991090f994c66af84c6dccc23eeca.jpg\"\/><br \/>  <i>\u0412\u0432\u0435\u0440\u0445\u0443<\/i> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e \u0438 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438.<br \/>  <i>\u0412 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435<\/i> \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432: \u0432 \u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u2013 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430, \u0430 \u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u2013 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 (\u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b) \u0442\u0435\u043a\u0443\u0449\u0435\u0439 (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0432 \u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435) \u0433\u0440\u0443\u043f\u043f\u044b. <br \/>  <i>\u0412\u043d\u0438\u0437\u0443<\/i> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0445 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445).<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e:<br \/>   \u2014 \u00ab<i>\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430<\/i>\u00bb \u2014 \u044d\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0433\u0440\u0443\u043f\u043f (\u0432 \u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435);<br \/>   \u2014 \u00ab<i>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b<\/i>\u00bb \u2014 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0433\u0440\u0443\u043f\u043f \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435;<br \/>   \u2014 \u00ab<i>\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b<\/i>\u00bb \u2014 \u044d\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430 \u0438\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435;<\/p>\n<p>  \u0412\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0443\u0434\u0430\u043b\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c) \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 (\u043b\u0438\u0431\u043e \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435, \u043b\u0438\u0431\u043e \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b) \u2013 \u043a\u0430\u043a \u0438 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430\u043c\u0438 1\u0421.<\/p>\n<p>  \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e \u0438 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:  <\/p>\n<table>\n<tr>\n<th>\u0418\u0437\u043e\u0431\u0440.<\/th>\n<th>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td><\/td>\n<td>\u00ab\u0411\u0430\u0437\u0430\u00bb\u2192\u00ab\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u00bb<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435 (\u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0431\u044b\u043b\u043e)<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8d8\/675\/6e3\/8d86756e385d478fbaef2e9859da80b8.jpg\"\/><\/td>\n<td>\u00ab\u0411\u0430\u0437\u0430\u00bb\u2192\u00ab\u0412\u044b\u0445\u043e\u0434\u00bb<\/td>\n<td>\u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0e4\/227\/ef6\/0e4227ef672d4826b2579a2a3ed8e705.jpg\"\/>  <\/td>\n<td>\u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\u00bb<\/td>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 (\u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443) \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430.<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/7de\/2a3\/b29\/7de2a3b29d264962b111c12a265b47bc.jpg\"\/>  <\/td>\n<td>\u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u041d\u043e\u0432\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430\u00bb<\/td>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430.<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5bb\/5ec\/2c1\/5bb5ec2c1ff84450a9e4396bd0fccee0.jpg\"\/>  <\/td>\n<td>\u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00bb<\/td>\n<td>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f (\u0433\u0440\u0443\u043f\u043f\u0430 \u0438\u043b\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430) \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u044b\u043b \u0432\u044b\u0434\u0435\u043b\u0435\u043d \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 .<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/336\/593\/916\/336593916e424c56b180e0444b00e153.jpg\"\/><\/td>\n<td>\u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c\u00bb<\/td>\n<td>\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (\u0433\u0440\u0443\u043f\u043f\u0443 \u0438\u043b\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443).<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fb0\/e39\/dfa\/fb0e39dfab2c46b5a739ed06b3da0fca.jpg\"\/>  <\/td>\n<td>\u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u00bb<\/td>\n<td>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (\u0433\u0440\u0443\u043f\u043f\u0443 \u0438\u043b\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443).<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fa3\/6ec\/29c\/fa36ec29c38c49f0aef6849b011f7af3.jpg\"\/>  <\/td>\n<td>\u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0443\u00bb<\/td>\n<td>\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (\u0433\u0440\u0443\u043f\u043f\u0443 \u0438\u043b\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443).<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2a8\/fad\/fca\/2a8fadfca5d946f684f1bffdb7da93f2.jpg\"\/>  <\/td>\n<td>\u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u00bb<\/td>\n<td>\u0417\u0430\u043d\u043e\u0432\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b).<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>\u00ab\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00bb\u2192\u00ab\u0421\u043c\u0435\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\u00bb<\/td>\n<td>\u0421\u043c\u0435\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>\u00ab\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00bb\u2192\u00ab\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439\u00bb<\/td>\n<td>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0430\u0437\u044b.<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>\u00ab\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00bb\u2192\u00ab\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u00bb<\/td>\n<td>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0430\u043c<\/td>\n<\/tr>\n<\/table>\n<p>  <i>\u041e\u043a\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0435:<\/i><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/772\/b40\/873\/772b40873e5046aea10f0491e5a79cab.jpg\"\/><\/p>\n<p>  <i>\u0414\u0438\u0430\u043b\u043e\u0433 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:<\/i><br \/>  (\u041a\u043e\u043c\u0430\u043d\u0434\u0430: \u00ab\u0411\u0430\u0437\u0430\u00bb\u2192\u00ab\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u00bb)<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a84\/192\/125\/a8419212598b4fc1bdbaea19091a20a0.jpg\"\/><\/p>\n<p>  <i>\u041e\u043a\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0435:<\/i><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a38\/403\/f85\/a38403f8504e4d4591f0ad779c6b9c1b.jpg\"\/><\/p>\n<p>  <i>\u0414\u0438\u0430\u043b\u043e\u0433 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0430\u043c:<\/i><br \/>  (\u041a\u043e\u043c\u0430\u043d\u0434\u0430: \u00ab\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00bb\u2192\u00ab\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u00bb)<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9b0\/c56\/023\/9b0c560239e245628e6e254d1d35ef18.jpg\"\/><\/p>\n<p>  <i>\u0414\u0438\u0430\u043b\u043e\u0433 \u0441\u043c\u0435\u043d\u044b \u043f\u0430\u0440\u043e\u043b\u044f:<\/i><br \/>  (\u041a\u043e\u043c\u0430\u043d\u0434\u0430: \u00ab\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00bb\u2192\u00ab\u0421\u043c\u0435\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\u00bb)<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5cb\/5b7\/76d\/5cb5b776d2fd4e8792f53b86ea777d38.jpg\"\/><\/p>\n<p>  <i>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439:<\/i><br \/>  (\u041a\u043e\u043c\u0430\u043d\u0434\u0430: \u00ab\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00bb\u2192\u00ab\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439\u00bb)<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/045\/b48\/ebd\/045b48ebd9ce4c9a801df4497484d4d1.jpg\"\/><\/p>\n<p>  <i>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432:<\/i><br \/>  (\u041a\u043e\u043c\u0430\u043d\u0434\u044b: \u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u041d\u043e\u0432\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430\u00bb, \u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00bb, \u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c\u00bb)<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a79\/e9d\/56e\/a79e9d56e42d4a05a670637bc6182399.jpg\"\/><\/p>\n<p>  <i>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 (\u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438):<\/i><br \/>  (\u041a\u043e\u043c\u0430\u043d\u0434\u044b: \u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\u00bb, \u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00bb, \u00ab\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u00bb\u2192\u00ab\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c\u00bb)<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4a6\/a29\/c2d\/4a6a29c2de1649be9c8e3a3f0fb28c6a.jpg\"\/><\/p>\n<p>  <i>\u0414\u0438\u0430\u043b\u043e\u0433 \u0432\u044b\u0431\u043e\u0440\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0433\u0440\u0443\u043f\u043f: <\/i><br \/>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u0434\u0438\u0430\u043b\u043e\u0433\u0430\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (\u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b) \u0432 \u043d\u043e\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f47\/cf0\/9d8\/f47cf09d8069474ab88b88f2ee0e276f.jpg\"\/><\/p>\n<h1>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/h1>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: <br \/>  1. \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439). \u0421\u043e\u0441\u0442\u043e\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439). \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u0431\u0430\u0437\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439.<br \/>  2. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0421\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f (\u0434\u0435\u0440\u0435\u0432\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430) \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a). \u0412 \u0431\u0430\u0437\u0435 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0433\u0440\u0443\u043f\u043f (\u0432 \u043d\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0434\u0435\u0440\u0435\u0432\u043e \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430) \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0432 \u043d\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0441\u0430\u043c\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c\u0438).<\/p>\n<p>  \u0412 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b:<br \/>   \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u00abGROUPS\u00bb \u2014 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f;  <\/p>\n<table>\n<tr>\n<th>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f<\/th>\n<th>\u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u2013 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0443\u0437\u043b\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 (\u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f &gt;0).<\/td>\n<\/tr>\n<tr>\n<td>PGRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 \u0432 \u0435\u0434\u0438\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u00ab\u043a\u043e\u0440\u0435\u043d\u044c\u00bb \u0434\u0435\u0440\u0435\u0432\u0430. \u0421\u0430\u043c \u043a\u043e\u0440\u0435\u043d\u044c \u0432 \u0431\u0430\u0437\u0435 \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f (\u043e\u043d \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u2013 \u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c).<\/td>\n<\/tr>\n<tr>\n<td>GRNAME<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u0434\u0435\u0440\u0435\u0432\u0430. \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b) \u043d\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430\u0445 1\u0421.<\/td>\n<\/tr>\n<\/table>\n<p>   \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u00abCARDS\u00bb \u2014 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u2013 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438;  <\/p>\n<table>\n<tr>\n<th>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f<\/th>\n<th>\u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>CDID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u2013 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 (\u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f &gt;0).<\/td>\n<\/tr>\n<tr>\n<td>GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 (\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 GROUPS.GRID). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u044f\u0437\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0441 \u0434\u0435\u0440\u0435\u0432\u043e\u043c. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u00ab\u043a\u043e\u0440\u0435\u043d\u044c\u00bb \u0434\u0435\u0440\u0435\u0432\u0430 (\u0445\u043e\u0442\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 GROUPS \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 GRID=0 \u043d\u0435\u0442).<\/td>\n<\/tr>\n<tr>\n<td>GRNAME<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438. \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b) \u043d\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430\u0445 1\u0421.<\/td>\n<\/tr>\n<tr>\n<td>CDDESCRIPT<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u041f\u043e\u043b\u0435 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u00ab\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u00bb.<\/td>\n<\/tr>\n<tr>\n<td>CDCONTACTS<\/td>\n<td>BLOB (TEXT \u2013 1)<\/td>\n<td>\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0442\u0438\u043f\u0430 MEMO \u2013 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041a \u043d\u0435\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\u043c\u0438 (\u043a\u0430\u043a \u0443 CHAR \u0438 VARCHAR).<\/td>\n<\/tr>\n<tr>\n<td>CDNOTE<\/td>\n<td>BLOB (BINARY \u2013 0)<\/td>\n<td>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435, \u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 BLOB. \u0422\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442, \u043d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0444\u043e\u0440\u043c\u0430\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0435 \u043c\u044b, \u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d. \u041d\u0430 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c (\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\u043c\u0438) \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0435\u043a\u0441\u0442.<\/td>\n<\/tr>\n<tr>\n<td>CDIMAGE<\/td>\n<td>BLOB (BINARY \u2013 0)<\/td>\n<td>\u0417\u0434\u0435\u0441\u044c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0435 \u043a \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0430\u0439\u043b.<\/td>\n<\/tr>\n<\/table>\n<p>   \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u00abUSERS\u00bb \u2014 \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b;  <\/p>\n<table>\n<tr>\n<th>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f<\/th>\n<th>\u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>UID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/td>\n<\/tr>\n<tr>\n<td>UNAME<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u043b\u043e\u0433\u0438\u043d). \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b) \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044f (\u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u2013 \u0442.\u0435. \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u00abadmin\u00bb, \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u00abAdMiN\u00bb \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f).<\/td>\n<\/tr>\n<tr>\n<td>UPWD<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u041f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435, \u0442.\u043a. \u0444\u0443\u043d\u043a\u0446\u0438\u044f md5 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 FireBird, \u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432 1\u0421 \u0442\u043e\u0436\u0435 \u043e\u0431\u044a\u0435\u043c\u043d\u0430\u044f \u2013 \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u00ab\u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f\u00bb).<\/td>\n<\/tr>\n<tr>\n<td>URIGHTS<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u041f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u2013 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u0437 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u00ab0\u00bb \u0438 \u00ab1\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 (\u00ab0\u00bb) \u0438\u043b\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 (\u00ab1\u00bb) \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u0439 \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<br \/>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:<br \/>  -\u043f\u043e\u0437\u0438\u0446\u0438\u044f 1 \u2013 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435;<br \/>  -\u043f\u043e\u0437\u0438\u0446\u0438\u044f 2 \u2013 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435;<br \/>  -\u043f\u043e\u0437\u0438\u0446\u0438\u044f 3 \u2013 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435)  <\/td>\n<\/tr>\n<\/table>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0432 \u0431\u0430\u0437\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b:  <\/p>\n<table>\n<tr>\n<th>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/th>\n<th>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430<\/th>\n<th>\u0422\u0438\u043f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>SAVE_GROUP<\/td>\n<td colspan=\"3\">\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 (\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435) \u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u0431\u0430\u0437\u0443.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"7\"><\/td>\n<td colspan=\"3\"><b>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (0, \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0430\u0441\u044c \u0440\u0430\u043d\u0435\u0435)<\/td>\n<\/tr>\n<tr>\n<td>PGRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b<\/td>\n<\/tr>\n<tr>\n<td>GRNAME<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>RESULT<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b, \u0435\u0441\u043b\u0438 \u0435\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c;<br \/>  0 \u2014 \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430  <\/td>\n<\/tr>\n<tr>\n<td>ERRMSG<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \u0435\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 (RESULT=0)<\/td>\n<\/tr>\n<tr>\n<td>DELETE_GROUP<\/td>\n<td colspan=\"3\">\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u0437 \u0431\u0430\u0437\u044b.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"5\"><\/td>\n<td colspan=\"3\"><b>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>RESULT<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b, \u0435\u0441\u043b\u0438 \u0435\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c;<br \/>  0 \u2014 \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0430  <\/td>\n<\/tr>\n<tr>\n<td>ERRMSG<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \u0435\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 (RESULT=0)<\/td>\n<\/tr>\n<tr>\n<td>MOVE_GROUP_TO_GROUP<\/td>\n<td colspan=\"3\">\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u0432\u0441\u0435\u0433\u043e \u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e (\u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a) \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"6\"><\/td>\n<td colspan=\"3\"><b>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>SRC_GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438<\/td>\n<\/tr>\n<tr>\n<td>DST_GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>RESULT<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b (SRC_GRID), \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u0430;<br \/>  0 \u2014 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f (\u043e\u043d\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u0430)  <\/td>\n<\/tr>\n<tr>\n<td>ERRMSG<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \u0435\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 (RESULT=0)<\/td>\n<\/tr>\n<tr>\n<td>MOVE_GROUP_CONTENTS_TO_GROUP<\/td>\n<td colspan=\"3\">\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (\u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a) \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0430\u043c\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0435\u0436\u043d\u0435\u043c \u043c\u0435\u0441\u0442\u0435.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"6\"><\/td>\n<td colspan=\"3\"><b>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>SRC_GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438<\/td>\n<\/tr>\n<tr>\n<td>DST_GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>RESULT<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b (SRC_GRID), \u0435\u0441\u043b\u0438 \u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u044b\u043b\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u043e;<br \/>  0 \u2014 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f  <\/td>\n<\/tr>\n<tr>\n<td>ERRMSG<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \u0435\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 (RESULT=0)<\/td>\n<\/tr>\n<tr>\n<td>MOVE_CARD_TO_GROUP<\/td>\n<td colspan=\"3\">\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"6\"><\/td>\n<td colspan=\"3\"><b>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>SRC_CDID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438<\/td>\n<\/tr>\n<tr>\n<td>DST_GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>RESULT<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 (SRC_CDID), \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u0430;<br \/>   0 \u2014 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u043d\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f (\u043e\u043d\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u0430)  <\/td>\n<\/tr>\n<tr>\n<td>ERRMSG<\/td>\n<td>VARCHAR(255)<\/td>\n<td>\u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \u0435\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 (RESULT=0)<\/td>\n<\/tr>\n<tr>\n<td>TEST_GROUP_PARENT_HIERARCHY<\/td>\n<td colspan=\"3\">\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 PGRID \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432) \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u044b GRID \u0438\u043b\u0438 \u043d\u0435\u0442. \u0414\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"5\"><\/td>\n<td colspan=\"3\"><b>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>GRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 PGRID \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c<\/td>\n<\/tr>\n<tr>\n<td>PGRID<\/td>\n<td>INTEGER<\/td>\n<td>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u044b GRID \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/b><\/td>\n<\/tr>\n<tr>\n<td>RESULT<\/td>\n<td>SMALLINT<\/td>\n<td>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438:<br \/>  1 \u2014 \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 PGRID \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u044b GRID;<br \/>  0 \u2014 \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 PGRID \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u044b GRID  <\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430\u043c\u0438 (SAVE_CARD, DELETE_CARD) \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 (SAVE_USER, DELETE_USER) \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 1\u0421, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u0438\u0437 1\u0421 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u043d\u043e \u0438 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. <\/p>\n<h1>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435.<\/h1>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0435\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438:<br \/>   \u2014 <i>\u0433\u0440\u0443\u043f\u043f\u0430<\/i> \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 (\u043d\u0430\u0431\u043e\u0440 \u0433\u0440\u0443\u043f\u043f, \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0449\u0438\u0445 \u0434\u0435\u0440\u0435\u0432\u043e (\u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e) \u0433\u0440\u0443\u043f\u043f \u2013 \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043b\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b GROUPS);<br \/>   \u2014 <i>\u044d\u043b\u0435\u043c\u0435\u043d\u0442 (\u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430)<\/i> \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 (\u043d\u0430\u0431\u043e\u0440 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a \u2013 \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043b\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b CARDS);<br \/>   \u2014 <i>\u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c<\/i> \u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u043d\u0430\u0431\u043e\u0440 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u2013 \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043b\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b USERS) <\/p>\n<p>  \u041c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u043a\u043e\u0434\u0435 1\u0421 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438:<br \/>   \u2014 <i>BaseObj (\u0411\u0430\u0437\u043e\u0432\u0430\u044f\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u044c)<\/i> \u2013 \u043a\u043b\u0430\u0441\u0441 \u2013 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438\u0437 \u0434\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0431\u0449\u0438\u0435 \u043f\u043e\u043b\u044f \u0438 \u043c\u0435\u0442\u043e\u0434\u044b.<br \/>   \u2014 <i>ObjGroup (\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u0413\u0440\u0443\u043f\u043f\u0430)<\/i> \u2013 \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u043e\u0442 <i>BaseObj<\/i>, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u00ab<i>\u0433\u0440\u0443\u043f\u043f\u0430 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432<\/i>\u00bb.<br \/>   \u2014 <i>ObjCard (\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430)<\/i> \u2013 \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u043e\u0442 <i>BaseObj<\/i>, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u00ab<i>\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432<\/i>\u00bb.<br \/>   \u2014 <i>ObjUser (\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c)<\/i> \u2013 \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u043e\u0442 <i>BaseObj<\/i>, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u00ab<i>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/i>\u00bb.<br \/>   \u2014 <i>ObjSet (\u041d\u0430\u0431\u043e\u0440\u041e\u0431\u044a\u0435\u043a\u0442\u043e\u0432)<\/i> \u2013 \u0442\u043e\u0436\u0435 \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u043e\u0442 <i>BaseObj<\/i>, \u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e, \u0430 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0435\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430 (ObjGroup, ObjCard, ObjUser). \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. <\/p>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u0442\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 1\u0421 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043a\u043b\u0430\u0441\u0441\u043e\u0432<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \/\/ \u041a \u041b \u0410 \u0421 \u0421 \u042b    \u041f \u0420 \u0415 \u0414 \u0421 \u0422 \u0410 \u0412 \u041b \u042f \u042e \u0429 \u0418 \u0415    \u0421 \u0423 \u0429 \u041d \u041e \u0421 \u0422 \u0418    \u0421 \u0418 \u0421 \u0422 \u0415 \u041c \u042b \/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/   \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0411\u0430\u0437\u043e\u0432\u0430\u044f\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u044c (BaseObj)  \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f BaseObj_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tBaseObj = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \t\/\/ \u041e\u0431\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \tBaseObj.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ClassID&quot;, 0);      \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 (INT) \tBaseObj.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ChangeInfo&quot;, \u041b\u043e\u0436\u044c);\/\/ \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435\t \tBaseObj.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ErrMsg&quot;, &quot;&quot;);      \/\/ \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435 (STR) \tBaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_UNKNOWN;   \/\/ \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 BaseObj; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ClassID - \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \/\/    \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0430 - \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  (\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430) - \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f BaseObj_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(ClassID=0) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tBaseObj = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjGroup \t\tBaseObj = ObjGroup_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440() \t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjCard \t\tBaseObj = ObjCard_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440() \t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjUser \t\tBaseObj = ObjUser_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440() \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0415\u0441\u043b\u0438 BaseObj = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \t\tBaseObj = BaseObj_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 BaseObj; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u043e\u0440\u043e\u0436\u0434\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 BaseObj_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(BaseObj) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjGroup \t\tObjGroup_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(BaseObj) \t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjCard \t\tObjCard_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(BaseObj) \t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjUser \t\tObjUser_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(BaseObj) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 BaseObj_SetDefAttr(BaseObj) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tBaseObj.ErrMsg = &quot;&quot;; \t\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjGroup \t\tObjGroup_SetDefAttr(BaseObj) \t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjCard \t\tObjCard_SetDefAttr(BaseObj) \t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjUser \t\tObjUser_SetDefAttr(BaseObj) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 BaseObj2 \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 BaseObj1. \/\/ \u0412\u0441\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 BaseObj1 \u0431\u0443\u0434\u0443\u0442 \u0443\u0442\u0435\u0440\u044f\u043d\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  BaseObj2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 BaseObj_Assign(BaseObj1, BaseObj2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 (BaseObj1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 \t\t (BaseObj2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 \t\t (BaseObj1.ClassID = BaseObj2.ClassID) \u0418 \t\t (BaseObj_IsEqual(BaseObj1, BaseObj2) = \u041b\u043e\u0436\u044c) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjGroup \t\t\tObjGroup_Assign(BaseObj1, BaseObj2) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjCard \t\t\tObjCard_Assign(BaseObj1, BaseObj2) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjUser \t\t\tObjUser_Assign(BaseObj1, BaseObj2) \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0434\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  BaseObj2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 BaseObj2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0442\u043e \u0438 \/\/  \u0442\u0435\u043a\u0443\u0449\u0438\u0439 BaseObj1 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f BaseObj_IsEqual(BaseObj1, BaseObj2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t \t\u0415\u0441\u043b\u0438 (BaseObj1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 \t\t (BaseObj2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 \t\t (BaseObj1.ClassID = BaseObj2.ClassID) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjGroup \t\t\t\u0420\u0435\u0437 = ObjGroup_IsEqual(BaseObj1, BaseObj2) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjCard \t\t\t\u0420\u0435\u0437 = ObjCard_IsEqual(BaseObj1, BaseObj2) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjUser \t\t\t\u0420\u0435\u0437 = ObjUser_IsEqual(BaseObj1, BaseObj2) \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0434\u0432\u0443\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  BaseObj2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 BaseObj2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0447\u0442\u043e \u0438 \/\/  \u0442\u0435\u043a\u0443\u0449\u0438\u0439 BaseObj1 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f BaseObj_IsEqualKeys(BaseObj1, BaseObj2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t \t\u0415\u0441\u043b\u0438 (BaseObj1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 \t\t (BaseObj2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 \t\t (BaseObj1.ClassID = BaseObj2.ClassID) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjGroup \t\t\t\u0420\u0435\u0437 = ObjGroup_IsEqualKeys(BaseObj1, BaseObj2) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjCard \t\t\t\u0420\u0435\u0437 = ObjCard_IsEqualKeys(BaseObj1, BaseObj2) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj1.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjUser \t\t\t\u0420\u0435\u0437 = ObjUser_IsEqualKeys(BaseObj1, BaseObj2) \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 (\u043d\u0435\u0437\u043d\u0430\u0447\u0430\u0449\u0438\u043c\u0438), \/\/ \u0442.\u0435. \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0432 \u0411\u0414. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 BaseObj \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f BaseObj_IsKeyEmpty(BaseObj) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t \t\u0415\u0441\u043b\u0438 BaseObj &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjGroup \t\t\t\u0420\u0435\u0437 = ObjGroup_IsKeyEmpty(BaseObj) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjCard \t\t\t\u0420\u0435\u0437 = ObjCard_IsKeyEmpty(BaseObj) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjUser \t\t\t\u0420\u0435\u0437 = ObjUser_IsKeyEmpty(BaseObj) \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f BaseObj_GetErrorMsg(BaseObj) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 BaseObj.ErrMsg \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f BaseObj_GetChangeInfo(BaseObj) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 BaseObj.ChangeInfo \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \/\/ \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ChangeInfo - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 BaseObj_SetChangeInfo(BaseObj, ChangeInfo) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 BaseObj &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjGroup \t\t\tObjGroup_SetChangeInfo(BaseObj, ChangeInfo) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjCard \t\t\tObjCard_SetChangeInfo(BaseObj, ChangeInfo) \t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0422\u0438\u043f ObjUser \t\t\tObjUser_SetChangeInfo(BaseObj, ChangeInfo) \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 DS. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  BaseObj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  DS - \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 ADORecordSet \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438 \u041b\u043e\u0436\u044c, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f BaseObj_LoadFromDataSet(BaseObj, DS) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c;  \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0435\u0449\u0435 \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u044b \tBaseObj.ErrMsg = &quot;&quot;; \t \t\/\/ \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u044f \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \t\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjGroup \t\t\u0420\u0435\u0437 = ObjGroup_LoadFromDataSet(BaseObj, DS) \t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjCard \t\t\u0420\u0435\u0437 = ObjCard_LoadFromDataSet(BaseObj, DS) \t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 BaseObj.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0422\u0438\u043f ObjUser \t\t\u0420\u0435\u0437 = ObjUser_LoadFromDataSet(BaseObj, DS) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438   \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u041d\u0430\u0431\u043e\u0440\u041e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (ObjSet) - \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 BaseObj \/\/ (\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 - \u043f\u043e\u043b\u0435 ClassID \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 \u0442\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432,  \/\/ \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438)  \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjSet = BaseObj_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \t\/\/ \u041e\u0431\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430\u0431\u043e\u0440\u0430 \tObjSet.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ItemsList&quot;, \u041d\u043e\u0432\u044b\u0439 \u041c\u0430\u0441\u0441\u0438\u0432);   \/\/ \u041c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjSet; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ClassID - \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  (\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430) - \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(ClassID=0) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjSet = ObjSet_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \tObjSet.ClassID = ClassID; \t\/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430   \tObjSet_SetDefAttr(ObjSet); \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjSet; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjSet_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(ObjSet) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjSet_Clear(ObjSet)  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjSet_SetDefAttr(ObjSet) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjSet.ErrMsg = &quot;&quot; \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 Obj \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u043d\u0430\u0431\u043e\u0440 ObjSet. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043d\u0430\u0431\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \/\/  Obj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 Obj \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0430\u0431\u043e\u0440 ObjSet \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_TestItemForAdd(ObjSet, Obj) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c;\t\t\/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0435\u0449\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d\t \tObjSet.ErrMsg = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 Obj &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 ObjSet.ClassID = Obj.ClassID \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438 \t\t\t\u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 = \u041b\u043e\u0436\u044c; \t\t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u0421\u0443\u0449\u043d\u041d\u0430\u0431\u043e\u0440\u0430 \u0418\u0437 ObjSet.ItemsList \u0426\u0438\u043a\u043b \t\t\t\t\u0415\u0441\u043b\u0438 BaseObj_IsEqualKeys(\u0421\u0443\u0449\u043d\u041d\u0430\u0431\u043e\u0440\u0430, Obj) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\u0415\u0441\u043b\u0438 \u041d\u0415 \u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\tObjSet.ErrMsg = &quot;\u0422\u0430\u043a\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c&quot; \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\tObjSet.ErrMsg = &quot;\u0422\u0438\u043f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430\u0431\u043e\u0440\u0443&quot; \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u0418\u043d\u0430\u0447\u0435 \t\tObjSet.ErrMsg = &quot;\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d&quot; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t\t\t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b-\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_GetCount(ObjSet) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjSet.ItemsList.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e()  \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u043e\u0434 \u043d\u043e\u043c\u0435\u0440\u043e\u043c Index (\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441 0). \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  Index - \u043d\u043e\u043c\u0435\u0440 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 (\u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c Index) \u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \/\/  \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_GetItemByIndex(ObjSet, Index) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \tObjSet.ErrMsg = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 (Index &gt;= 0) \u0418 (Index &lt; ObjSet.ItemsList.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e()) \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = ObjSet.ItemsList[Index] \t\u0418\u043d\u0430\u0447\u0435 \t\tObjSet.ErrMsg = &quot;\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d&quot;; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u043e\u0434 \u043d\u043e\u043c\u0435\u0440\u043e\u043c Index (\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441 0), \/\/ \u043a\u043e\u043f\u0438\u0440\u0443\u044f \u0438\u0445 \u0438\u0437 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043d\u0430\u0431\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \/\/  Index - \u043d\u043e\u043c\u0435\u0440 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \/\/  Obj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438 \u041b\u043e\u0436\u044c, \u0435\u0441\u043b\u0438 \/\/  \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_SetItemToIndex(ObjSet, Index, Obj) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \tObjSet.ErrMsg = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 Obj &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 ObjSet.ClassID = Obj.ClassID \u0422\u043e\u0433\u0434\u0430 \t\t\t\u0415\u0441\u043b\u0438 (Index &gt;= 0) \u0418 (Index &lt; ObjSet.ItemsList.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e()) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \t\t\t\t\/\/ \u043f\u043e\u043b\u044f\u043c \t\t\t\t\u0415\u0441\u043b\u0438 BaseObj_IsKeyEmpty(Obj) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u042d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (\u0431\u0435\u0437 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439) - \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043d\u0430\u0431\u043e\u0440 \t\t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\u0415\u0441\u043b\u0438 BaseObj_IsEqualKeys(ObjSet.ItemsList[Index], Obj) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\/\/ \u0422\u0435\u0436\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f, \u0447\u0442\u043e \u0438 \u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \t\t\t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \t\t\t\t\t\t\u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 = \u041b\u043e\u0436\u044c; \t\t\t\t\t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u0421\u0443\u0449\u043d\u041d\u0430\u0431\u043e\u0440\u0430 \u0418\u0437 ObjSet.ItemsList \u0426\u0438\u043a\u043b \t\t\t\t\t\t\t\u0415\u0441\u043b\u0438 BaseObj_IsEqualKeys(\u0421\u0443\u0449\u043d\u041d\u0430\u0431\u043e\u0440\u0430, Obj) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\t\u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u041d\u0415 \u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\tObjSet.ErrMsg = &quot;\u041d\u0430\u0431\u043e\u0440 \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c&quot; \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438;\t\t \t\t\t\t\t\t \t\t\t\t\/\/ \u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \t\t\t\t\u0415\u0441\u043b\u0438 \u0420\u0435\u0437 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0412\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u044b - \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \t\t\t\t\tBaseObj_Assign(ObjSet.ItemsList[Index], Obj) \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\tObjSet.ErrMsg = &quot;\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435&quot; \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\tObjSet.ErrMsg = &quot;\u0422\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430\u0431\u043e\u0440\u0443&quot; \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u0418\u043d\u0430\u0447\u0435 \t\tObjSet.ErrMsg = &quot;\u041e\u0431\u044a\u0435\u043a\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d&quot; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 Obj \u0432 \u043d\u0430\u0431\u043e\u0440. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 \/\/  Obj - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_Add(ObjSet, Obj) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \tObjSet.ErrMsg = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 Obj &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \t\t\u0415\u0441\u043b\u0438 ObjSet_TestItemForAdd(ObjSet, Obj) \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d \t\t\tObjSet.ItemsList.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(Obj); \t\t\tObjSet.ChangeInfo = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430  \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u0418\u043d\u0430\u0447\u0435 \t\tObjSet.ErrMsg = &quot;\u041e\u0431\u044a\u0435\u043a\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d&quot; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  Index - \u0438\u043d\u0434\u0435\u043a\u0441 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 (\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441 0) \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0430\u0439\u0434\u0435\u043d \u0438 \u0443\u0434\u0430\u043b\u0435\u043d \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_Delete(ObjSet, Index) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \tObjSet.ErrMsg = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 (Index &gt;= 0) \u0418 (Index &lt; ObjSet.ItemsList.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e()) \u0422\u043e\u0433\u0434\u0430 \t\tBaseObj_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(ObjSet.ItemsList[Index]); \t\tObjSet.ItemsList.\u0423\u0434\u0430\u043b\u0438\u0442\u044c(Index); \t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u0418\u043d\u0430\u0447\u0435 \t\tObjSet.ErrMsg = &quot;\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d&quot;; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjSet_Clear(ObjSet) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 ObjSet.ItemsList.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e() &gt; 0 \u0422\u043e\u0433\u0434\u0430 \t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e Item \u0418\u0437 ObjSet.ItemsList \u0426\u0438\u043a\u043b \t\t\tBaseObj_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(Item); \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\tObjSet.ItemsList.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\tObjSet.ChangeInfo = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0438\u043b\u0438 \u0432\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_GetChangeInfo(ObjSet) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0415\u0441\u043b\u0438 \u041d\u0415 ObjSet.ChangeInfo \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e Item \u0418\u0437 ObjSet.ItemsList \u0426\u0438\u043a\u043b \t\t\t\u0415\u0441\u043b\u0438 BaseObj_GetChangeInfo(Item) \u0422\u043e\u0433\u0434\u0430 \t\t\t\tObjSet.ChangeInfo = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438;  \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442\tObjSet.ChangeInfo \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 ChangeInfo \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ChangeInfo - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjSet_SetChangeInfo(ObjSet, ChangeInfo) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \tObjSet.ChangeInfo = ChangeInfo; \t\u0415\u0441\u043b\u0438 \u041d\u0435 ChangeInfo \u0422\u043e\u0433\u0434\u0430 \t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e Item \u0418\u0437 ObjSet.ItemsList \u0426\u0438\u043a\u043b \t\t\tBaseObj_SetChangeInfo(Item, ChangeInfo) \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435 \/\/ \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0438\u043b\u0438 \u0432\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_GetErrorMsg(ObjSet) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 ObjSet.ErrMsg = &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0435\u0441\u0442\u044c \t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e Item \u0418\u0437 ObjSet.ItemsList \u0426\u0438\u043a\u043b \t\t\t\u0415\u0441\u043b\u0438 Item.ErrMsg &lt;&gt; &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\t\tObjSet.ErrMsg = Item.ErrMsg; \t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438;  \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442\tObjSet.ErrMsg \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0438 \u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_TestSet(ObjSet) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c;\t\t\/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0435\u0449\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d\t \tObjSet.ErrMsg = &quot;&quot;; \t \t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0442\u0438\u043f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0431\u043e\u0440\u0430 \t\u0415\u0441\u043b\u0438 (ObjSet.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP) \u0418\u041b\u0418 \t\t (ObjSet.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD) \u0418\u041b\u0418 \t\t (ObjSet.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER) \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0430\u0431\u043e\u0440\u0430 \t\t\u0414\u043b\u044f \u0418\u043d\u04341=0 \u041f\u043e ObjSet.ItemsList.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e()-1 \u0426\u0438\u043a\u043b \t\t\t\u0421\u0443\u0449\u043d1 = ObjSet.ItemsList[\u0418\u043d\u04341]; \t\t\t\u0415\u0441\u043b\u0438 ObjSet.ClassID = \u0421\u0443\u0449\u043d1.ClassID \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 = \u041b\u043e\u0436\u044c; \t\t\t\t\u0414\u043b\u044f \u0418\u043d\u04342=\u0418\u043d\u04341+1 \u041f\u043e ObjSet.ItemsList.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e()-1 \u0426\u0438\u043a\u043b \t\t\t\t\t\u0421\u0443\u0449\u043d2 = ObjSet.ItemsList[\u0418\u043d\u04342]; \t\t\t\t\t\u0415\u0441\u043b\u0438 BaseObj_IsEqualKeys(\u0421\u0443\u0449\u043d1, \u0421\u0443\u0449\u043d2) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\t\u0415\u0441\u043b\u0438 \u0424\u043b\u0430\u0433\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u041f\u043e\u041a\u043b\u044e\u0447\u0443 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\tObjSet.ErrMsg = &quot;\u0423 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440&quot;; \t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u0422\u0438\u043f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0438\u043f\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0430 \t\t\t\tObjSet.ErrMsg = &quot;\u0422\u0438\u043f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0438\u043f\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0431\u043e\u0440\u0430&quot; \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u0418\u043d\u0430\u0447\u0435 \t\t\/\/ \u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0442\u0438\u043f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0431\u043e\u0440\u0430 \t\tObjSet.ErrMsg = &quot;\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0442\u0438\u043f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0431\u043e\u0440\u0430&quot; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \t\u0415\u0441\u043b\u0438 ObjSet.ErrMsg = &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437\t \t\t\t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 DS. \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f. \/\/ \u0417\u0443\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \/\/ (\u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e) \u0438 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u0440\u043e\u043a. \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  DS - \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 ADORecordSet \/\/  RowCount - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \/\/             (\u0435\u0441\u043b\u0438 RowCount=-1, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0446\u0430 \/\/             \u043d\u0430\u0431\u043e\u0440\u0430) \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_LoadFromDataSet(ObjSet, DS, RowCount=-1) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = 0; \tObjSet.ErrMsg = &quot;&quot;; \t \tObjSet_Clear(ObjSet); \t\u0415\u0441\u043b\u0438 ObjSet.ErrMsg = &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = ObjSet_AddFromDataSet(ObjSet, DS, RowCount) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 DS, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0438\u0445 \u043a \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u043d\u0430\u0431\u043e\u0440\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \/\/ \u0417\u0443\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \/\/ (\u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e) \u0438 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u0440\u043e\u043a. \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjSet - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  DS - \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 ADORecordSet \/\/  RowCount - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \/\/             (\u0435\u0441\u043b\u0438 RowCount=-1, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0446\u0430 \/\/             \u043d\u0430\u0431\u043e\u0440\u0430) \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjSet_AddFromDataSet(ObjSet, DS, RowCount=-1) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = 0; \tObjSet.ErrMsg = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 RowCount &lt;&gt; 0 \u0422\u043e\u0433\u0434\u0430 \t\t\u041f\u043e\u043a\u0430 (DS.EOF = 0) \u0418 ((RowCount &lt; 0) \u0418\u041b\u0418 (\u0420\u0435\u0437 &lt; RowCount)) \u0426\u0438\u043a\u043b \t\t\t\/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \t\t\tObj = BaseObj_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(ObjSet.ClassID); \t\t\t\u0415\u0441\u043b\u0438 Obj &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u0435\u0439 \t\t\t\t\u0415\u0441\u043b\u0438 BaseObj_LoadFromDataSet(Obj, DS) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0443\u0434\u0430\u043b\u043e\u0441\u044c - \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043d\u0430\u0431\u043e\u0440 \t\t\t\t\t\u0415\u0441\u043b\u0438 ObjSet_Add(ObjSet, Obj) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\/\/ \u0423\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043d\u0430\u0431\u043e\u0440 \t\t\t\t\t\t\u0420\u0435\u0437 = \u0420\u0435\u0437 + 1 \t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \t\t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\/\/ \u0421\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u044f \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c - \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \t\t\t\t\tObjSet.ErrMsg = Obj.ErrMsg; \t\t\t\t\tBaseObj_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(Obj); \t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \t\t\t\tObjSet.ErrMsg = &quot;\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438&quot; \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\/\/ \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \t\t\tDS.MoveNext(); \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438   \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0421\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u0413\u0440\u0443\u043f\u043f\u0430 (ObjGroup)  \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjGroup_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjGroup = BaseObj_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \tObjGroup.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP;  \/\/ \u0422\u0438\u043f ObjGroup \t\/\/ \u041e\u0431\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \tObjGroup.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;GRID&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);   \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b (INT) \tObjGroup.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;PGRID&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);  \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (INT) \tObjGroup.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;GRName&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e); \/\/ \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b (STR) \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjGroup; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  (\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430) - \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjGroup_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjGroup = ObjGroup_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \t\/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430   \tObjGroup_SetDefAttr(ObjGroup); \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjGroup; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjGroup_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(ObjGroup) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjGroup_SetDefAttr(ObjGroup) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjGroup.GRID = 0; \tObjGroup.PGRID = 0; \tObjGroup.GRName = &quot;&quot;;  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 ObjGroup2 \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjGroup1. \/\/ \u0412\u0441\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 ObjGroup1 \u0431\u0443\u0434\u0443\u0442 \u0443\u0442\u0435\u0440\u044f\u043d\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjGroup2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjGroup_Assign(ObjGroup1, ObjGroup2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 (ObjGroup1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjGroup2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjGroup_IsEqual(ObjGroup1, ObjGroup2) = \u041b\u043e\u0436\u044c) \u0422\u043e\u0433\u0434\u0430 \t\tObjGroup1.GRID   = ObjGroup2.GRID; \t\tObjGroup1.PGRID  = ObjGroup2.PGRID; \t\tObjGroup1.GRName = ObjGroup2.GRName;  \t\tObjGroup1.ChangeInfo = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjGroup2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0442\u043e \u0438 \/\/ \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjGroup1 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjGroup2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjGroup_IsEqual(ObjGroup1, ObjGroup2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tIsEqual = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (ObjGroup1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjGroup2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 (ObjGroup2.GRID   = ObjGroup1.GRID) \u0418 \t\t\t (ObjGroup2.PGRID  = ObjGroup1.PGRID) \u0418 \t\t\t (ObjGroup2.GRName = ObjGroup1.GRName) \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEqual = \u0418\u0441\u0442\u0438\u043d\u0430  \/\/ \u0412\u0441\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEqual \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0434\u0432\u0443\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjGroup2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjGroup2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0447\u0442\u043e \u0438 \/\/  \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjGroup1 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjGroup_IsEqualKeys(ObjGroup1, ObjGroup2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \tIsEqual = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (ObjGroup1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjGroup2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 ((ObjGroup2.GRID = ObjGroup1.GRID) \u0418 (ObjGroup1.GRID &gt; 0)) \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEqual = \u0418\u0441\u0442\u0438\u043d\u0430  \/\/ \u0412\u0441\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEqual \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 (\u043d\u0435\u0437\u043d\u0430\u0447\u0430\u0449\u0438\u043c\u0438), \/\/ \u0442.\u0435. \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0432 \u0411\u0414. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjGroup \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjGroup_IsKeyEmpty(ObjGroup) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t \tIsEmpty = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 ObjGroup &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 ObjGroup.GRID &lt;= 0 \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEmpty = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEmpty \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/\tGRID - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b \/\/\tPGRID - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \/\/\tGRName - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjGroup_SetAttr(ObjGroup, GRID, PGRID, GRName) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\/\/ \u0417\u0430\u043d\u043e\u0441\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c, \t\/\/ \u0435\u0441\u0442\u044c \u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445  \tTmpObjGroup = ObjGroup_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(); \t \tTmpObjGroup.GRID = GRID; \tTmpObjGroup.PGRID = PGRID; \tTmpObjGroup.GRName = GRName;  \tObjGroup_Assign(ObjGroup, TmpObjGroup); \tObjGroup_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(TmpObjGroup); \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f  \/\/ \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ChangeInfo - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjGroup_SetChangeInfo(ObjGroup, ChangeInfo) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjGroup.ChangeInfo = ChangeInfo \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 DS. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjGroup - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  DS - \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 ADORecordSet \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438 \u041b\u043e\u0436\u044c, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjGroup_LoadFromDataSet(ObjGroup, DS) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c;  \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0435\u0449\u0435 \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u044b \tObjGroup.ErrMsg = &quot;&quot;; \t \t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\tObjGroup.GRID   = DS.Fields(&quot;GRID&quot;).Value; \t\tObjGroup.PGRID  = DS.Fields(&quot;PGRID&quot;).Value; \t\tObjGroup.GRName = DS.Fields(&quot;GRNAME&quot;).Value; \t\t \t\tObjGroup_SetChangeInfo(ObjGroup, \u041b\u043e\u0436\u044c); \/\/ \u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0442.\u043a. \t\t                                        \/\/ \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u0431\u0430\u0437\u0435 \t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430;  \/\/ \u041f\u043e\u043b\u044f \u0441\u0447\u0438\u0442\u0430\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \t\tObjGroup.ErrMsg = \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u041e\u0431\u041e\u0448\u0438\u0431\u043a\u0435().\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435; \t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438   \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0421\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 (ObjCard)  \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjCard_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjCard = BaseObj_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \tObjCard.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD;  \/\/ \u0422\u0438\u043f ObjCard \t\/\/ \u041e\u0431\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;CDID&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);   \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 (INT) \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;GRID&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);   \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b (INT) \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;CDName&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e); \/\/ \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 (STR) \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;CDDescript&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e); \/\/ \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 (STR) \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;CDContacts&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e); \/\/ \u041a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f (STR) \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;CDNote&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e); \/\/ \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 (STR) \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;CDImage&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);\/\/ \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430) \t\/\/ \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f, \u043e\u0442\u043c\u0435\u0447\u0430\u044e\u0449\u0438\u0435 \u0444\u0430\u043a\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 BLOB-\u043f\u043e\u043b\u044f\u0445 \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ChangeCDContacts&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);\/\/ \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043f\u043e\u043b\u0435 CDContacts \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ChangeCDNote&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);    \/\/ \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043f\u043e\u043b\u0435 CDNote \tObjCard.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ChangeCDImage&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);   \/\/ \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043f\u043e\u043b\u0435 CDImage \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjCard; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  (\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430) - \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjCard_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjCard = ObjCard_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \t\/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430   \tObjCard_SetDefAttr(ObjCard); \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjCard; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjCard_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(ObjCard) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjCard_SetDefAttr(ObjCard) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjCard.CDID = 0; \tObjCard.GRID = 0; \tObjCard.CDName = &quot;&quot;; \tObjCard.CDDescript = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \tObjCard.CDContacts = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \tObjCard.CDNote = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \tObjCard.CDImage = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \tObjCard.ChangeCDContacts = \u041b\u043e\u0436\u044c; \tObjCard.ChangeCDNote = \u041b\u043e\u0436\u044c; \tObjCard.ChangeCDImage = \u041b\u043e\u0436\u044c;  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 ObjCard2 \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjCard1. \/\/ \u0412\u0441\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 ObjCard1 \u0431\u0443\u0434\u0443\u0442 \u0443\u0442\u0435\u0440\u044f\u043d\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjCard2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjCard_Assign(ObjCard1, ObjCard2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 (ObjCard1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjCard2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjCard_IsEqual(ObjCard1, ObjCard2) = \u041b\u043e\u0436\u044c) \u0422\u043e\u0433\u0434\u0430 \t\tObjCard1.CDID       = ObjCard2.CDID; \t\tObjCard1.GRID       = ObjCard2.GRID; \t\tObjCard1.CDName     = ObjCard2.CDName; \t\tObjCard1.CDDescript = ObjCard2.CDDescript; \t\t\u0415\u0441\u043b\u0438 ObjCard1.CDContacts &lt;&gt; ObjCard2.CDContacts \u0422\u043e\u0433\u0434\u0430 \t\t\tObjCard1.CDContacts = ObjCard2.CDContacts; \t\t\tObjCard1.ChangeCDContacts = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\u0415\u0441\u043b\u0438 ObjCard1.CDNote &lt;&gt; ObjCard2.CDNote \u0422\u043e\u0433\u0434\u0430 \t\t\tObjCard1.CDNote = ObjCard2.CDNote; \t\t\tObjCard1.ChangeCDNote = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\u0415\u0441\u043b\u0438 \u041d\u0415 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\u0420\u0430\u0432\u043d\u044b(ObjCard1.CDImage, ObjCard2.CDImage) \u0422\u043e\u0433\u0434\u0430\t \t\t\tObjCard1.CDImage= ObjCard2.CDImage; \t\t\tObjCard1.ChangeCDImage = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438;  \t\tObjCard1.ChangeInfo = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjCard2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0442\u043e \u0438 \/\/ \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjCard1 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjCard2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjCard_IsEqual(ObjCard1, ObjCard2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tIsEqual = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (ObjCard1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjCard2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 (ObjCard2.CDID       = ObjCard1.CDID) \u0418 \t\t\t (ObjCard2.GRID       = ObjCard1.GRID) \u0418 \t\t\t (ObjCard2.CDName     = ObjCard1.CDName) \u0418 \t\t\t (ObjCard2.CDDescript = ObjCard1.CDDescript) \u0418 \t\t\t (ObjCard2.CDContacts = ObjCard1.CDContacts) \u0418 \t\t\t (ObjCard2.CDNote     = ObjCard1.CDNote) \u0418 \t\t\t \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\u0420\u0430\u0432\u043d\u044b(ObjCard2.CDImage, ObjCard1.CDImage) \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEqual = \u0418\u0441\u0442\u0438\u043d\u0430  \/\/ \u0412\u0441\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEqual \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0434\u0432\u0443\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjCard2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjCard2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0447\u0442\u043e \u0438 \/\/  \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjCard1 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjCard_IsEqualKeys(ObjCard1, ObjCard2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \tIsEqual = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (ObjCard1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjCard2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 ((ObjCard2.CDID = ObjCard1.CDID) \u0418 (ObjCard1.CDID &gt; 0)) \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEqual = \u0418\u0441\u0442\u0438\u043d\u0430  \/\/ \u0412\u0441\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEqual \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 (\u043d\u0435\u0437\u043d\u0430\u0447\u0430\u0449\u0438\u043c\u0438), \/\/ \u0442.\u0435. \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0432 \u0411\u0414. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjCard \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjCard_IsKeyEmpty(ObjCard) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t \tIsEmpty = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 ObjCard &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 ObjCard.CDID &lt;= 0 \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEmpty = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEmpty \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/\tCDID - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \/\/\tGRID - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b \/\/\tGRName - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \/\/  CDDescript - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \/\/  CDContacts - \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \/\/  CDNote     - \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \/\/  CDImage    - \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjCard_SetAttr(ObjCard, CDID, GRID, CDName,  \t\t\t\t\t\t  CDDescript = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e,  \t\t\t\t\t\t  CDContacts = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e,  \t\t\t\t\t\t  CDNote = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \t\t\t\t\t\t  CDImage = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t   \t\/\/ \u0417\u0430\u043d\u043e\u0441\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c, \t\/\/ \u0435\u0441\u0442\u044c \u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445  \tTmpObjCard = ObjCard_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(); \t \tTmpObjCard.CDID       = CDID; \tTmpObjCard.GRID       = GRID; \tTmpObjCard.CDName     = CDName; \t\u0415\u0441\u043b\u0438 CDDescript &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\tTmpObjCard.CDDescript = CDDescript; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\u0415\u0441\u043b\u0438 CDContacts &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\tTmpObjCard.CDContacts = CDContacts; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\u0415\u0441\u043b\u0438 CDNote &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\tTmpObjCard.CDNote = CDNote \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\u0415\u0441\u043b\u0438 CDImage &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\tTmpObjCard.CDImage = CDImage; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438;  \tObjCard_Assign(ObjCard, TmpObjCard); \tObjCard_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(TmpObjCard);  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f  \/\/ \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ChangeInfo - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjCard_SetChangeInfo(ObjCard, ChangeInfo) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjCard.ChangeInfo = ChangeInfo; \t\u0415\u0441\u043b\u0438 ChangeInfo = \u041b\u043e\u0436\u044c \u0422\u043e\u0433\u0434\u0430 \t\tObjCard.ChangeCDContacts = \u041b\u043e\u0436\u044c; \t\tObjCard.ChangeCDNote = \u041b\u043e\u0436\u044c; \t\tObjCard.ChangeCDImage = \u041b\u043e\u0436\u044c \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 DS. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjCard - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  DS - \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 ADORecordSet \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438 \u041b\u043e\u0436\u044c, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjCard_LoadFromDataSet(ObjCard, DS) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c;  \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0435\u0449\u0435 \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u044b \tObjCard.ErrMsg = &quot;&quot;; \t \t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\tObjCard.CDID       = DS.Fields(&quot;CDID&quot;).Value; \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\tObjCard.GRID       = DS.Fields(&quot;GRID&quot;).Value; \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\tObjCard.CDName     = DS.Fields(&quot;CDNAME&quot;).Value; \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\tObjCard.CDDescript = DS.Fields(&quot;CDDESCRIPT&quot;).Value; \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\tObjCard.CDContacts = DS.Fields(&quot;CDCONTACTS&quot;).Value; \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\tCDNoteArray\t\t   = DS.Fields(&quot;CDNOTE&quot;).Value; \t\t\tObjCard.CDNote     = COMSafeArrayWIN1251_\u0412\u0421\u0442\u0440\u043e\u043a\u0443UTF8(CDNoteArray); \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\tCDImageArray\t   = DS.Fields(&quot;CDIMAGE&quot;).Value; \t\t\tObjCard.CDImage    = COMSafeArray_\u0412\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0443(CDImageArray) \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\t \t\tObjCard_SetChangeInfo(ObjCard, \u041b\u043e\u0436\u044c); \/\/ \u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0442.\u043a. \t\t                                      \/\/ \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u0431\u0430\u0437\u0435 \t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430;  \/\/ \u041f\u043e\u043b\u044f \u0441\u0447\u0438\u0442\u0430\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \t\tObjCard.ErrMsg = \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u041e\u0431\u041e\u0448\u0438\u0431\u043a\u0435().\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435; \t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438;  \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438   \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0421\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c (ObjUser)  \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjUser_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjUser = BaseObj_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \tObjUser.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_USER;  \/\/ \u0422\u0438\u043f ObjUser \t\/\/ \u041e\u0431\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \tObjUser.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;UID&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);     \/\/ \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (INT) \tObjUser.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;UName&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);   \/\/ \u041b\u043e\u0433\u0438\u043d (STR) \tObjUser.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;UPwd&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e);    \/\/ \u041f\u0430\u0440\u043e\u043b\u044c (STR) \tObjUser.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;URights&quot;, \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e); \/\/ \u041f\u0440\u0430\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (STR) \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjUser; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  (\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430) - \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjUser_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjUser = ObjUser_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \t\/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430   \tObjUser_SetDefAttr(ObjUser); \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ObjUser; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjUser_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(ObjUser) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjUser_SetDefAttr(ObjUser) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjUser.UID = 0; \tObjUser.UName = &quot;&quot;; \tObjUser.UPwd = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \tObjUser.URights = &quot;&quot;;  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 ObjUser2 \u0432 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjUser1. \/\/ \u0412\u0441\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 ObjUser1 \u0431\u0443\u0434\u0443\u0442 \u0443\u0442\u0435\u0440\u044f\u043d\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjUser2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjUser_Assign(ObjUser1, ObjUser2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 (ObjUser1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjUser2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjUser_IsEqual(ObjUser1, ObjUser2) = \u041b\u043e\u0436\u044c) \u0422\u043e\u0433\u0434\u0430 \t\tObjUser1.UID     = ObjUser2.UID; \t\tObjUser1.UName   = ObjUser2.UName; \t\tObjUser1.UPwd    = ObjUser2.UPwd; \t\tObjUser1.URights = ObjUser2.URights;  \t\tObjUser1.ChangeInfo = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjUser2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0442\u043e \u0438 \/\/ \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjUser1 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjUser2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjUser_IsEqual(ObjUser1, ObjUser2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tIsEqual = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (ObjUser1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjUser2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 (ObjUser2.UID     = ObjUser1.UID) \u0418 \t\t\t (ObjUser2.UName   = ObjUser1.UName) \u0418 \t\t\t (ObjUser2.UPwd    = ObjUser1.UPwd) \u0418 \t\t\t IsEqualUserRights(ObjUser2.URights, ObjUser1.URights) \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEqual = \u0418\u0441\u0442\u0438\u043d\u0430  \/\/ \u0412\u0441\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEqual \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0434\u0432\u0443\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser1 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ObjUser2 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjUser2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0447\u0442\u043e \u0438 \/\/  \u0442\u0435\u043a\u0443\u0449\u0438\u0439 ObjUser1 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjUser_IsEqualKeys(ObjUser1, ObjUser2) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \tIsEqual = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (ObjUser1 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (ObjUser2 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 ((ObjUser2.UID = ObjUser1.UID) \u0418 (ObjUser1.UID &gt; 0)) \u0418\u041b\u0418 \t\t\t (\u0412\u0420\u0435\u0433(ObjUser2.UName) = \u0412\u0420\u0435\u0433(ObjUser1.UName)) \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEqual = \u0418\u0441\u0442\u0438\u043d\u0430  \/\/ \u0412\u0441\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEqual \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 (\u043d\u0435\u0437\u043d\u0430\u0447\u0430\u0449\u0438\u043c\u0438), \/\/ \u0442.\u0435. \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0432 \u0411\u0414. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 ObjUser \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjUser_IsKeyEmpty(ObjUser) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t \tIsEmpty = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 ObjUser &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 (ObjUser.UID &lt;= 0) \u0418\u041b\u0418 \t\t\t (\u0421\u043e\u043a\u0440\u041b\u041f(ObjUser) = &quot;&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\tIsEmpty = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 IsEmpty \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/\tUID - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \/\/\tUName - \u043b\u043e\u0433\u0438\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \/\/\tUPwd - \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \/\/\tURights - \u043f\u0440\u0430\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjUser_SetAttr(ObjUser, UID, UName, UPwd, URights) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\/\/ \u0417\u0430\u043d\u043e\u0441\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c, \t\/\/ \u0435\u0441\u0442\u044c \u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445  \tTmpObjUser = ObjUser_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(); \t \tTmpObjUser.UID = UID; \tTmpObjUser.UName = UName; \tTmpObjUser.UPwd = UPwd; \tTmpObjUser.URights = URights;  \tObjUser_Assign(ObjUser, TmpObjUser); \tObjUser_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(TmpObjUser);  \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f  \/\/ \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  ChangeInfo - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 ObjUser_SetChangeInfo(ObjUser, ChangeInfo) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tObjUser.ChangeInfo = ChangeInfo \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 DS. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  ObjUser - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  DS - \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 ADORecordSet \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438 \u041b\u043e\u0436\u044c, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f ObjUser_LoadFromDataSet(ObjUser, DS) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c;  \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0435\u0449\u0435 \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u044b \tObjUser.ErrMsg = &quot;&quot;; \t \t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\tObjUser.UID     = DS.Fields(&quot;UID&quot;).Value; \t\tObjUser.UName   = DS.Fields(&quot;UNAME&quot;).Value; \t\t\/\/ObjUser.UPwd  = DS.Fields(&quot;UPWD&quot;).Value;   \/\/ \u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u0440\u043e\u043b\u044c \t\tObjUser.UPwd    = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t\tObjUser.URights = DS.Fields(&quot;URIGHTS&quot;).Value; \t\t\t \t\tObjUser_SetChangeInfo(ObjUser, \u041b\u043e\u0436\u044c); \/\/ \u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0442.\u043a. \t\t                                      \/\/ \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u0431\u0430\u0437\u0435 \t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430;  \/\/ \u041f\u043e\u043b\u044f \u0441\u0447\u0438\u0442\u0430\u043d\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \t\tObjUser.ErrMsg = \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u041e\u0431\u041e\u0448\u0438\u0431\u043a\u0435().\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435; \t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h1>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f ADO.<\/h1>\n<p>  \u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0430\u0437\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a 1\u0421 \u2013 \u00ab<i>Microsoft ADO<\/i>\u00bb. \u0418 \u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0440\u0430\u0437\u0443\u043c\u043d\u043e, \u0442.\u043a. \u0434\u0430\u043d\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0441\u0430\u043c\u0430\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u0441 Windows. \u042d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e 1\u0421 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u00ab<i>Visual Studio<\/i>\u00bb. \u042d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b <i>Delphi<\/i> \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u043a \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0411\u0414. \u0423 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0432\u044b\u0431\u043e\u0440 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0431\u043e\u043b\u0435\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d. \u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c ADO \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0432\u0443\u044e \u044f \u043d\u0435 \u0431\u0443\u0434\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u043e\u0441\u044c, \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 10-15 \u043b\u0435\u0442. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0438 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043d\u0430\u043c \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 MSDN).  <\/p>\n<table>\n<tr>\n<th>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043c\u0435\u0442\u043e\u0434\u044b<\/th>\n<\/tr>\n<tr>\n<td>Connection<\/td>\n<td>\u041e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/td>\n<td><b>State<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2014 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0438\u043b\u0438 \u043d\u0435\u0442);<\/p>\n<p>  <b>Open<\/b> (\u043c\u0435\u0442\u043e\u0434) \u2014 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435;<br \/>  <b>Close<\/b> (\u043c\u0435\u0442\u043e\u0434) \u2013 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 \u0431\u0430\u0437\u044b   <\/td>\n<\/tr>\n<tr>\n<td>Command<\/td>\n<td>\u041e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 (\u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b) \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (Connection).<\/td>\n<td><b>ActiveConnection<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u0432\u044f\u0437\u0430\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434;<br \/>  <b>CommandType<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0438\u043f \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u0438\u043f \u2013 \u00abSQL-\u0437\u0430\u043f\u0440\u043e\u0441\u00bb);<br \/>  <b>CommandText<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2013 \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430);<br \/>  <b>Parameters<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u0437\u0430\u043f\u0440\u043e\u0441\u0430) \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0430\u0437\u0443;<\/p>\n<p>  <b>Execute<\/b> (\u043c\u0435\u0442\u043e\u0434) \u2013 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 (\u0437\u0430\u043f\u0440\u043e\u0441). \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445;<br \/>  <b>CreateParameter<\/b> (\u043c\u0435\u0442\u043e\u0434) \u2013 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u0437\u0430\u043f\u0440\u043e\u0441\u0430)  <\/td>\n<\/tr>\n<tr>\n<td>Recordset<\/td>\n<td>\u041d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0442\u0430\u0431\u043b\u0438\u0446\u0430), \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/td>\n<td><b>State<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0438\u043b\u0438 \u043d\u0435\u0442);<br \/>  <b>EOF<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u043a\u043e\u043d\u0446\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0441\u0442\u043e\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442);<br \/>  <b>Fields<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u2013 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430;<\/p>\n<p>  <b>MoveNext<\/b> (\u043c\u0435\u0442\u043e\u0434) \u2013 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0446\u0430 \u043d\u0430\u0431\u043e\u0440\u0430;<br \/>  <b>Close<\/b> (\u043c\u0435\u0442\u043e\u0434) \u2013 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445  <\/td>\n<\/tr>\n<tr>\n<td>Fields<\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0435\u0439, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u043b\u044f\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/td>\n<td><b>Fields(FieldInd)<\/b>, <b>Fields(FieldName)<\/b> \u2013 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044e Field \u043f\u043e \u0435\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 (\u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0443) \u0438\u043b\u0438 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 (\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044f)<\/td>\n<\/tr>\n<tr>\n<td>Field<\/td>\n<td>\u041f\u043e\u043b\u0435, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/td>\n<td><b>Value<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f (\u0434\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 Recordset)<\/td>\n<\/tr>\n<tr>\n<td>Parameters<\/td>\n<td>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0441\u043e\u0431\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u2013 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0431\u0430\u0437\u0443.<\/td>\n<td><b>Count<\/b> (\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e) \u2013 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438;<\/p>\n<p>  <b>Append<\/b> (\u043c\u0435\u0442\u043e\u0434) \u2013 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0432 \u043a\u043e\u043d\u0435\u0446 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438;<br \/>  <b>Delete<\/b> (\u043c\u0435\u0442\u043e\u0434) \u2013 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438  <\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u043e\u043b\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 ADO, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u043d\u0438\u0436\u0435:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c\u044b\u0445 \u0442\u0438\u043f\u043e\u0432<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0433\u0440\u0443\u043f\u043f\u043e\u0439 COM-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 ADO \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0415\u0422. \/\/ \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 - \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u044f\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 ADO \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442ADO() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \tADO = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \t \t\/\/ \u0417\u0430\u0434\u0430\u0435\u0442 \u0440\u0435\u0436\u0438\u043c\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 Connection, Record \u0438 Stream \tConnectModeEnum = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \tConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeRead&quot;, 1);            \/\/ \u0420\u0435\u0436\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 &quot;\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f&quot; \tConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeReadWrite&quot;, 3);       \/\/ \u0420\u0435\u0436\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 &quot;\u0427\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c&quot; \tConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeRecursive&quot;, 4194304); \/\/  \tConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeShareDenyNone&quot;, 16);  \/\/ \u0420\u0435\u0436\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 &quot;\u0414\u0440\u0443\u0433\u0438\u0435 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438&quot;     ConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeShareDenyRead&quot;, 4);   \/\/ \u0420\u0435\u0436\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 &quot;\u0414\u0440\u0443\u0433\u0438\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f&quot; \tConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeShareDenyWrite&quot;, 8);  \/\/ \u0420\u0435\u0436\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 &quot;\u0414\u0440\u0443\u0433\u0438\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438&quot; \tConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeShareExclusive&quot;, 12); \/\/ \u0420\u0435\u0436\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 &quot;\u041c\u043e\u043d\u043e\u043f\u043e\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 - \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u0441\u044f&quot;     ConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeUnknown&quot;, 0);         \/\/  \tConnectModeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adModeWrite&quot;, 2 );          \/\/ \u0420\u0435\u0436\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 &quot;\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438&quot; \tADO.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ConnectModeEnum&quot;, ConnectModeEnum); \t \t\/\/ \u0422\u0438\u043f \u043a\u043e\u043c\u0430\u043d\u0434 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Command (\u0442\u043e, \u043a\u0430\u043a \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u044b) \tCommandTypeEnum = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \tCommandTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adCmdUnspecified&quot;, -1); \/\/ \u0422\u0438\u043f \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \tCommandTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adCmdText&quot;, 1);         \/\/ \u0412 \u043f\u043e\u043b\u0435 CommandText \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \t                                                  \/\/ \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 SQL-\u0437\u0430\u043f\u0440\u043e\u0441, \t\t\t\t\t\t\t\t\t\t\t\t\t  \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \tCommandTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adCmdTable&quot;, 2);        \/\/ \u0412 \u043f\u043e\u043b\u0435 CommandText \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \t                                                  \/\/ \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \t\t\t\t\t\t\t\t\t\t\t\t\t  \/\/ \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \tCommandTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adCmdStoredProc&quot;, 4);   \/\/ \u0412 \u043f\u043e\u043b\u0435 CommandText \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \t                                                  \/\/ \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0445\u0440\u0430\u043d\u0438\u043c\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \t\t\t\t\t\t\t\t\t\t\t\t\t  \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \tCommandTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adCmdUnknown&quot;, 8);      \/\/ \u0422\u0438\u043f \u0443\u043a\u0430\u0437\u0430\u043d \u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \t                                                  \/\/ \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 (adCmdText, adCmdTable, adCmdStoredProc) \t\t\t\t\t\t\t\t\t\t\t\t\t  \/\/ \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e CommandText \tCommandTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adCmdFile&quot;, 256);       \/\/ \u0412 \u043f\u043e\u043b\u0435 CommandText \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \t                                                  \/\/ \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \t\t\t\t\t\t\t\t\t\t\t\t\t  \/\/ \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 Recordset \tCommandTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adCmdTableDirect&quot;, 512);\/\/ \u0412 \u043f\u043e\u043b\u0435 CommandText \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \t                                                  \/\/ \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \t\t\t\t\t\t\t\t\t\t\t\t\t  \/\/ \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0431\u0435\u0437 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \tADO.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;CommandTypeEnum&quot;, CommandTypeEnum); \t \t\/\/ \u0417\u0430\u0434\u0430\u0435\u0442 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0430\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445, \u043a\u0430\u043a: Field, Parameter \u0438 Property \tDataTypeEnum = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;AdArray&quot;, 8192);           \/\/ \u041a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 (\u0442\u043e\u0433\u043e &quot;\u0434\u0440\u0443\u0433\u043e\u0433\u043e&quot; \u0442\u0438\u043f\u0430) \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adBigInt&quot;, 20);            \/\/ 64-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adBinary&quot;, 128);           \/\/ \u0414\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adBoolean&quot;, 11);           \/\/ \u0411\u0443\u043b\u0435\u0432\u043e \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adBSTR&quot;, 8);               \/\/ \u0421\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432,  \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c Null (\u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 Unicode) \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adChapter&quot;, 136);          \/\/ \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adChar&quot;, 129);             \/\/ \u0421\u0442\u0440\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adCurrency&quot;, 6);           \/\/ \u0414\u0435\u043d\u0435\u0436\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430. 8-\u0431\u0430\u0439\u0442\u043e\u0432\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c, \u043a\u0440\u0430\u0442\u043d\u043e\u0435 10000 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adDate&quot;, 7);               \/\/ \u0414\u0430\u0442\u0430. \u0412\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043a\u043e\u043b-\u0432\u043e \u0434\u043d\u0435\u0439, \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u0435 \u0441 12\/30\/1899 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adDBDate&quot;, 133);           \/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u0442\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0413\u0413\u0413\u0413\u041c\u041c\u0414\u0414 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adDBTime&quot;, 134);           \/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0447\u0447\u043c\u043c\u0441\u0441 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adDBTimeStamp&quot;, 135);      \/\/ \u0422\u043e\u0447\u043d\u0430\u044f \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0413\u0413\u0413\u0413\u041c\u041c\u0414\u0414\u0447\u0447\u043c\u043c\u0441\u0441 \u043f\u043b\u044e\u0441 \u0442\u044b\u0441\u044f\u0447\u043d\u044b\u0435 \u0434\u043e\u043b\u0438 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adDecimal&quot;, 14);           \/\/ \u0414\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0446\u0435\u043b\u043e\u0439 \u0438 \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044f\u043c\u0438 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adDouble&quot;, 5);             \/\/ \u0427\u0438\u0441\u043b\u043e \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adEmpty&quot;, 0);              \/\/ \u041f\u0443\u0441\u0442\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adError&quot;, 10);             \/\/ 32-\u0445 \u0431\u0438\u0442\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adFileTime&quot;, 64);          \/\/ 64-\u0445 \u0431\u0438\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043a\u043e\u043b-\u0432\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u0432 \u043f\u043e 100\u043d\u0441, \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u0435 \u0441 01\/01\/1601 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adGUID&quot;, 72);              \/\/ \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 GUID \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adIDispatch&quot;, 9);          \/\/ \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 COM-\u043e\u0431\u044a\u0435\u043a\u0442\u0430 IDispatch. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f - \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adInteger&quot;, 3);            \/\/ 32-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adIUnknown&quot;, 13);          \/\/ \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 COM-\u043e\u0431\u044a\u0435\u043a\u0442\u0430 IUnknown. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f - \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adLongVarBinary&quot;, 205);    \/\/ \u0414\u043b\u0438\u043d\u043d\u043e\u0435 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Parameter)  \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adLongVarChar&quot;, 201);      \/\/ \u0414\u043b\u0438\u043d\u043d\u043e\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Parameter)  \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adLongVarWChar&quot;, 203);     \/\/ \u0414\u043b\u0438\u043d\u043d\u043e\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0435\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c Null - \u0441\u0442\u0440\u043e\u043a\u0430 Unicode (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Parameter) \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adNumeric&quot;, 131);          \/\/ \u0414\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438  \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adPropVariant&quot;, 138);      \/\/ \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adSingle&quot;, 4);             \/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439  \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adSmallInt&quot;, 2);           \/\/ 16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adTinyInt&quot;, 16);           \/\/ 8-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adUnsignedBigInt&quot;, 21);    \/\/ 64-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0431\u0435\u0437 \u0437\u043d\u0430\u043a\u0430 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adUnsignedInt&quot;, 19);       \/\/ 32-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0431\u0435\u0437 \u0437\u043d\u0430\u043a\u0430 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adUnsignedSmallInt&quot;, 18);  \/\/ 16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0431\u0435\u0437 \u0437\u043d\u0430\u043a\u0430 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adUnsignedTinyInt&quot;, 17);   \/\/ 8-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0431\u0435\u0437 \u0437\u043d\u0430\u043a\u0430 \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adUserDefined&quot;, 132);      \/\/ \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adVarBinary&quot;, 204);        \/\/ \u0414\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Parameter)  \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adVarChar&quot;, 200);          \/\/ \u0421\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Parameter)  \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adVariant&quot;, 12);           \/\/ \u0412\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f - \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adVarNumeric&quot;, 139);       \/\/ \u0414\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Parameter)  \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adVarWChar&quot;, 202);         \/\/ \u0421\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 Unicode, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c Null (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Parameter)  \tDataTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adWChar&quot;, 130);            \/\/ \u0421\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 Unicode, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c Null \tADO.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;DataTypeEnum&quot;, DataTypeEnum); \t \t\/\/ \u0417\u0430\u0434\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \tParameterDirectionEnum = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \tParameterDirectionEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adParamInput&quot;, 1);      \/\/ \u0412\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \tParameterDirectionEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adParamInputOutput&quot;, 3);\/\/ \u0412\u0445\u043e\u0434\u043d\u043e\u0439 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \tParameterDirectionEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adParamOutput&quot;, 2);     \/\/ \u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \tParameterDirectionEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adParamReturnValue&quot;, 4);\/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440-\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \tParameterDirectionEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adParamUnknown&quot;, 0);    \/\/ \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \tADO.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ParameterDirectionEnum&quot;, ParameterDirectionEnum);  \t\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u043e\u0442\u043a\u0440\u044b\u0442 \u043e\u043d \u0438\u043b\u0438 \u0437\u0430\u043a\u0440\u044b\u0442) \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \t\/\/ \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \tObjectStateEnum = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \tObjectStateEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adStateClosed&quot;, 0);     \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u043a\u0440\u044b\u0442 \tObjectStateEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adStateOpen&quot;, 1);       \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u043e\u0442\u043a\u0440\u044b\u0442 \tObjectStateEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adStateConnecting&quot;, 2); \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d     ObjectStateEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adStateExecuting&quot;, 4);  \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443     ObjectStateEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adStateFetching&quot;, 8);   \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \tADO.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;ObjectStateEnum&quot;, ObjectStateEnum); \t \t\/\/ \u0417\u0430\u0434\u0430\u0435\u0442 \u0442\u0438\u043f \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 Stream \tStreamTypeEnum = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \tStreamTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adTypeBinary&quot;, 1);           \/\/ \u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \tStreamTypeEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adTypeText&quot;,   2);           \/\/ \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u0435  \t                                                      \/\/ \u043e\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0432 Stream.Charset \tADO.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;StreamTypeEnum&quot;, StreamTypeEnum); \t \t\/\/ \u0417\u0430\u0434\u0430\u0435\u0442 \u0442\u0438\u043f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Stream \tSaveOptionsEnum = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \tSaveOptionsEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adSaveCreateNotExist&quot;, 1);  \/\/ \u0424\u0430\u0439\u043b \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0440\u0430\u043d\u0435\u0435 \tSaveOptionsEnum.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;adSaveCreateOverWrite&quot;,2);  \/\/ \u0424\u0430\u0439\u043b \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u043d \u0438\u043b\u0438 \u043d\u0435\u0442 \t                                                      \/\/ (\u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f) \tADO.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;SaveOptionsEnum&quot;, SaveOptionsEnum); \t \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 ADO \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 1\u0421.<\/h1>\n<p>  \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u00ab<i>\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/i>\u00bb, \u0442.\u0435. \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u0430\u0437\u043e\u0439, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0434 \u043e\u0434\u043d\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0421\u0423\u0411\u0414 (\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0411\u0414, \u0438\u043c\u044f \u0431\u0430\u0437\u044b, \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0421\u0423\u0411\u0414), \u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<br \/>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u043c\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u043b\u0430\u0441\u0441\u044b: \u00ab<i>\u041f\u0440\u043e\u0444\u0438\u043b\u044c\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u041a\u0411\u0430\u0437\u0435<\/i>\u00bb \u0438 \u00ab<i>\u041f\u0440\u043e\u0444\u0438\u043b\u0438\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u041a\u0411\u0430\u0437\u0430\u043c<\/i>\u00bb \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0444\u043e\u0440\u043c\u0430 \u00ab<i>\u0424\u043e\u0440\u043c\u0430\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u041f\u0440\u043e\u0444\u0438\u043b\u0435\u0439\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439<\/i>\u00bb, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0430\u044f \u0434\u0438\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439. \u0412\u0441\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u041e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u2013 \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043b\u044e\u0431\u043e\u0439 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0431\u0430\u0437\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0421\u0423\u0411\u0414.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u2013 \u044d\u0442\u043e \u043a\u043b\u0430\u0441\u0441 \u00ab<i>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u041a\u0411\u0430\u0437\u0435<\/i>\u00bb. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435-\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0411\u0414 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441 \u00ab<i>\u041d\u0430\u0431\u043e\u0440\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u0417\u0430\u043f\u0440\u043e\u0441\u0430<\/i>\u00bb. \u042d\u0442\u043e\u0442 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043a\u0441\u0442 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041c\u044b \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043d\u0430\u0431\u043e\u0440 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b), \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0442\u0435\u043a\u0441\u0442\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043d\u0430 \u0442\u043e, \u0432 \u043a\u0430\u043a\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u043e \u0438\u043b\u0438 \u0438\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041d\u0430\u0431\u043e\u0440 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043d\u0435\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0412 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a <b>: \u0438\u043c\u044f_\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430<\/b> (\u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u2013 \u0442\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 Delphi). <br \/>  \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435:  <\/p>\n<pre><code class=\"1c\">\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440 = \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(); ... \/\/ \u0412\u044b\u0431\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b \/\/ \u0428\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0430 QSelectGroupTmpl = &quot;SELECT grid, pgid, grname FROM groups WHERE grid = :grid;&quot;; \/\/ \u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043d\u0430\u0431\u043e\u0440 \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440); \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c grid \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 10 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0423\u0441\u0442\u041f\u0430\u0440\u0430\u043c(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, &quot;grid&quot;, 10); \/\/ \u041f\u0440\u043e\u0441\u0442\u043e \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u2013 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \/\/ \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c grid \u043d\u0430 20. \u0412 \u043d\u0430\u0431\u043e\u0440\u0435 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 1 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0423\u0441\u0442\u041f\u0430\u0440\u0430\u043c(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, &quot;grid&quot;, 20); \/\/ \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u2013 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u2013 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c  \/\/ \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u2013  \/\/ \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c: &quot;SELECT grid, pgid, grname FROM groups WHERE grid = 20;&quot; \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430 = \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0417\u043d\u0430\u0447\u0412\u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, QSelectGroupTmpl); <\/code><\/pre>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 (\u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432) \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u043a\u043b\u0430\u0441\u0441\u0430 \u00ab<i>\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435<\/i>\u00bb, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00ab<i>\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectGroup<\/i>\u00bb. <\/p>\n<p>  \u041d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0442\u0438\u043f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u00ab\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e\u00bb, \u00ab\u0427\u0438\u0441\u043b\u043e\u00bb, \u00ab\u0421\u0442\u0440\u043e\u043a\u0430\u00bb, \u00ab\u0414\u0430\u0442\u0430\u00bb, \u00ab\u0411\u0443\u043b\u0435\u0432\u043e\u00bb) \u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435, \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u043c \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0421\u0423\u0411\u0414. <\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 \u00ab<i>\u041d\u0430\u0431\u043e\u0440\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u0417\u0430\u043f\u0440\u043e\u0441\u0430<\/i>\u00bb:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u041d\u0430\u0431\u043e\u0440\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\u0417\u0430\u043f\u0440\u043e\u0441\u0430 (\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440)  \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440 = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;\u0421\u043f\u0438\u0441\u041f\u0440\u043c&quot;, \u041d\u043e\u0432\u044b\u0439 \u041c\u0430\u0441\u0441\u0438\u0432); \/\/ \u041d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0435\u0442. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  (\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430) - \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441 \u043f\u043e\u043b\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440() \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440 = \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442(); \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 - \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440) \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430. \u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  \u0418\u043c\u044f\u041f\u0440\u043c - \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 (\u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f) \/\/  \u0417\u043d\u0430\u0447\u041f\u0440\u043c - \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0423\u0441\u0442\u041f\u0430\u0440\u0430\u043c(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, \u0417\u043d\u0430\u0447 \u0418\u043c\u044f\u041f\u0440\u043c, \u0417\u043d\u0430\u0447 \u0417\u043d\u0430\u0447\u041f\u0440\u043c) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 (\u0418\u043c\u044f\u041f\u0440\u043c &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  (\u0422\u0438\u043f\u0417\u043d\u0447(\u0418\u043c\u044f\u041f\u0440\u043c) = \u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;)) \u0418 (\u0421\u043e\u043a\u0440\u041b\u041f(\u0418\u043c\u044f\u041f\u0440\u043c) &lt;&gt; &quot;&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\u0418\u043c\u044f\u041f\u0440\u043c = \u0421\u043e\u043a\u0440\u041b\u041f(\u0418\u043c\u044f\u041f\u0440\u043c); \t\t\/\/ \u041f\u043e\u0438\u0441\u043a \u0432 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u041f\u0440\u043c \u0418\u0437 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440.\u0421\u043f\u0438\u0441\u041f\u0440\u043c \u0426\u0438\u043a\u043b \t\t\t\u0415\u0441\u043b\u0438 \u0412\u0420\u0435\u0433(\u041f\u0440\u043c.\u0418\u043c\u044f\u041f\u0440\u043c) = \u0412\u0420\u0435\u0433(\u0418\u043c\u044f\u041f\u0440\u043c) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041d\u0430\u0448\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 - \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\u041f\u0440\u043c.\u0417\u043d\u0430\u0447\u041f\u0440\u043c = \u0417\u043d\u0430\u0447\u041f\u0440\u043c; \t\t\t\t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \t\t\u041f\u0440\u043c = \u041d\u043e\u0432\u044b\u0439 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430; \t\t\u041f\u0440\u043c.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;\u0418\u043c\u044f\u041f\u0440\u043c&quot;, \u0418\u043c\u044f\u041f\u0440\u043c); \t\t\u041f\u0440\u043c.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(&quot;\u0417\u043d\u0430\u0447\u041f\u0440\u043c&quot;, \u0417\u043d\u0430\u0447\u041f\u0440\u043c); \t\t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440.\u0421\u043f\u0438\u0441\u041f\u0440\u043c.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u041f\u0440\u043c) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440.\u0421\u043f\u0438\u0441\u041f\u0440\u043c.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e() \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041e\u0447\u0438\u0449\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 - \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440.\u0421\u043f\u0438\u0441\u041f\u0440\u043c.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c() \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u043a\u0443 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \/\/ (? - \u043b\u044e\u0431\u043e\u0439 \u043e\u0434\u0438\u043d \u0441\u0438\u043c\u0432\u043e\u043b, * - \u043b\u044e\u0431\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u043b\u044e\u0431\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432) \/\/ \u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 SQL-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 Like (\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b _ \u0438 %) \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0417\u043d\u0430\u0447\u041c\u0430\u0441\u043a\u0438 - \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u043a\u0438 \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430: ? \u0438 * \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u043a\u0438 \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430: _ \u0438 % \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u041f\u0440\u0435\u043e\u0431\u0440\u041c\u0430\u0441\u043a\u0443Like(\u0417\u043d\u0430\u0447 \u0417\u043d\u0430\u0447\u041c\u0430\u0441\u043a\u0438) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = &quot;&quot;; \t\u0415\u0441\u043b\u0438 (\u0417\u043d\u0430\u0447\u041c\u0430\u0441\u043a\u0438 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (\u0422\u0438\u043f\u0417\u043d\u0447(\u0417\u043d\u0430\u0447\u041c\u0430\u0441\u043a\u0438) = \u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;)) \u0418  \t\t (\u0417\u043d\u0430\u0447\u041c\u0430\u0441\u043a\u0438 &lt;&gt; &quot;&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = \u0417\u043d\u0430\u0447\u041c\u0430\u0441\u043a\u0438; \t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c(\u0420\u0435\u0437, &quot;_&quot;, &quot;&quot;); \t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c(\u0420\u0435\u0437, &quot;%&quot;, &quot;&quot;); \t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c(\u0420\u0435\u0437, &quot;?&quot;, &quot;_&quot;); \t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c(\u0420\u0435\u0437, &quot;*&quot;, &quot;%&quot;); \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437  \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u0443\u044e \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432  \/\/ SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b FireBird \/\/  - \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0441 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \/\/  - \u0431\u0443\u043b\u0435\u0432\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a\u0430\u043a 0 \u0438 1 \/\/  - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u0442\u044b \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 dd.mm.yyyy hh:mm:ss, \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u0430\u043f\u043e\u0441\u0442\u0440\u043e\u0444\u044b \/\/  - \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0430\u043f\u043e\u0441\u0442\u0440\u043e\u0444\u0430\u0445 \u0441 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \/\/  - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0438 Null \u0432\u044b\u0432\u043e\u043b\u044f\u0442\u0441\u044f \u043a\u0430\u043a NULL \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0417\u043d\u0430\u0447\u041f\u0440\u043c - \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0435 \u0434\u043b\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0417\u043d\u0430\u0447\u0412\u0421\u0442\u0440\u043e\u043a\u0443(\u0417\u043d\u0430\u0447 \u0417\u043d\u0430\u0447\u041f\u0440\u043c) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = &quot;&quot;; \t\u0415\u0441\u043b\u0438 (\u0417\u043d\u0430\u0447\u041f\u0440\u043c = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418\u041b\u0418 (\u0417\u043d\u0430\u0447\u041f\u0440\u043c = Null) \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = &quot;NULL&quot; \t\u0418\u043d\u0430\u0447\u0435 \t\t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u0417\u043d\u0430\u0447\u041f\u0440\u043c) = \u0422\u0438\u043f(&quot;\u0427\u0438\u0441\u043b\u043e&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0427\u0438\u0441\u043b\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \t\t\t\u0420\u0435\u0437 = \u0424\u043e\u0440\u043c\u0430\u0442(\u0417\u043d\u0430\u0447\u041f\u0440\u043c, &quot;\u0427\u0413=0; \u0427\u0420\u0414='.'; \u0427\u041d=''&quot;) \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u0417\u043d\u0430\u0447\u041f\u0440\u043c) = \u0422\u0438\u043f(&quot;\u0414\u0430\u0442\u0430&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 - \u0434\u0430\u0442\u0430 \t\t\t\t\u0420\u0435\u0437 = &quot;'&quot; + \u0424\u043e\u0440\u043c\u0430\u0442(\u0417\u043d\u0430\u0447\u041f\u0440\u043c, &quot;\u0414\u0424='dd.MM.yyyy HH:mm:ss'&quot;) + &quot;'&quot; \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u0417\u043d\u0430\u0447\u041f\u0440\u043c) = \u0422\u0438\u043f(&quot;\u0411\u0443\u043b\u0435\u0432\u043e&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0411\u0443\u043b\u0435\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\t\u0420\u0435\u0437 = \u0424\u043e\u0440\u043c\u0430\u0442(\u0417\u043d\u0430\u0447\u041f\u0440\u043c, &quot;\u0411\u041b=0; \u0411\u0418=1&quot;) \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u0417\u043d\u0430\u0447\u041f\u0440\u043c) = \u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\/\/ \u0421\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c(\u0417\u043d\u0430\u0447\u041f\u0440\u043c, &quot;'&quot;, &quot;''&quot;);  \/\/ \u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \t\t\t\t\t\t\u0420\u0435\u0437 = &quot;'&quot; + \u0420\u0435\u0437 + &quot;'&quot; \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437  \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  \u0428\u0430\u0431\u043b\u043e\u043d\u0417\u0430\u043f\u0440 - \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0433\u0434\u0435 \u043c\u0435\u0441\u0442\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u043a\u0430\u043a &quot;:\u0438\u043c\u044f_\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430&quot; \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0417\u043d\u0430\u0447\u0412\u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440(\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, \u0417\u043d\u0430\u0447 \u0428\u0430\u0431\u043b\u043e\u043d\u0417\u0430\u043f\u0440) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = &quot;&quot;; \t\u0415\u0441\u043b\u0438 (\u0428\u0430\u0431\u043b\u043e\u043d\u0417\u0430\u043f\u0440 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418  \t\t (\u0422\u0438\u043f\u0417\u043d\u0447(\u0428\u0430\u0431\u043b\u043e\u043d\u0417\u0430\u043f\u0440) = \u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;)) \u0418  \t\t (\u0428\u0430\u0431\u043b\u043e\u043d\u0417\u0430\u043f\u0440 &lt;&gt; &quot;&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = \u0428\u0430\u0431\u043b\u043e\u043d\u0417\u0430\u043f\u0440; \t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u041f\u0440\u043c \u0418\u0437 \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440.\u0421\u043f\u0438\u0441\u041f\u0440\u043c \u0426\u0438\u043a\u043b \t\t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c(\u0420\u0435\u0437, &quot;:&quot; + \u041f\u0440\u043c.\u0418\u043c\u044f\u041f\u0440\u043c, \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0417\u043d\u0430\u0447\u0412\u0421\u0442\u0440\u043e\u043a\u0443(\u041f\u0440\u043c.\u0417\u043d\u0430\u0447\u041f\u0440\u043c)) \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437  \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418\u0442\u0430\u043a, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0411\u0414 \u2013 \u043a\u043b\u0430\u0441\u0441 \u00ab\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u041a\u0411\u0430\u0437\u0435\u00bb.<br \/>  \u041a\u043b\u0430\u0441\u0441 \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:  <\/p>\n<table>\n<tr>\n<th>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0413\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0417\u0434\u0435\u0441\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0411\u0414 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442 \u0411\u0414, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/b><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_\u0421\u043e\u0437\u0434\u0430\u0442\u044c\u041e\u0431\u044a\u0435\u043a\u0442()<\/td>\n<td>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440()<\/td>\n<td>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetDBAddr(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetDBUserName(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0411\u0414, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438\u0441\u044c<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetConnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0431\u0430\u0437\u043e\u0439<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ConnectToDB(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, FBDBAddr, FBUserName, FBUserPass)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0411\u0414<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_Disconnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 \u0431\u0430\u0437\u044b<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetUserRegister(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_RegisterUser (\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, UserName, UserPass)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/td>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435<\/td>\n<\/tr>\n<tr>\n<td>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_UnregisterUser(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0430\u043d\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetRegLogin(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetUserID(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0437\u0435 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetUserName(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0437\u0435 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetUserRights(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u043a\u0443 \u043f\u0440\u0430\u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_TestUserRight(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, RightIndex)<\/td>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u043f\u0440\u0430\u0432\u043e\u043c<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetErrorMsg(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0413\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 ADO \u2013 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0411\u0414 (\u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f).<\/b><\/td>\n<\/tr>\n<tr>\n<td>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ClearCommandParameters(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 ADODB.Command<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ExecSQL(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 SQL-\u0437\u0430\u043f\u0440\u043e\u0441, \u043d\u0435<br \/>  \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445  <\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetRecordSet(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 SQL-\u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 <br \/>  \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445  <\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u0441\u0442\u041e\u0431\u044f\u0437\u0430\u0442=\u041b\u043e\u0436\u044c)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0413\u0440\u0443\u043f\u043f\u0430 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0431\u0430\u0437\u0435 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u043e\u0439. \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0430\u043d\u043d\u044b\u043c.<\/b><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRights(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0431\u0430\u0437\u0435.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectDataSet(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430, DstDataSet, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0432 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectSingleVal(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430, OutVal, OutValName, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438\u0437 \u0431\u0430\u0437\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectPair(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430, OutVal1, OutVal2, OutValName1, OutValName2, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438\u0437 \u0431\u0430\u0437\u044b \u043f\u0430\u0440\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectList(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430, List, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectListPair(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430, List, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectObject(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430, Obj, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0432 \u043e\u0431\u044a\u0435\u043a\u0442<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectObjects(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430, ClassID, ObjectsSet, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0430\u0437\u044b \u0432 \u043d\u0430\u0431\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_WriteQuery(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430, RightsMask=&quot;&quot;)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\"><b>\u0413\u0440\u0443\u043f\u043f\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0434\u0430\u043d\u043d\u044b\u0445.<\/b><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectGroup(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, GRID, ObjGroup)<\/td>\n<td>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectGroups(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, PGRID, ObjSetGroups)<\/td>\n<td>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u0433\u0440\u0443\u043f\u043f, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectCard(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, CDID, ObjCard)<\/td>\n<td>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectCardsNames(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, GRID, ObjSetCards)<\/td>\n<td>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443<\/td>\n<td>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a (BLOB-\u043f\u043e\u043b\u044f \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f)<\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectUser(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, UID, ObjUser)<\/td>\n<td>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u043e\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectUsers(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, ObjSetUsers)<\/td>\n<td>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u2014 \u0432\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SaveGroup(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, ObjGroup)<\/td>\n<td>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u0431\u0430\u0437\u0443 \u0433\u0440\u0443\u043f\u043f\u0443 \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 INSERT \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 UPDATE \u0434\u043b\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_DeleteGroup(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, GRID)<\/td>\n<td>\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0438\u0437 \u0431\u0430\u0437\u044b \u0433\u0440\u0443\u043f\u043f\u0443 \u0438 \u0432\u0441\u0435 \u0435\u0451 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 (\u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438)<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SaveCard(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, ObjCard)<\/td>\n<td>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u0431\u0430\u0437\u0443 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443 \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 INSERT \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 UPDATE \u0434\u043b\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_DeleteCard(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, CDID)<\/td>\n<td>\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0438\u0437 \u0431\u0430\u0437\u044b \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_MoveGroupToGroup(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, SrcGRID, DstGRID)<\/td>\n<td>\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0438 \u0432\u0441\u0435 \u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443. \u0421\u0430\u043c\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0435\u0436\u043d\u0435\u043c \u043c\u0435\u0441\u0442\u0435.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_MoveGroupContentsToGroup(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, SrcGRID, DstGRID)<\/td>\n<td>\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443. \u0421\u0430\u043c\u0430 \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0435\u0436\u043d\u0435\u043c \u043c\u0435\u0441\u0442\u0435.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_MoveCardToGroup(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, SrcCDID, DstGRID)<\/td>\n<td>\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_UpdatePassword(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, OldPassword, NewPassword)<\/td>\n<td>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 (\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0431\u0430\u0437\u0443) \u043f\u0430\u0440\u043e\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0435\u0430\u043d\u0441\u0430.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SaveUsers(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, ObjSetUsers, DelUsersIDs)<\/td>\n<td>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u0431\u0430\u0437\u0443 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 INSERT \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 UPDATE<br \/>  \u0434\u043b\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445. \u0422\u0430\u043a\u0436\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 DELETE.  <\/td>\n<td><\/td>\n<\/tr>\n<\/table>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 ADO:<br \/>   \u2014 <i>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443 \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0411\u0414, \u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b) \u2013 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00ab\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ConnectToDB\u00bb, \u00ab\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_RegisterUser\u00bb<\/i>.<br \/>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u044d\u0442\u0430\u043f\u044b (\u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u044d\u0442\u0430\u043f\u0443 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e, \u0430 \u0438\u043d\u0430\u0447\u0435 \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439):<br \/>   \u2014 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0421\u0423\u0411\u0414 \u0447\u0435\u0440\u0435\u0437 \u00ab<i>ADODB.Connection<\/i>\u00bb;<br \/>   \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 \u00ab<i>ADODB.Command<\/i>\u00bb \u0447\u0435\u0440\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0412\u0441\u0435 \u043d\u0430\u0448\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u2013 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b (CommandType = CommandTypeEnum.adCmdText). \u0414\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b \u043a\u043e\u043c\u0430\u043d\u0434 (\u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438 \u0442.\u0434.) \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c;<br \/>   \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0431\u0430\u0437\u044b, \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u0431\u0430\u0437\u0435).<br \/>  \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u0435\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u0432 \u0431\u0430\u0437\u0435. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432 \u0431\u0430\u0437\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u043e \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u043f\u0435\u0445\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. <br \/>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0411\u0414 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  FBDBAddr - \u0430\u0434\u0440\u0435\u0441 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430) \/\/  FBUserName - \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0411\u0414 \/\/  FBUserPass - \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0411\u0414 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ConnectToDB(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, FBDBAddr, FBUserName, FBUserPass) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\/\/ \u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446 \u0431\u0430\u0437\u044b \tQGetTab = &quot;SELECT RDB$RELATION_NAME AS tabname FROM RDB$RELATIONS &quot; +  \t\t\t  &quot;WHERE ((RDB$SYSTEM_FLAG = 0)AND(RDB$VIEW_SOURCE IS NULL)) &quot; + \t\t\t  &quot;ORDER BY RDB$RELATION_NAME;&quot;;  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBDBAddr = FBDBAddr;        \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBUserName = FBUserName;    \/\/ \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBUserPass = FBUserPass;    \/\/ \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0411\u0414 \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e;   \/\/ \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043d\u0435\u0442 \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e;   \/\/ \u041e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsDBConnect = \u041b\u043e\u0436\u044c;         \/\/ \u0411\u0430\u0437\u0430 \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0430 \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime = 0;           \/\/ \u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_UnregisterUser(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435);   \/\/ \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;&quot;;                \/\/ \u041e\u0448\u0438\u0431\u043e\u043a \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e  \t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 FireBird \t\u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_Driver = &quot;driver={&quot; + &quot;Firebird\/InterBase(r) driver&quot; + &quot;}&quot;; \t\u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_UID = &quot;uid=&quot; + FBUserName; \t\u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_PWD = &quot;pwd=&quot; + FBUserPass; \t\u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_DataBase = &quot;database=&quot; + FBDBAddr; \t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f = \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_Driver + &quot;;&quot; + \t\t\t\t\t   \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_UID + &quot;;&quot; +  \t\t\t\t\t   \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_PWD + &quot;;&quot; +  \t\t\t\t\t   \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_DataBase; \t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn = \u041d\u043e\u0432\u044b\u0439 COM\u041e\u0431\u044a\u0435\u043a\u0442(&quot;ADODB.Connection&quot;); \t\t\/\/ \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn.open(\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f); \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsDBConnect = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand = \u041d\u043e\u0432\u044b\u0439 COMObject(&quot;ADODB.Command&quot;); \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.ActiveConnection = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn; \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.NamedParameters = True; \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandType = ADO.CommandTypeEnum.adCmdText; \t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u043e\u0439 \t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \t\t\u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430 = QGetTab; \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandText = \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430; \t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445 = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.Execute(); \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\u0415\u0441\u043b\u0438 \u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\u0415\u0441\u043b\u0438 \u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.State = ADO.ObjectStateEnum.adStateOpen \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\t\t\u0421\u043f\u0438\u0441\u043e\u043a\u0422\u0430\u0431\u043b\u0438\u0446 = \u041d\u043e\u0432\u044b\u0439 \u041c\u0430\u0441\u0441\u0438\u0432; \t\t\t\t\t\/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446 \t\t\t\t\t\u041f\u043e\u043a\u0430 \u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.EOF = 0 \u0426\u0438\u043a\u043b \t\t\t\t\t\t\u0421\u043f\u0438\u0441\u043e\u043a\u0422\u0430\u0431\u043b\u0438\u0446.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0421\u043e\u043a\u0440\u041b\u041f(\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.Fields(&quot;TABNAME&quot;).Value)); \t\t\t\t\t\t\/\/ \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \t\t\t\t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.MoveNext(); \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \t\t\t\t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e TabName \u0418\u0437 \u041f\u0440\u043e\u0447.QTabsLst \u0426\u0438\u043a\u043b \t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u0421\u043f\u0438\u0441\u043e\u043a\u0422\u0430\u0431\u043b\u0438\u0446.\u041d\u0430\u0439\u0442\u0438(TabName) = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\/\/ \u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043d\u0443\u0436\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432 \u0431\u0430\u0437\u0435 \t\t\t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 &quot; + TabName + &quot; \u0432 \u0431\u0430\u0437\u0435&quot;; \t\t\t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\t\/\/ \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446 \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446 \u0431\u0430\u0437\u044b&quot; \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446 \t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446 \u0431\u0430\u0437\u044b&quot;; \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\/\/ \u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.Close(); \t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\/\/ \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446 \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446 \u0431\u0430\u0437\u044b&quot; \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t \t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\/\/ \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0431\u0430\u0437\u0435 FireBird: &quot; + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u041e\u0448\u0438\u0431\u043a\u0438() \t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t \t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0412\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b - \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u0418\u043d\u0430\u0447\u0435 \t\t\/\/ \u042d\u0442\u0430 \u0431\u0430\u0437\u0430 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 - \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_Disconnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437; \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f - \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \/\/ \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0438\u043c\u0435\u043d\u0438 UserName \u0438 \u043f\u0430\u0440\u043e\u043b\u0435 UserPass \u043f\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \/\/ \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.  \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  UserName - \u043b\u043e\u0433\u0438\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \/\/  UserPass - \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0448\u0435\u043b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \/\/  (\u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0431\u0430\u0437\u0435 \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0432\u0435\u0440\u0435\u043d) \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_RegisterUser(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, UserName, UserPass) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\/\/ \u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \tQGetUsr = &quot;SELECT * FROM USERS WHERE &quot; + \t\t\t  &quot;((UPPER(UNAME COLLATE PXW_CYRL) = :upname)OR(UNAME = :name)) AND (UPWD = :pass);&quot;; \t\t\t   \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;&quot;;  \/\/ \u041e\u0448\u0438\u0431\u043e\u043a \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsDBConnect \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0415\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 - \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_UnregisterUser(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435);  \/\/ \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \t\t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \t\t\/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435 \t\t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440); \t\t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0423\u0441\u0442\u041f\u0430\u0440\u0430\u043c(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, &quot;upname&quot;, \u0412\u0420\u0435\u0433(UserName)); \t\t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0423\u0441\u0442\u041f\u0430\u0440\u0430\u043c(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, &quot;name&quot;, UserName); \t\t\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0423\u0441\u0442\u041f\u0430\u0440\u0430\u043c(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, &quot;pass&quot;, UserPass); \t\t\u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430 = \u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440_\u0417\u043d\u0430\u0447\u0412\u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.\u041d\u0430\u0431\u041f\u0440\u043c\u0417\u0430\u043f\u0440, QGetUsr); \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandText = \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430; \t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445 = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.Execute(); \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\u0415\u0441\u043b\u0438 \u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\u0415\u0441\u043b\u0438 (\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.State = ADO.ObjectStateEnum.adStateOpen) \u0418  \t\t\t\t (\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.EOF = 0) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.UID = \u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.Fields(&quot;UID&quot;).Value; \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.UName = \u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.Fields(&quot;UNAME&quot;).Value; \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.Rights = \u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.Fields(&quot;URIGHTS&quot;).Value; \t\t\t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438; \t\t\t\t \t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsRegister = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\/\/ \u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445.Close(); \t\t\t\u041d\u0430\u0431\u043e\u0440\u0414\u0430\u043d\u043d\u044b\u0445 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsRegister \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.RegLogin = UserName; \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.RegPass = UserPass; \t\t\t \t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\/\/ \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0435 \u0443\u0434\u0430\u043b\u0430\u0441\u044c \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.UID = 0; \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.UName = &quot;&quot;; \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.Rights = &quot;&quot;; \t\t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d&quot; \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u0418\u043d\u0430\u0447\u0435 \t\t\/\/ \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e&quot; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   \u2014 <i>\u0440\u0430\u0437\u0440\u044b\u0432 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443 \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0411\u0414, \u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b) \u2013 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00ab\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_Disconnect\u00bb, \u00ab\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_UnregisterUser\u00bb<\/i>.<br \/>  \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u0435\u0439 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u00ab\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u00bb<br \/>  \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 \u0431\u0430\u0437\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u044f\u0432\u043d\u044b\u043c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 \u00ab<i>ADODB.Command<\/i>\u00bb, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435\u043c \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u00ab<i>ADODB.Connection<\/i>\u00bb (\u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c \u0441\u0430\u043c\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0411\u0414 \u043f\u043e TCP) \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043d\u0435\u044f\u0432\u043d\u044b\u043c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435\u043c;<br \/>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/ \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 \u0431\u0430\u0437\u044b \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_Disconnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\/\/ \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_UnregisterUser(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435); \t\/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043e\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsDBConnect = \u041b\u043e\u0436\u044c; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime = 0; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn.State = ADO.ObjectStateEnum.adStateOpen \u0422\u043e\u0433\u0434\u0430 \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn.Close() \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0430\u043d\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_UnregisterUser(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsRegister = \u041b\u043e\u0436\u044c; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.RegLogin = &quot;&quot;; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.RegPass = &quot;&quot;; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.UID = 0; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.UName = &quot;&quot;; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.Rights = &quot;&quot;; \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   \u2014 <i>\u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u2013 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00ab\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ExecSQL\u00bb, \u00ab\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetRecordSet\u00bb, \u00ab\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect\u00bb<\/i>.<br \/>  \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u00ab<i>ADODB.Command<\/i>\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u2013 \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434 \u00ab<i>Execute<\/i>\u00bb. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u00ab<i>ADODB.Recordset<\/i>\u00bb \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0421\u0423\u0411\u0414 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (15-20 \u043c\u0438\u043d.), \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f (\u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435) \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u043e\u0448\u0438\u0431\u043a\u0443. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0442\u043e \u0434\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0449\u044c \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u2013 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043e\u0442\u0432\u043b\u0435\u043a\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 (\u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u043d\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0431\u0430\u0437\u0435), \u0437\u0430\u0442\u0435\u043c \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u0430 \u043e\u043d\u0430 \u0432\u044b\u0434\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438. \u0418 \u0442\u0430\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u0437\u0430 \u0434\u0435\u043d\u044c. \u041f\u043e\u0442\u0435\u0440\u044f \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0431\u043e\u0441\u0442\u0440\u044f\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e.<br \/>  \u041f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u043f\u0440\u0438\u0440\u043e\u0434\u044b \u044d\u0442\u043e\u0433\u043e \u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u043e\u0431\u043e\u0439 \u044f\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u043b\u0430\u0433\u0430\u044e\u0442 \u0432\u0438\u043d\u0443 \u0437\u0430 \u0440\u0430\u0437\u0440\u044b\u0432 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u00ab\u0444\u0430\u0439\u0440\u0432\u043e\u043b\u044b\u00bb, \u043d\u043e \u044d\u0442\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u2013 \u0437\u0430\u0447\u0435\u043c \u0431\u0440\u0430\u043d\u0434\u043c\u0430\u0443\u044d\u0440 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c (\u0444\u0430\u0439\u0440\u0432\u043e\u043b\u043e\u0432) \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e, \u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0431\u044b\u043b\u0430. \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 (\u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 localhost, \u0442.\u0435. \u043a\u043b\u0438\u0435\u043d\u0442 \u0438 \u0421\u0423\u0411\u0414 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0442\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442). <br \/>  \u0412 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0411\u0414 \u0438 \u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432-\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0439 (\u0438\u043d\u043e\u0433\u0434\u0430 \u0438\u0445 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 NOP-\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438) \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442). \u0412\u043e\u043e\u0431\u0449\u0435, \u0432 FireBird \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0442.\u043d. DUMMY-\u043f\u0430\u043a\u0435\u0442\u044b (\u044d\u0442\u043e \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e, \u0447\u0442\u043e \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435), \u043d\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043e\u043d\u0438 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043f\u0438\u0441\u043a\u0430 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u00ab\u043a\u043e\u043d\u0444\u0438\u0433\u0430\u00bb \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u0438\u043d\u0430\u0447\u0435 Windows \u043c\u043e\u0436\u0435\u0442 \u00ab\u0440\u0443\u0445\u043d\u0443\u0442\u044c\u00bb. \u0412 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044e \u0441 \u0441\u0430\u0439\u0442\u0430 Microsoft, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u043f\u0440\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043e\u043a\u0435\u0442\u043e\u0432 (\u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u043e\u043a\u0435\u0442\u044b \u0442\u0430\u043a \u0441\u0438\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f DUMMY-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438???), \u043f\u0440\u0438\u0447\u0435\u043c, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Windows-2000, \u0434\u0430 \u0438 \u0442\u043e \u043b\u0438\u0448\u044c \u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e KB-\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043e \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f DUMMY-\u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 FireBird (\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0435\u0433\u043e \u043d\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u0430\u043c\u044b\u0445 \u043d\u043e\u0432\u044b\u0445). <br \/>  \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e, \u0432 \u0442\u0435\u0445 \u0436\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 FireBird \u0437\u0430\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0421\u0423\u0411\u0414 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e (\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f) \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c TCP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b (\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u043e\u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u043c\u0435\u043d ASK-\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 TCP), \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043a\u0435\u0442\u044b \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 SO_KEEPALIVE. \u041d\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u0440\u043e\u0431 \u00abKEEP ALIVE\u00bb (\u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Windows \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043f\u0440\u043e\u0448\u0435\u0441\u0442\u0432\u0438\u0438 2-\u0445 \u0447\u0430\u0441\u043e\u0432 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u0430 (\u0430 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 15-20\u043c\u0438\u043d., \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0437\u0440\u044b\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438). \u0410 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0435\u0449\u0435 \u0440\u0430\u0437 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0447\u0442\u043e \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u0432\u044f\u0437\u0438, \u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u0442.\u0435. \u043e\u0431\u043c\u0435\u043d ASK-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u0440\u0430\u0437\u0440\u044b\u0432\u0443. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430.<br \/>  \u0417\u0430\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043a\u0430\u043a \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0440\u0435\u0448\u0438\u0442\u044c. \u0411\u0443\u0434\u0435\u043c \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043d\u043e, \u0442\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e (\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e) \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u043e (\u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435) \u043e\u0442 \u0441\u0430\u043c\u043e\u0439 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041d\u0430\u0437\u043e\u0432\u0435\u043c \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0435\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f) \u00ab<i>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect<\/i>\u00bb. \u041e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u00ab<i>\u0418\u0441\u0442\u0438\u043d\u0430<\/i>\u00bb \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 (\u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0435\u0433\u043e \u0437\u0430\u043d\u043e\u0432\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438) \u0438 \u00ab<i>\u041b\u043e\u0436\u044c<\/i>\u00bb, \u0435\u0441\u043b\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f (\u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f). \u041a\u0430\u043a \u0436\u0435 \u00ab<i>CheckRestConnect<\/i>\u00bb \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0431\u0430\u0437\u043e\u0439, \u0438\u043c\u0435\u044f \u0432 \u0441\u0432\u043e\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u0430\u043a \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u00abADODB.Command\u00bb? \u041e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u2013 \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0431\u0430\u0437\u0435 InterBase\/FireBird, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0440\u043e\u0441 \u00abSELECT 1 FROM RDB$DATABASE\u00bb. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u0437\u043d\u0430\u0447\u0438\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043d\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e. \u0412\u044b\u0437\u043e\u0432 \u00ab<i>CheckRestConnect<\/i>\u00bb \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0415\u0441\u043b\u0438 \u00ab<i>CheckRestConnect<\/i>\u00bb \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442, \u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0435\u0442 \u0432 2 \u0440\u0430\u0437\u0430 (\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e + 1 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439) \u0438 \u0434\u0430\u0441\u0442 \u043d\u0435\u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u00ab<i>CheckRestConnect<\/i>\u00bb, \u0430 \u0447\u0435\u0440\u0435\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u2013 \u0432 \u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 5\u043c\u0438\u043d. \u0421\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0440\u0430\u0437\u0440\u044b\u0432 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442. \u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u00ab<i>\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ExecSQL<\/i>\u00bb \u0438 \u00ab<i>\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetRecordSet<\/i>\u00bb, \u0432\u044b\u0437\u043e\u0432 \u00ab<i>CheckRestConnect<\/i>\u00bb \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u043e 2-\u0445 \u0440\u0430\u0437 (\u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 1-\u0433\u043e \u0440\u0430\u0437\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430, \u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c 2-\u044e \u043f\u043e\u043f\u044b\u0442\u043a\u0443). \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043d\u0430 \u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u0437\u0430 \u043e\u0442\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b (\u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 5\u043c\u0438\u043d.) \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u044b\u0432, \u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u00ab<i>CheckRestConnect<\/i>\u00bb \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c, \u0438 \u0432\u0435\u0440\u043d\u0435\u0442 \u043b\u043e\u0436\u043d\u044b\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u00ab<i>CheckRestConnect<\/i>\u00bb \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e.<br \/>   \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u043d\u0435 \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u0442 \u0432\u044b\u0431\u043e\u0440\u043e\u043a). \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430 - \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ExecSQL(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;&quot;;          \/\/ \u041e\u0448\u0438\u0431\u043e\u043a \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c;     \u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435) \u0422\u043e\u0433\u0434\u0430 \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandText = \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430; \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.Execute(); \t\t\t\/\/ \u0417\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435: &quot; + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u041e\u0448\u0438\u0431\u043a\u0438(); \t\t\t\/\/ \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u0442\u0435\u0440\u044f \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0430 - \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u0440\u0430\u0437 \t\t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0418\u0441\u0442\u0438\u043d\u0430) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandText = \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430; \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.Execute(); \t\t\t\t\t\/\/ \u0417\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e \t\t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435: &quot; + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u041e\u0448\u0438\u0431\u043a\u0438(); \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438;  \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0439 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \/\/ \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d). \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430 - \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetRecordSet(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;&quot;;          \/\/ \u041e\u0448\u0438\u0431\u043e\u043a \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e  \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e;     \u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435) \u0422\u043e\u0433\u0434\u0430 \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandText = \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430; \t\t\t\u0420\u0435\u0437 = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.Execute(); \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435: &quot; + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u041e\u0448\u0438\u0431\u043a\u0438(); \t\t\t\/\/ \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u0442\u0435\u0440\u044f \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0430 - \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u0440\u0430\u0437 \t\t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0418\u0441\u0442\u0438\u043d\u0430) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandText = \u0422\u0435\u043a\u0441\u0442\u0417\u0430\u043f\u0440\u043e\u0441\u0430; \t\t\t\t\t\u0420\u0435\u0437 = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.Execute(); \t\t\t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435: &quot; + \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u041e\u0448\u0438\u0431\u043a\u0438(); \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438;  \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c FireBird  \/\/ (\u043d\u0435 \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043b\u043e\u0441\u044c \u043b\u0438 \u043e\u043d\u043e). \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0435\u0433\u043e \u0441\u043d\u043e\u0432\u0430. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  \u0422\u0435\u0441\u0442\u041e\u0431\u044f\u0437\u0430\u0442 - \u043f\u0440\u0438\u0437\u043d\u0430\u043a (\u0411\u0443\u043b\u0435\u0432\u043e), \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443, \/\/               \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0447\u0430\u0449\u0435 \u0447\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \/\/               (5 \u043c\u0438\u043d.) \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u043a \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0422\u0435\u0441\u0442\u041e\u0431\u044f\u0437\u0430\u0442=\u041b\u043e\u0436\u044c) \t \t\/\/ \u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \tQTestConnect = &quot;SELECT 1 FROM RDB$DATABASE;&quot;; \t \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;&quot;;          \/\/ \u041e\u0448\u0438\u0431\u043e\u043a \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e  \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsDBConnect \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043e\u0442\u0441\u0447\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \t\t\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b = 300000;  \/\/ \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a (\u043d\u0435 \u0447\u0430\u0449\u0435), \u043c\u0441 \t\t\u0412\u0440\u0435\u043c\u044f\u0422\u0435\u043a\u0443\u0449 = \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0422\u0435\u043a\u0443\u0449\u0435\u0435\u0412\u0440\u0435\u043c\u044f\u0412\u041c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445(); \t\t\u0415\u0441\u043b\u0438 \u0422\u0435\u0441\u0442\u041e\u0431\u044f\u0437\u0430\u0442 \u0418\u041b\u0418 \t\t\t (\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418\u041b\u0418 \t\t\t (\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime = 0) \u0418\u041b\u0418 \t\t\t (\u0412\u0440\u0435\u043c\u044f\u0422\u0435\u043a\u0443\u0449 - \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime &gt;= \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b) \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \t\t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandText = QTestConnect; \t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.Execute(); \t\t\t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0443\u0434\u0430\u0447\u043d\u043e \t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime = \u0412\u0440\u0435\u043c\u044f\u0422\u0435\u043a\u0443\u0449; \t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 - \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \t\t\t\t\t\/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \t\t\t\tFBDBAddr   = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBDBAddr;      \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \t\t\t\tFBUserName = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBUserName;    \/\/ \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \t\t\t\tFBUserPass = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBUserPass;    \/\/ \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0411\u0414 \t\t\t\tIsRegister = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsRegister;    \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \t\t\t\tUserName   = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.RegLogin;      \/\/ \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \t\t\t\tUserPass   = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.RegPass; \t\t\t\t\t\/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0431\u0430\u0437\u044b \t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_Disconnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435); \t\t\t\t\t\/\/ \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_ConnectToDB(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, FBDBAddr, FBUserName, FBUserPass) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c - \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \t\t\t\t\t\u0415\u0441\u043b\u0438 IsRegister \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_RegisterUser(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, UserName, UserPass) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\/\/ \u041f\u0435\u0440\u0435\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 - \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \t\t\t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime = \u0412\u0440\u0435\u043c\u044f\u0422\u0435\u043a\u0443\u0449; \t\t\t\t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\t\/\/ \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0435 \u0443\u0434\u0430\u043b\u0430\u0441\u044c - \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \t\t\t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_Disconnect(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435); \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\/\/ \u041f\u0435\u0440\u0435\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u043d\u0443\u0436\u043d\u0430 - \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \t\t\t\t\t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime = \u0412\u0440\u0435\u043c\u044f\u0422\u0435\u043a\u0443\u0449; \t\t\t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0435\u0437 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u0418\u043d\u0430\u0447\u0435 \t\t\/\/ \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435 \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.ErrMsg = &quot;\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435&quot;; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438;  \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437  \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BLOB-\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438.<\/h1>\n<p>  \u0412 InterBase\/FireBird \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 2 \u0442\u0438\u043f\u0430 BLOB-\u043f\u043e\u043b\u0435\u0439: TEXT \u0438 BINARY.<br \/>  <b>TEXT<\/b> \u2013 \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u0442\u043e\u0436\u0435, \u0447\u0442\u043e \u0438 MEMO \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0421\u0423\u0411\u0414. \u042d\u0442\u043e \u0442\u0435\u043a\u0441\u0442 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0421 \u043d\u0438\u043c \u0447\u0435\u0440\u0435\u0437 ADO \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0441 CHAR\/ VARCHAR \u2013 \u043a\u0430\u043a \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 (\u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438). \u041d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 SQL \u2013 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 (\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0438 LIKE). \u0412 \u043d\u0430\u0448\u0435\u0439 \u0431\u0430\u0437\u0435 \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u043b\u0435 \u2013 \u044d\u0442\u043e \u00abCARDS.CDCONTACTS\u00bb.<br \/>  <b>BINARY<\/b> \u2013 \u044d\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 BLOB, \u043a\u0430\u043a \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0421\u0423\u0411\u0414. \u041d\u0430\u0431\u043e\u0440 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u0431\u0430\u0439\u0442 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043c\u0435\u0436\u0434\u0443 1\u0421 \u0438 \u0421\u0423\u0411\u0414 (\u00abADO.Recordset\u00bb, \u00abADO.Parameters\u00bb) \u0432 \u043e\u0431\u043e\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043c\u0430\u0441\u0441\u0438\u0432 COMSafeArray (\u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0445 \u0447\u0438\u0441\u0435\u043b). <br \/>  \u0422\u0435\u043a\u0441\u0442 \u0432 \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u043b\u044f\u0445 \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c, \u043d\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u043b\u043e\u0448\u044c \u0438 \u0440\u044f\u0434\u043e\u043c. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0431\u0430\u0437\u0435 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u043b\u0435 \u2013 \u044d\u0442\u043e \u00abCARDS.CDNOTE\u00bb. \u0411\u0430\u0437\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u0435 \u0442\u0435\u043a\u0441\u0442 \u2013 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0412 \u0431\u0430\u0437\u0435 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 WIN-1251, \u0430 \u0443 1\u0421 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u00ab\u0421\u0442\u0440\u043e\u043a\u0430\u00bb \u2013 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 UTF-8. \u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:  <\/p>\n<pre><code class=\"1c\">\u041c\u0430\u0441\u0441\u0438\u0432WIN1251_\u0412\u0421\u0442\u0440\u043e\u043a\u0443UTF8 \u0421\u0442\u0440\u043e\u043a\u0430UTF8_\u0412\u041c\u0430\u0441\u0441\u0438\u0432WIN1251 COMSafeArrayWIN1251_\u0412\u0421\u0442\u0440\u043e\u043a\u0443UTF8 \u0421\u0442\u0440\u043e\u043a\u0430UTF8_\u0412COMSafeArrayWIN1251 <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u043e\u0434\u043e\u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 Windows-1251) \/\/ \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 1C (\u043a\u043e\u0434\u0438\u0440\u043e\u043a\u0430 UTF-8) \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041c\u0430\u0441\u0441\u0438\u0432WIN1251 - \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u043e\u0434\u043e\u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 Windows-1251 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 &quot;&quot;, \u0435\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041c\u0430\u0441\u0441\u0438\u0432WIN1251_\u0412\u0421\u0442\u0440\u043e\u043a\u0443UTF8(\u041c\u0430\u0441\u0441\u0438\u0432WIN1251) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u041c\u0430\u0441\u0441\u0438\u0432WIN1251) = \u0422\u0438\u043f(&quot;\u041c\u0430\u0441\u0441\u0438\u0432&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u041a\u043e\u0434\u0421\u0438\u043c\u0432 \u0418\u0437 \u041c\u0430\u0441\u0441\u0438\u0432WIN1251 \u0426\u0438\u043a\u043b \t\t\t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u041a\u043e\u0434\u0421\u0438\u043c\u0432) = \u0422\u0438\u043f(&quot;\u0427\u0438\u0441\u043b\u043e&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0438\u0437 Windows-1251 \u0432 UTF-8 \t\t\t\t\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &gt;= 192) \u0418 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &lt;= 223) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0410 - \u042f \t\t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = \u041a\u043e\u0434\u0421\u0438\u043c\u0432 + 848 \t\t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &gt;= 224) \u0418 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &lt;= 239) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0430 - \u043f \t\t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = \u041a\u043e\u0434\u0421\u0438\u043c\u0432 + 848 \t\t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &gt;= 240) \u0418 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &lt;= 255) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0440 - \u044f \t\t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = \u041a\u043e\u0434\u0421\u0438\u043c\u0432 + 848 \t\t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 184) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0451 \t\t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 1105 \t\t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 168) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0401 \t\t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 1025 \t\t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 185) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u2116 \t\t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 8470 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b \u043a \u0441\u0442\u0440\u043e\u043a\u0435 \t\t\t\t\u0420\u0435\u0437 = \u0420\u0435\u0437 + \u0421\u0438\u043c\u0432\u043e\u043b(\u041a\u043e\u0434\u0421\u0438\u043c\u0432) \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 1\u0421 (\u043a\u043e\u0434\u0438\u0440\u043e\u043a\u0430 UTF-8) \u0432  \/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u043e\u0434\u043e\u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 Windows-1251) \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430UTF8 - \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 UTF-8 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 Windows-1251 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0421\u0442\u0440\u043e\u043a\u0430UTF8_\u0412\u041c\u0430\u0441\u0441\u0438\u0432WIN1251(\u0421\u0442\u0440\u043e\u043a\u0430UTF8) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u043e\u0432\u044b\u0439 \u041c\u0430\u0441\u0441\u0438\u0432; \t \t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u0421\u0442\u0440\u043e\u043a\u0430UTF8) = \u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\u0414\u043b\u044f \u0418\u043d\u0434=1 \u041f\u043e \u0421\u0442\u0440\u0414\u043b\u0438\u043d\u0430(\u0421\u0442\u0440\u043e\u043a\u0430UTF8) \u0426\u0438\u043a\u043b \t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = \u041a\u043e\u0434\u0421\u0438\u043c\u0432\u043e\u043b\u0430(\u0421\u0440\u0435\u0434(\u0421\u0442\u0440\u043e\u043a\u0430UTF8, \u0418\u043d\u0434, 1)); \t\t\t\/\/ \u041f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0438\u0437 UTF-8 \u0432 Windows-1251 \t\t\t\u0415\u0441\u043b\u0438 \u041a\u043e\u0434\u0421\u0438\u043c\u0432 &lt; 192 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = \u041a\u043e\u0434\u0421\u0438\u043c\u0432 \t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &gt;= 192+848) \u0418 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &lt;= 223+848) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0410 - \u042f \t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = \u041a\u043e\u0434\u0421\u0438\u043c\u0432 - 848 \t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &gt;= 224+848) \u0418 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &lt;= 239+848) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0430 - \u043f \t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = \u041a\u043e\u0434\u0421\u0438\u043c\u0432 - 848 \t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &gt;= 240+848) \u0418 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 &lt;= 255+848) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0440 - \u044f \t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = \u041a\u043e\u0434\u0421\u0438\u043c\u0432 - 848 \t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 1105) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0451 \t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 184 \t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 1025) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0401 \t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 168 \t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 (\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 8470) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u2116 \t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = 185 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \t\t\t\t\u041a\u043e\u0434\u0421\u0438\u043c\u0432 = -1 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \t\t\t\u0415\u0441\u043b\u0438 \u041a\u043e\u0434\u0421\u0438\u043c\u0432 &gt;= 0 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0420\u0435\u0437.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u041a\u043e\u0434\u0421\u0438\u043c\u0432) \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438\t \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 COMSafeArray (\u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 Windows-1251) \/\/ \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 1C (\u043a\u043e\u0434\u0438\u0440\u043e\u043a\u0430 UTF-8) \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 COMSafeArray \/\/                       (\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c 1) \/\/                       \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 - \u044d\u0442\u043e \u043a\u043e\u0434\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \/\/                       \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 Windows-1251 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 &quot;&quot;, \u0435\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f COMSafeArrayWIN1251_\u0412\u0421\u0442\u0440\u043e\u043a\u0443UTF8(\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray) = \u0422\u0438\u043f(&quot;COMSafeArray&quot;) \u0418 \t\t (\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray.GetDimensions() = 1) \u0418 \t\t (\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray.GetLength(0) &gt; 0) \u0422\u043e\u0433\u0434\u0430 \t\t\u041c\u0430\u0441\u0441\u0438\u0432 = \u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray.\u0412\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c(); \t\t\u0420\u0435\u0437 = \u041c\u0430\u0441\u0441\u0438\u0432WIN1251_\u0412\u0421\u0442\u0440\u043e\u043a\u0443UTF8(\u041c\u0430\u0441\u0441\u0438\u0432) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 1C (\u043a\u043e\u0434\u0438\u0440\u043e\u043a\u0430 UTF-8) \u0432  \/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u043e\u0434\u043e\u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 Windows-1251) \u0432 \u0432\u0438\u0434\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 COMSafeArray \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430UTF8 - \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 UTF-8 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 COMSafeArray \u0441 \u043a\u043e\u0434\u0430\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 Windows-1251 \/\/  \u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0421\u0442\u0440\u043e\u043a\u0430UTF8_\u0412COMSafeArrayWIN1251(\u0421\u0442\u0440\u043e\u043a\u0430UTF8) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u0421\u0442\u0440\u043e\u043a\u0430UTF8) = \u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\u041c\u0430\u0441\u0441\u0438\u0432 = \u0421\u0442\u0440\u043e\u043a\u0430UTF8_\u0412\u041c\u0430\u0441\u0441\u0438\u0432WIN1251(\u0421\u0442\u0440\u043e\u043a\u0430UTF8); \t\t\u0420\u0435\u0437 = \u041d\u043e\u0432\u044b\u0439 COMSafeArray(\u041c\u0430\u0441\u0441\u0438\u0432, &quot;VT_UI1&quot;, \u041c\u0430\u0441\u0441\u0438\u0432.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e()) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0432 \u043f\u043e\u043b\u0435 \u0442\u0438\u043f\u0430 <b>BLOB(BINARY)<\/b> \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443) \u2014 \u00abCARDS.CDIMAGE\u00bb. \u0417\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u00ab<i>\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430<\/i>\u00bb \u0438 \u00ab<i>COMSafeArray<\/i>\u00bb. \u00ab<i>COMSafeArray<\/i>\u00bb \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u00ab<i>\u041c\u0430\u0441\u0441\u0438\u0432<\/i>\u00bb. \u00ab<i>\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430<\/i>\u00bb \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043b\u0438\u0431\u043e \u0441 \u0444\u0430\u0439\u043b\u043e\u043c \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u043b\u0438\u0431\u043e \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u00ab\u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435\u0414\u0430\u043d\u043d\u044b\u0435\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u00ab<i>BASE64<\/i>\u00bb \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u00ab<i>Base64\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/i>\u00bb \u0438 \u00ab<i>Base64\u0421\u0442\u0440\u043e\u043a\u0430<\/i>\u00bb. \u041f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u0445\u043e\u0442\u0435\u043b \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u044c\u044e (\u043d\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0432 \u0444\u0430\u0439\u043b\u044b) \u0438 \u0440\u0435\u0448\u0438\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e \u0441\u0445\u0435\u043c\u0435: \u00ab<i>COMSafeArray<\/i>\u00bb\u00ab<i>\u041c\u0430\u0441\u0441\u0438\u0432<\/i>\u00bb\u00ab<i>\u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435\u0414\u0430\u043d\u043d\u044b\u0435<\/i>\u00bb\u00ab<i>\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430<\/i>\u00bb. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00ab<i>\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442\u0412\u0421\u0442\u0440\u043e\u043a\u0443Base64<\/i>\u00bb \u0438 \u00ab<i>\u0421\u0442\u0440\u043e\u043a\u0430Base64\u0412\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442<\/i>\u00bb. <br \/>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:  <\/p>\n<pre><code class=\"1c\">\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442\u0412\u0421\u0442\u0440\u043e\u043a\u0443Base64 \u0421\u0442\u0440\u043e\u043a\u0430Base64\u0412\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442 COMSafeArray_\u0412\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430_\u0412COMSafeArray <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 BASE64. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442 - \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u043a\u0430\u0436\u0434\u043e\u0435 \u0447\u0438\u0441\u043b\u043e 0..255), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \/\/               \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c; \/\/  \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 BASE64, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b \/\/                \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 (\u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430). \/\/                \u041f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 - \u0440\u0430\u0437\u0440\u044b\u0432 \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0435 72 \u0441\u0438\u043c\u0432\u043e\u043b\u0430. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c 0, \/\/                \u0442\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 (\u0432\u0435\u0441\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439); \/\/  \u0421\u0442\u0440\u043e\u043a\u0430Base64 - \u0441\u044e\u0434\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f - \u0441\u0442\u0440\u043e\u043a\u0430 BASE64; \/\/  \u0418\u043d\u0434\u0435\u043a\u0441\u0411\u0430\u0439\u0442\u0430\u041e\u0448\u0438\u0431\u043a\u0438 - \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \/\/                      \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442 (\u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u0441 0), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c  \/\/                      \u043f\u0440\u0435\u0440\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 (\u0435\u0441\u043b\u0438 -1, \u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0435 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445  \/\/                      \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430) \/\/  \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 - \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435  \/\/              \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0438 \u041b\u043e\u0436\u044c, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 (\u0432 \u044d\u0442\u043e\u043c \/\/  \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445) \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442\u0412\u0421\u0442\u0440\u043e\u043a\u0443Base64(\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442, \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437=72, \u0421\u0442\u0440\u043e\u043a\u0430Base64, \u0418\u043d\u0434\u0435\u043a\u0441\u0411\u0430\u0439\u0442\u0430\u041e\u0448\u0438\u0431\u043a\u0438, \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0410\u043b\u0444\u0430\u0432\u0438\u0442Base64 = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/&quot;; \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t\u0418\u043d\u0434\u0435\u043a\u0441\u0411\u0430\u0439\u0442\u0430\u041e\u0448\u0438\u0431\u043a\u0438 = -1; \t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442) = \u0422\u0438\u043f(&quot;\u041c\u0430\u0441\u0441\u0438\u0432&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 (\u0422\u0438\u043f\u0417\u043d\u0447(\u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437) = \u0422\u0438\u043f(&quot;\u0427\u0438\u0441\u043b\u043e&quot;)) \u0418 (\u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 &gt;= 0) \u0422\u043e\u0433\u0434\u0430 \t\t\t\u0412\u0413\u0440\u0430\u043d\u0438\u0446\u0430\u041c\u0430\u0441\u0441\u0438\u0432\u0430 = \u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442.\u0412\u0413\u0440\u0430\u043d\u0438\u0446\u0430(); \t\t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64 = &quot;&quot;; \t\t\t\u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 = 0; \/\/ \u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430Base64 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e \t\t\t                      \/\/ \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 \u0441\u0438\u043c\u0432\u043e\u043b\u0430, \u0442\u043e \u044d\u0442\u043e \u0442\u0435\u043a\u0443\u0449. \u0434\u043b\u0438\u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 \t\t\t\u0418\u043d\u0434\u0411\u0430\u0439\u0442\u0430\u0412\u0422\u0440\u0438\u0430\u0434\u0435 = 0; \/\/ \u0418\u043d\u0434\u0435\u043a\u0441 (0..2) \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0442\u0440\u0438\u0430\u0434\u0435  \t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = 0;\/\/ \u0427\u0438\u0441\u043b\u043e, \u0432\u044b\u0440\u0430\u0436\u0430\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 3-\u0445 \u0431\u0430\u0439\u0442\u043e\u0432 \u0442\u0440\u0438\u0430\u0434\u044b \t\t\t\u0414\u043b\u044f \u0418\u043d\u0434=0 \u041f\u043e \u0412\u0413\u0440\u0430\u043d\u0438\u0446\u0430\u041c\u0430\u0441\u0441\u0438\u0432\u0430 \u0426\u0438\u043a\u043b \t\t\t\t\/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \t\t\t\t\u0417\u043d\u0430\u0447\u0411\u0430\u0439\u0442 = \u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442[\u0418\u043d\u0434]; \t\t\t\t\u0415\u0441\u043b\u0438 (\u0417\u043d\u0430\u0447\u0411\u0430\u0439\u0442 &gt;= 0) \u0418 (\u0417\u043d\u0430\u0447\u0411\u0430\u0439\u0442 &lt;= 255) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u0439\u0442\u0430 \t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = 256*\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b + \u0417\u043d\u0430\u0447\u0411\u0430\u0439\u0442; \t\t\t\t\t\u0418\u043d\u0434\u0411\u0430\u0439\u0442\u0430\u0412\u0422\u0440\u0438\u0430\u0434\u0435 = \u0418\u043d\u0434\u0411\u0430\u0439\u0442\u0430\u0412\u0422\u0440\u0438\u0430\u0434\u0435 + 1; \t\t\t\t\t\u0415\u0441\u043b\u0438 (\u0418\u043d\u0434\u0411\u0430\u0439\u0442\u0430\u0412\u0422\u0440\u0438\u0430\u0434\u0435 &gt; 2) \u0418\u041b\u0418 (\u0418\u043d\u0434 = \u0412\u0413\u0440\u0430\u043d\u0438\u0446\u0430\u041c\u0430\u0441\u0441\u0438\u0432\u0430) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\/\/ \u0417\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0442\u0440\u0438\u0430\u0434\u0430 \u0438\u043b\u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f \u0432\u0435\u0441\u044c  \t\t\t\t\t\t\/\/ \u043c\u0430\u0441\u0441\u0438\u0432 (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0442\u0440\u0438\u0430\u0434\u0430 \u043d\u0435\u043f\u043e\u043b\u043d\u0430\u044f) - \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c  \t\t\t\t\t\t\/\/ \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0438\u0430\u0434\u044b \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0443 BASE64 \t\t\t\t\t\t \t\t\t\t\t\t\/\/ \u0415\u0441\u043b\u0438 \u0442\u0440\u0438\u0430\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0439, \u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0435\u0435 \t\t\t\t\t\t\/\/ \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \t\t\t\t\t\t\u0414\u043b\u044f \u0418\u043d\u0434\u0414\u043e\u043f\u043e\u043b\u043d=\u0418\u043d\u0434\u0411\u0430\u0439\u0442\u0430\u0412\u0422\u0440\u0438\u0430\u0434\u0435 \u041f\u043e 2 \u0426\u0438\u043a\u043b \t\t\t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = 256*\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\t\t\t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0442\u0432\u0435\u0440\u043e\u043a BASE64 \t\t\t\t\t\t\u0421\u0442\u0440\u0427\u0435\u0442\u0432 = &quot;&quot;;  \/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0438\u0430\u0434\u044b \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0443 BASE64 \t\t\t\t\t\t\/\/ \u0415\u0441\u043b\u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0430 \u043d\u0435\u043f\u043e\u043b\u043d\u0430\u044f (\u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0439 \u0442\u0440\u0438\u0430\u0434\u044b), \t\t\t\t\t\t\/\/ \u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0435\u0435 \u0437\u043d\u0430\u043a\u0430\u043c\u0438 &quot;=&quot; \t\t\t\t\t\t\u0414\u043b\u044f \u0418\u043d\u0434\u0427\u0435\u0442\u0432=\u0418\u043d\u0434\u0411\u0430\u0439\u0442\u0430\u0412\u0422\u0440\u0438\u0430\u0434\u0435+1 \u041f\u043e 3 \u0426\u0438\u043a\u043b \t\t\t\t\t\t\t\u041e\u0441\u0442\u0430\u0442 = \u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b % 64; \t\t\t\t\t\t\t\u0421\u0442\u0440\u0427\u0435\u0442\u0432 = &quot;=&quot; + \u0421\u0442\u0440\u0427\u0435\u0442\u0432; \t\t\t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = (\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b - \u041e\u0441\u0442\u0430\u0442) \/ 64 \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\t\t\t\/\/ \u0412\u044b\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u044b BASE64 \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0443 \t\t\t\t\t\t\u0414\u043b\u044f \u0418\u043d\u0434\u0427\u0435\u0442\u0432=0 \u041f\u043e \u0418\u043d\u0434\u0411\u0430\u0439\u0442\u0430\u0412\u0422\u0440\u0438\u0430\u0434\u0435 \u0426\u0438\u043a\u043b \t\t\t\t\t\t\t\u041e\u0441\u0442\u0430\u0442 = \u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b % 64; \t\t\t\t\t\t\t\u0421\u0442\u0440\u0427\u0435\u0442\u0432 = \u0421\u0440\u0435\u0434(\u0410\u043b\u0444\u0430\u0432\u0438\u0442Base64, \u041e\u0441\u0442\u0430\u0442+1, 1) + \u0421\u0442\u0440\u0427\u0435\u0442\u0432; \t\t\t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = (\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b - \u041e\u0441\u0442\u0430\u0442) \/ 64 \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\t\t\t\/\/ \u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0443 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 = 0 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\/\/ \u041d\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \t\t\t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64 = \u0421\u0442\u0440\u043e\u043a\u0430Base64 + \u0421\u0442\u0440\u0427\u0435\u0442\u0432 \t\t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\t\/\/ \u0420\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \t\t\t\t\t\t\t \t\t\t\t\t\t\t\/\/ \u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0443 \t\t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 &gt;= \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64 = \u0421\u0442\u0440\u043e\u043a\u0430Base64 + \u0421\u0438\u043c\u0432\u043e\u043b(13) + \u0421\u0438\u043c\u0432\u043e\u043b(10); \t\t\t\t\t\t\t\t\u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 = 0 \t\t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0443 \u0432 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0443 \t\t\t\t\t\t\t\u0414\u043b\u0421\u0442\u0440\u0427\u0435\u0442\u0432 = \u0421\u0442\u0440\u0414\u043b\u0438\u043d\u0430(\u0421\u0442\u0440\u0427\u0435\u0442\u0432);  \/\/ \u0414\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 4 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \t\t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 + \u0414\u043b\u0421\u0442\u0440\u0427\u0435\u0442\u0432 &lt;= \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64 = \u0421\u0442\u0440\u043e\u043a\u0430Base64 + \u0421\u0442\u0440\u0427\u0435\u0442\u0432; \t\t\t\t\t\t\t\t\u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 = \u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 + \u0414\u043b\u0421\u0442\u0440\u0427\u0435\u0442\u0432; \t\t\t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\t\t\u0414\u043b\u044f \u0418\u043d\u0434\u0427\u0435\u0442\u0432=1 \u041f\u043e \u0414\u043b\u0421\u0442\u0440\u0427\u0435\u0442\u0432 \u0426\u0438\u043a\u043b \t\t\t\t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 &gt;= \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64 = \u0421\u0442\u0440\u043e\u043a\u0430Base64 + \u0421\u0438\u043c\u0432\u043e\u043b(13) + \u0421\u0438\u043c\u0432\u043e\u043b(10); \t\t\t\t\t\t\t\t\t\t\u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 = 0 \t\t\t\t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\t\t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64 = \u0421\u0442\u0440\u043e\u043a\u0430Base64 + \u0421\u0440\u0435\u0434(\u0421\u0442\u0440\u0427\u0435\u0442\u0432, \u0418\u043d\u0434\u0427\u0435\u0442\u0432, 1); \t\t\t\t\t\t\t\t\t\u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 = \u0414\u043b\u0422\u0435\u043a\u0443\u0449\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 + 1 \t\t\t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\t\t\t \t\t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = 0; \t\t\t\t\t\t\u0418\u043d\u0434\u0411\u0430\u0439\u0442\u0430\u0412\u0422\u0440\u0438\u0430\u0434\u0435 = 0 \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430: \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u043d\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 0.255 \t\t\t\t\t\u0418\u043d\u0434\u0435\u043a\u0441\u0411\u0430\u0439\u0442\u0430\u041e\u0448\u0438\u0431\u043a\u0438 = \u0418\u043d\u0434; \t\t\t\t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0430\u0439\u0442\u0430 (0..255)&quot;; \t\t\t\t    \u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430: \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0420\u0430\u0437\u0421\u0442\u0440\u0427\u0435\u0440\u0435\u0437 \t\t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;\u041d\u0435\u0432\u0435\u0440\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u0442\u0440\u043e\u043a\u0438&quot; \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u0418\u043d\u0430\u0447\u0435 \t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430: \u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0442\u0438\u043f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0442\u0438\u043f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430&quot; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\/\/ \u041e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \t\u0415\u0441\u043b\u0438 \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 BASE64 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430Base64 - \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 BASE64, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c; \/\/  \u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442 - \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u043a\u0430\u0436\u0434\u043e\u0435 \u0447\u0438\u0441\u043b\u043e 0..255), \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \/\/               \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 (\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0421\u0442\u0440\u043e\u043a\u0430Base64) \/\/  \u041d\u043e\u043c\u0435\u0440\u0421\u0438\u043c\u0432\u043e\u043b\u0430\u041e\u0448\u0438\u0431\u043a\u0438 - \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \/\/                       \u043d\u043e\u043c\u0435\u0440 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0421\u0442\u0440\u043e\u043a\u0430Base64 (\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441 1), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c  \/\/                       \u043f\u0440\u0435\u0440\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 (\u0435\u0441\u043b\u0438 0, \u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0435 \u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u0445 \/\/                       \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438) \/\/  \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 - \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435  \/\/              \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435. \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0438 \u041b\u043e\u0436\u044c, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 (\u0432 \u044d\u0442\u043e\u043c \/\/  \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445) \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0421\u0442\u0440\u043e\u043a\u0430Base64\u0412\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442(\u0421\u0442\u0440\u043e\u043a\u0430Base64, \u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442, \u041d\u043e\u043c\u0435\u0440\u0421\u0438\u043c\u0432\u043e\u043b\u0430\u041e\u0448\u0438\u0431\u043a\u0438, \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431) \u042d\u043a\u0441\u043f\u043e\u0440\u0442  \t\u0410\u043b\u0444\u0430\u0432\u0438\u0442Base64 = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/&quot;; \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t\u041d\u043e\u043c\u0435\u0440\u0421\u0438\u043c\u0432\u043e\u043b\u0430\u041e\u0448\u0438\u0431\u043a\u0438 = 0; \t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;&quot;; \t \t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u0421\u0442\u0440\u043e\u043a\u0430Base64) = \u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;) \u0422\u043e\u0433\u0434\u0430 \t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64\u0414\u043b\u0438\u043d\u0430 = \u0421\u0442\u0440\u0414\u043b\u0438\u043d\u0430(\u0421\u0442\u0440\u043e\u043a\u0430Base64); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442 = \u041d\u043e\u0432\u044b\u0439 \u041c\u0430\u0441\u0441\u0438\u0432; \t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = 0;   \/\/ \u0427\u0438\u0441\u043b\u043e, \u0432\u044b\u0440\u0430\u0436\u0430\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 3-\u0445 \u0431\u0430\u0439\u0442\u043e\u0432 \u0442\u0440\u0438\u0430\u0434\u044b \u0438 4-\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0438 \t\t\u0418\u043d\u0434\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 = 0; \/\/ \u0418\u043d\u0434\u0435\u043a\u0441 (1..4) \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0435 \t\t                  \/\/ (\u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 &quot;=&quot;) \t\t\u041a\u043e\u043b\u0417\u043d\u0430\u043a\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 = 0; \/\/ \u041a\u043e\u043b-\u0432\u043e \u0437\u043d\u0430\u0447\u0430\u0449\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0435 (\u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 &quot;=&quot;) \t\t\u0414\u043b\u044f \u0418\u043d\u0434=1 \u041f\u043e \u0421\u0442\u0440\u043e\u043a\u0430Base64\u0414\u043b\u0438\u043d\u0430 \u0426\u0438\u043a\u043b \t\t\t\u0418\u0441\u0445\u0421\u0438\u043c\u0432 = \u0421\u0440\u0435\u0434(\u0421\u0442\u0440\u043e\u043a\u0430Base64, \u0418\u043d\u0434, 1); \t\t\t\u0415\u0441\u043b\u0438 (\u0418\u0441\u0445\u0421\u0438\u043c\u0432 = &quot; &quot;) \u0418\u041b\u0418 (\u0418\u0441\u0445\u0421\u0438\u043c\u0432 = \u0421\u0438\u043c\u0432\u043e\u043b\u044b.\u0422\u0430\u0431) \u0418\u041b\u0418  \t\t\t\t (\u0418\u0441\u0445\u0421\u0438\u043c\u0432 = \u0421\u0438\u043c\u0432\u043e\u043b\u044b.\u0412\u041a) \u0418\u041b\u0418 (\u0418\u0441\u0445\u0421\u0438\u043c\u0432 = \u0421\u0438\u043c\u0432\u043e\u043b\u044b.\u041f\u0421) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u044b-\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\u0415\u0441\u043b\u0438 \u0418\u0441\u0445\u0421\u0438\u043c\u0432 = &quot;=&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0417\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b - \u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 2-\u0445 \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \t\t\t\t\t\u0415\u0441\u043b\u0438 (\u0418\u043d\u0434=\u0421\u0442\u0440\u043e\u043a\u0430Base64\u0414\u043b\u0438\u043d\u0430-1) \u0418\u041b\u0418 (\u0418\u043d\u0434=\u0421\u0442\u0440\u043e\u043a\u0430Base64\u0414\u043b\u0438\u043d\u0430) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\/\/ \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u044b &quot;=&quot; \t\t\t\t\t\t \t\t\t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0435 \t\t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = 64*\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b + 0; \t\t\t\t\t\t\u0418\u043d\u0434\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 = \u0418\u043d\u0434\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 + 1; \t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430: \u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \t\t\t\t\t\t\u041d\u043e\u043c\u0435\u0440\u0421\u0438\u043c\u0432\u043e\u043b\u0430\u041e\u0448\u0438\u0431\u043a\u0438 = \u0418\u043d\u0434; \t\t\t\t\t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435&quot;; \t\t\t\t\t    \u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c BASE64 \t\t\t\t\t\u0417\u043d\u0430\u0447\u0421\u0438\u043c\u0432Base64 = \u041d\u0430\u0439\u0442\u0438(\u0410\u043b\u0444\u0430\u0432\u0438\u0442Base64, \u0418\u0441\u0445\u0421\u0438\u043c\u0432)-1; \t\t\t\t\t\u0415\u0441\u043b\u0438 (\u0417\u043d\u0430\u0447\u0421\u0438\u043c\u0432Base64 &gt;= 0) \u0418 (\u0417\u043d\u0430\u0447\u0421\u0438\u043c\u0432Base64 &lt;= 63) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432\u0435\u0440\u043d\u043e\u0435 \t\t\t\t\t\t \t\t\t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0435 \t\t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = 64*\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b + \u0417\u043d\u0430\u0447\u0421\u0438\u043c\u0432Base64; \t\t\t\t\t\t\u0418\u043d\u0434\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 = \u0418\u043d\u0434\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 + 1; \t\t\t\t\t\t\u041a\u043e\u043b\u0417\u043d\u0430\u043a\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 = \u041a\u043e\u043b\u0417\u043d\u0430\u043a\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 + 1 \t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430: \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \t\t\t\t\t\t\u041d\u043e\u043c\u0435\u0440\u0421\u0438\u043c\u0432\u043e\u043b\u0430\u041e\u0448\u0438\u0431\u043a\u0438 = \u0418\u043d\u0434; \t\t\t\t\t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435&quot;; \t\t\t\t\t    \u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\t\/\/ \u0415\u0441\u043b\u0438 \u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0447\u0435\u0440\u0432\u0435\u0440\u043a\u0443 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 - \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \t\t\t\t\u0415\u0441\u043b\u0438 \u0418\u043d\u0434\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 &gt;= 4  \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0431\u0430\u0439\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0442\u0440\u0438\u0430\u0434\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e  \t\t\t\t\t\/\/ \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0430 \t\t\t\t\t\u041e\u0441\u0442\u0430\u0442 = \u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b % 256; \t\t\t\t\t\u0411\u0430\u0439\u04422 = \u041e\u0441\u0442\u0430\u0442; \t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = (\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b - \u041e\u0441\u0442\u0430\u0442) \/ 256; \t\t\t\t\t\u041e\u0441\u0442\u0430\u0442 = \u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b % 256; \t\t\t\t\t\u0411\u0430\u0439\u04421 = \u041e\u0441\u0442\u0430\u0442; \t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = (\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b - \u041e\u0441\u0442\u0430\u0442) \/ 256; \t\t\t\t\t\u041e\u0441\u0442\u0430\u0442 = \u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b % 256; \t\t\t\t\t\u0411\u0430\u0439\u04420 = \u041e\u0441\u0442\u0430\u0442; \t\t\t\t\t\u0415\u0441\u043b\u0438 \u041a\u043e\u043b\u0417\u043d\u0430\u043a\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 &gt;= 2 \u0422\u043e\u0433\u0434\u0430  \t\t\t\t\t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0411\u0430\u0439\u04420); \t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u041a\u043e\u043b\u0417\u043d\u0430\u043a\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 &gt;= 3 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0411\u0430\u0439\u04421); \t\t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u041a\u043e\u043b\u0417\u043d\u0430\u043a\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 &gt;= 4 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0411\u0430\u0439\u04422) \t\t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\t\t\/\/ \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0438 \t\t\t\t\t\u0417\u043d\u0430\u0447\u0422\u0440\u0438\u0430\u0434\u044b = 0; \t\t\t\t\t\u0418\u043d\u0434\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 = 0; \t\t\t\t\t\u041a\u043e\u043b\u0417\u043d\u0430\u043a\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 = 0; \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043d\u0435\u0442 \u043b\u0438 \u043d\u0435\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0438 \t\t\u0415\u0441\u043b\u0438 \u0418\u043d\u0434\u0421\u0438\u043c\u0432\u0412\u0427\u0435\u0442\u0432 &gt; 0 \u0422\u043e\u0433\u0434\u0430 \t\t\t\u0415\u0441\u043b\u0438 \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430: \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \t\t\t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0447\u0435\u0442\u0432\u0435\u0440\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430&quot; \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u0418\u043d\u0430\u0447\u0435 \t\t\/\/ \u041e\u0448\u0438\u0431\u043a\u0430: \u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0442\u0438\u043f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0442\u0438\u043f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438&quot; \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\/\/ \u041e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \t\u0415\u0441\u043b\u0438 \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;&quot; \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 COMSafeArray (BLOB-\u043f\u043e\u043b\u0435 \u0441 \u0431\u0430\u0439\u0442\u0430\u043c\u0438  \/\/ \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430) \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 COMSafeArray \/\/                       (\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c 1) \/\/                       \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 - \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0431\u0430\u0439\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \/\/                       \u043a\u043b\u0430\u0441\u0441\u043e\u043c \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f COMSafeArray_\u0412\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0443(\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray) = \u0422\u0438\u043f(&quot;COMSafeArray&quot;) \u0418 \t\t (\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray.GetDimensions() = 1) \u0418 \t\t (\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray.GetLength(0) &gt; 0) \u0422\u043e\u0433\u0434\u0430 \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\u041c\u0430\u0441\u0441\u0438\u0432 = \u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray.\u0412\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c(); \t\t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64 = &quot;&quot;; \t\t\t\u0418\u043d\u0434\u0435\u043a\u0441\u0411\u0430\u0439\u0442\u0430\u041e\u0448\u0438\u0431\u043a\u0438 = 0; \t\t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;&quot;; \t\t\t\u0415\u0441\u043b\u0438 \u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442\u0412\u0421\u0442\u0440\u043e\u043a\u0443Base64(\u041c\u0430\u0441\u0441\u0438\u0432, 0, \u0421\u0442\u0440\u043e\u043a\u0430Base64, \u0418\u043d\u0434\u0435\u043a\u0441\u0411\u0430\u0439\u0442\u0430\u041e\u0448\u0438\u0431\u043a\u0438, \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0414\u0432\u043e\u0438\u0447\u0414\u0430\u043d\u043d = Base64\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435(\u0421\u0442\u0440\u043e\u043a\u0430Base64); \t\t\t\t\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = \u041d\u043e\u0432\u044b\u0439 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430(\u0414\u0432\u043e\u0438\u0447\u0414\u0430\u043d\u043d); \t\t\t\t\u0420\u0435\u0437 = \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432  \/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 COMSafeArray \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 COMSafeArray \u0441 \u0431\u0430\u0439\u0442\u0430\u043c\u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \/\/  \u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430_\u0412COMSafeArray(\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 (\u0422\u0438\u043f\u0417\u043d\u0447(\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430) = \u0422\u0438\u043f(&quot;\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430&quot;)) \u0418 \t\t (\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430.\u0412\u0438\u0434 &lt;&gt; \u0412\u0438\u0434\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.\u041f\u0443\u0441\u0442\u0430\u044f) \u0422\u043e\u0433\u0434\u0430 \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\u0414\u0432\u043e\u0438\u0447\u0414\u0430\u043d\u043d = \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430.\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435\u0414\u0430\u043d\u043d\u044b\u0435(); \t\t\t\u0421\u0442\u0440\u043e\u043a\u0430Base64 = Base64\u0421\u0442\u0440\u043e\u043a\u0430(\u0414\u0432\u043e\u0438\u0447\u0414\u0430\u043d\u043d); \t\t\t\u041c\u0430\u0441\u0441\u0438\u0432 = \u041d\u043e\u0432\u044b\u0439 \u041c\u0430\u0441\u0441\u0438\u0432; \t\t\t\u041d\u043e\u043c\u0435\u0440\u0421\u0438\u043c\u0432\u043e\u043b\u0430\u041e\u0448\u0438\u0431\u043a\u0438 = 0; \t\t\t\u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431 = &quot;&quot;; \t\t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430Base64\u0412\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442(\u0421\u0442\u0440\u043e\u043a\u0430Base64, \u041c\u0430\u0441\u0441\u0438\u0432, \u041d\u043e\u043c\u0435\u0440\u0421\u0438\u043c\u0432\u043e\u043b\u0430\u041e\u0448\u0438\u0431\u043a\u0438, \u0421\u043e\u043e\u0431\u0449\u041e\u0448\u0438\u0431) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0420\u0435\u0437 = \u041d\u043e\u0432\u044b\u0439 COMSafeArray(\u041c\u0430\u0441\u0441\u0438\u0432, &quot;VT_UI1&quot;, \u041c\u0430\u0441\u0441\u0438\u0432.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e()) \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438\t\t \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418\u0437 \u044d\u0442\u043e\u0439 \u0437\u0430\u0442\u0435\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u044b\u0448\u043b\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00ab<i>\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442\u0412\u0421\u0442\u0440\u043e\u043a\u0443Base64<\/i>\u00bb \u0438 \u00ab<i>\u0421\u0442\u0440\u043e\u043a\u0430Base64\u0412\u041c\u0430\u0441\u0441\u0438\u0432\u0411\u0430\u0439\u0442<\/i>\u00bb \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c\u0438, \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0434\u0430\u0436\u0435 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u043e\u0441\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0441\u0435\u043a\u0443\u043d\u0434. \u042f \u0442\u0430\u043a \u0438 \u043d\u0435 \u0434\u043e\u043a\u043e\u043f\u0430\u043b\u0441\u044f \u0434\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u2013 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0431\u044b\u043b\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043c\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438\u043b\u0438 \u0432\u0441\u0435 \u0443\u043f\u0438\u0440\u0430\u043b\u043e\u0441\u044c \u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b (\u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 + \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u00ab<i>\u0421\u0440\u0435\u0434<\/i>\u00bb (\u0442.\u043a. \u043d\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c \u0441\u0442\u0440\u043e\u043a\u0438, \u0442.\u043a. \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u00ab<i>\u0421\u0438\u043c\u0432\u043e\u043b<\/i>\u00bb \u0442\u043e\u0436\u0435 \u043d\u0435\u0442), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u00ab<i>\u041d\u0430\u0439\u0442\u0438<\/i>\u00bb). \u0412 \u043e\u0431\u0449\u0435\u043c, \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0440\u0435\u0448\u0438\u043b \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0431\u043c\u0435\u043d \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u00ab\u043a\u0430\u043a \u0432\u0441\u0435\u00bb \u00ab<i>COMSafeArray<\/i>\u00bb\u00ab<i>\u0424\u0430\u0439\u043b<\/i>\u00bb \u00ab<i>\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430<\/i>\u00bb. \u0414\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0442\u0430\u043a\u0436\u0435 \u043f\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c \u0438\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u2013 COM-\u043e\u0431\u044a\u0435\u043a\u0442 \u00abADO.Stream\u00bb. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e. \u0412\u043e\u0442 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434:  <\/p>\n<pre><code class=\"1c\">COMSafeArray_\u0412\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430_\u0412COMSafeArray <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 COMSafeArray (BLOB-\u043f\u043e\u043b\u0435 \u0441 \u0431\u0430\u0439\u0442\u0430\u043c\u0438  \/\/ \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430) \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 COMSafeArray \/\/                       (\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c 1) \/\/                       \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 - \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0431\u0430\u0439\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \/\/                       \u043a\u043b\u0430\u0441\u0441\u043e\u043c \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f COMSafeArray_\u0412\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0443(\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 \u0422\u0438\u043f\u0417\u043d\u0447(\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray) = \u0422\u0438\u043f(&quot;COMSafeArray&quot;) \u0418 \t\t (\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray.GetDimensions() = 1) \u0418 \t\t (\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray.GetLength(0) &gt; 0) \u0422\u043e\u0433\u0434\u0430 \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0424\u0430\u0439\u043b\u0430 = \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0424\u0430\u0439\u043b\u0430(); \t\t\t\/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c BLOB \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \t\t\tStreamOut = \u041d\u043e\u0432\u044b\u0439 COM\u041e\u0431\u044a\u0435\u043a\u0442(&quot;ADODB.Stream&quot;);     \t\tStreamOut.Type = ADO.StreamTypeEnum.adTypeBinary; \/\/ \u0412 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435     \t\tStreamOut.Mode = ADO.ConnectModeEnum.adModeReadWrite; \/\/ \u0420\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0442\u043e\u043a\u0430 - \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \t\t    StreamOut.Open(); \t\t    StreamOut.Write(\u041e\u0431\u044a\u0435\u043a\u0442COMSafeArray);  \t\t    StreamOut.SaveToFile(\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0424\u0430\u0439\u043b\u0430, ADO.SaveOptionsEnum.adSaveCreateOverWrite);      \t\tStreamOut.Close();\t\t\t \t\t\t\/\/ \u0421\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438\u0437 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \t\t\t\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = \u041d\u043e\u0432\u044b\u0439 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430(\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0424\u0430\u0439\u043b\u0430); \t\t\t\u0420\u0435\u0437 = \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430; \t\t\t\/\/ \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \t\t\t\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0424\u0430\u0439\u043b\u044b(\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0424\u0430\u0439\u043b\u0430) \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432  \/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 COMSafeArray \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 - \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b \u0442\u0438\u043f\u0430 COMSafeArray \u0441 \u0431\u0430\u0439\u0442\u0430\u043c\u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \/\/  \u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430_\u0412COMSafeArray(\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 (\u0422\u0438\u043f\u0417\u043d\u0447(\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430) = \u0422\u0438\u043f(&quot;\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430&quot;)) \u0418 \t\t (\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430.\u0412\u0438\u0434 &lt;&gt; \u0412\u0438\u0434\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.\u041f\u0443\u0441\u0442\u0430\u044f) \u0422\u043e\u0433\u0434\u0430 \t\t\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \t\t\t\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0424\u0430\u0439\u043b\u0430 = \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e\u0424\u0430\u0439\u043b\u0430(); \t\t\t\/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \t\t\t\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430.\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c(\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0424\u0430\u0439\u043b\u0430); \t\t\t\/\/ \u0421\u0447\u0438\u0442\u0430\u0442\u044c BLOB \u0438\u0437 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \t\t\tStreamIn = \u041d\u043e\u0432\u044b\u0439 COM\u041e\u0431\u044a\u0435\u043a\u0442(&quot;ADODB.Stream&quot;);     \t\tStreamIn.Type = ADO.StreamTypeEnum.adTypeBinary; \/\/ \u0412 \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435     \t\tStreamIn.Mode = ADO.ConnectModeEnum.adModeReadWrite;  \/\/ \u0420\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0442\u043e\u043a\u0430 - \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \t\t    StreamIn.Open(); \t\t\tStreamIn.LoadFromFile(\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0424\u0430\u0439\u043b\u0430);  \t\t    \u0420\u0435\u0437 = StreamIn.Read();      \t\tStreamIn.Close();\t\t\t \t\t\t\/\/ \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \t\t\t\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0424\u0430\u0439\u043b\u044b(\u0418\u043c\u044f\u0412\u0440\u0435\u043c\u0424\u0430\u0439\u043b\u0430) \t\t\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \t\t\t \t\t\u041a\u043e\u043d\u0435\u0446\u041f\u043e\u043f\u044b\u0442\u043a\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/h1>\n<p>  \u0412\u0430\u0436\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0422.\u0435. \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0438 \u043d\u0443\u0436\u043d\u043e \u044d\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u0434, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043d\u043e \u043f\u043e\u0440\u043e\u0439 \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u043d\u0443\u0434\u043d\u044b\u0439. \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 1\u0421 \u0446\u0435\u043d\u043d\u0430 \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0442\u0435\u043c, \u0447\u0442\u043e \u0431\u0435\u0440\u0435\u0442 \u0432\u0441\u044e \u043f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430 \u0441\u0435\u0431\u044f \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0435 \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 (\u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u0431\u0430\u0437\u043e\u0439), \u043c\u043d\u043e\u0433\u043e\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0422\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043a \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u00ab\u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u043e\u0439\u00bb \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u0412 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043e\u043a\u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (\u043b\u0435\u0432\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u0434\u0438\u0430\u043b\u043e\u0433\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u0437 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f. \u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0433\u0440\u0443\u043f\u043f\u044b (\u043f\u0440\u0430\u0432\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b).<br \/>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u0442\u044c \u0443\u0432\u044f\u0437\u043a\u0443 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u00ab<i>\u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f<\/i>\u00bb \u0438 \u00ab<i>\u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b<\/i>\u00bb \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a, \u0442.\u0435. \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u044b \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u044b. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u0438\u043f\u0438\u0447\u0435\u043d \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u0435\u043d \u2013 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u00ab\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0435\u00bb, \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044f\u0441\u044c.<br \/>  \u042d\u0442\u0438 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"1c\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \/\/ \u041f \u041e \u0414 \u041f \u0420 \u041e \u0413 \u0420 \u0410 \u041c \u041c \u042b    \u0414 \u041b \u042f    \u041e \u0422 \u041e \u0411 \u0420 \u0410 \u0416 \u0415 \u041d \u0418 \u042f    \u0414 \u0410 \u041d \u041d \u042b \u0425    \u0412    \u0418 \u041d \u0422 \u0415 \u0420 \u0424 \u0415 \u0419 \u0421 \u0415 \/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/   \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \u041f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 (\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f)  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 (\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0440\u0430\u0431\u043e\u0442\u0435).  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f - \u0414\u0435\u0440\u0435\u0432\u043e\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f; \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u043b\u043e\u043d\u043e\u043a \t\t\u041a\u0427 = \u041d\u043e\u0432\u044b\u0439 \u041a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0427\u0438\u0441\u043b\u0430(10, 0); \t\t\u041a\u0421 = \u041d\u043e\u0432\u044b\u0439 \u041a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0421\u0442\u0440\u043e\u043a\u0438(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432 = \u041d\u043e\u0432\u044b\u0439 \u041c\u0430\u0441\u0441\u0438\u0432; \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430&quot;)); \t\t\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b = \u041d\u043e\u0432\u044b\u0439 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432(\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432);    \/\/ \u0422\u0438\u043f &quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430&quot;\t\t \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0422\u0438\u043f(&quot;\u0427\u0438\u0441\u043b\u043e&quot;)); \t\t\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0427\u0438\u0441\u043b\u0430 = \u041d\u043e\u0432\u044b\u0439 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432(\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432, , ,\u041a\u0427); \/\/ \u0422\u0438\u043f &quot;\u0427\u0438\u0441\u043b\u043e&quot; \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0422\u0438\u043f(&quot;\u0411\u0443\u043b\u0435\u0432\u043e&quot;)); \t\t\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0411\u0443\u043b\u0435\u0432\u044b = \u041d\u043e\u0432\u044b\u0439 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432(\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432);       \/\/ \u0422\u0438\u043f &quot;\u0411\u0443\u043b\u0435\u0432\u043e&quot; \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;)); \t\t\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0421\u0442\u0440\u043e\u043a\u0438 = \u041d\u043e\u0432\u044b\u0439 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432(\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432, , \u041a\u0421); \/\/ \u0422\u0438\u043f &quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot; \t \t\t\/\/ \u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(&quot;\u041e\u0431\u044a\u0435\u043a\u0442&quot;, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b); \t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(&quot;\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430&quot;, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0427\u0438\u0441\u043b\u0430); \t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(&quot;\u041f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b&quot;, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0411\u0443\u043b\u0435\u0432\u044b); \t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(&quot;\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435&quot;, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0421\u0442\u0440\u043e\u043a\u0438) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u0433\u0440\u0443\u043f\u043f\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a \/\/  \u0418\u0434 - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435; \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0438\u0441\u043a\u043e\u043c\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u043d\u0435 \/\/  \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0423\u0437\u043b\u0430\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430, \u0418\u0434) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 (\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430.\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430.\u041e\u0431\u044a\u0435\u043a\u0442.GRID = \u0418\u0434) \u0422\u043e\u0433\u0434\u0430 \t\t\t\u0420\u0435\u0437 = \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 \u0418\u0437\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430.\u0421\u0442\u0440\u043e\u043a\u0438 \u0426\u0438\u043a\u043b \t\t\t\t\u0415\u0441\u043b\u0438 (\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442.GRID = \u0418\u0434) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417; \t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\u0420\u0435\u0437 = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0423\u0437\u043b\u0430\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417, \u0418\u0434); \t\t\t\t\t\u0415\u0441\u043b\u0438 \u0420\u0435\u0437 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u0433\u0440\u0443\u043f\u043f\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f - \u0414\u0435\u0440\u0435\u0432\u043e\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f; \/\/  \u0418\u0434 - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u0441 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \/\/  \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 (\u0435\u0441\u043b\u0438 \u0442\u0430\u043c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0442\u043e \u0431\u0443\u0434\u0435\u0442  \/\/  \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u0443); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0438\u0441\u043a\u043e\u043c\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u043d\u0435 \/\/  \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u0418\u0434, \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \t\t\u0420\u0435\u0437 = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0423\u0437\u043b\u0430\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430, \u0418\u0434) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0415\u0441\u043b\u0438 \u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u041e\u0431\u0449\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u0443 \t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 \u0418\u0437 \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f.\u0421\u0442\u0440\u043e\u043a\u0438 \u0426\u0438\u043a\u043b \t\t\t\u0415\u0441\u043b\u0438 (\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442.GRID = \u0418\u0434) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\u0420\u0435\u0437 = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0423\u0437\u043b\u0430\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417, \u0418\u0434) \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\u0415\u0441\u043b\u0438 \u0420\u0435\u0437 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0443, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u043c\u0443 \u0433\u0440\u0443\u043f\u043f\u0443. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f - \u0414\u0435\u0440\u0435\u0432\u043e\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442 - \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 ObjGroup; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u0441 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \/\/  \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 (\u0435\u0441\u043b\u0438 \u0442\u0430\u043c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0442\u043e \u0431\u0443\u0434\u0435\u0442  \/\/  \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u0443); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0438\u0441\u043a\u043e\u043c\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u043d\u0435 \/\/  \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u041e\u0431\u044a\u0435\u043a\u0442\u0443(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 \u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u041e\u0431\u044a\u0435\u043a\u0442.GRID, \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0442\u043e\u0433\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u0418\u0434\u0420\u043e\u0434\u0438\u0442 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c \/\/ \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c (\u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \/\/ \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f) \u0433\u0440\u0443\u043f\u043f\u044b \u0418\u0434. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f - \u0414\u0435\u0440\u0435\u0432\u043e\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f; \/\/  \u0418\u0434 - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u043e\u0439 \u043a\u0430\u043a \u043f\u043e\u0442\u043e\u043c\u043e\u043a; \/\/  \u0418\u0434\u0420\u043e\u0434\u0438\u0442 - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u043e\u0439 \u043a\u0430\u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c; \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u0433\u0440\u0430\u043f\u043f\u0430 \u0418\u0434 \u0432\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 \u0418\u0434\u0420\u043e\u0434\u0438\u0442 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 \u041b\u043e\u0436\u044c, \/\/  \u0435\u0441\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u0418\u0434 \u043d\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 \u0418\u0434\u0420\u043e\u0434\u0438\u0442 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u0418\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u041f\u043e\u0442\u043e\u043c\u043e\u043a\u0412\u0414\u0435\u0440\u0435\u0432\u0435\u0413\u0440\u0443\u043f\u043f(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u0418\u0434, \u0418\u0434\u0420\u043e\u0434\u0438\u0442) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c;  \t\u0415\u0441\u043b\u0438 (\u0418\u0434 &gt; 0) \u0418 (\u0418\u0434\u0420\u043e\u0434\u0438\u0442 &gt;= 0) \u0418 (\u0418\u0434 &lt;&gt; \u0418\u0434\u0420\u043e\u0434\u0438\u0442) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 \u0418\u0434\u0420\u043e\u0434\u0438\u0442 = 0 \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u0418\u0434 \u0442\u043e\u0447\u043d\u043e \u0432\u043b\u043e\u0436\u0435\u043d \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u0418\u0434); \t\t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043a \u0432\u0435\u0440\u0448\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u0443 \u0418\u0434\u0420\u043e\u0434\u0438\u0442 \t\t\t\t\/\/ \u0438\u043b\u0438 \u043d\u0435 \u0434\u043e\u0439\u0434\u0435\u043c \u0434\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u0435\u0440\u0445\u0430 \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c; \t\t\t\t\u041f\u043e\u043a\u0430 \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0426\u0438\u043a\u043b \t\t\t\t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442.GRID = \u0418\u0434\u0420\u043e\u0434\u0438\u0442 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\/\/ \u0414\u0430, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u0447\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430 \u0418\u0434 \u0432\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 \u0418\u0434\u0420\u043e\u0434\u0438\u0442  \t\t\t\t\t\t\u0420\u0435\u0437 = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t     \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0433\u0440\u0443\u043f\u043f \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u041e\u0431\u044a\u0435\u043a\u0442. \/\/ \u0415\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0437\u043b\u0430, \u0442\u043e \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u0432 \u0434\u0435\u0440\u0435\u0432\u0435. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u043d\u043e\u0432\u044b\u0439, \u0442\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 (\u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \/\/ \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c), \u0442\u043e \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f - \u0414\u0435\u0440\u0435\u0432\u043e\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442 - \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 ObjGroup, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0430\u0438\u0442\u044c; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \/\/  \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 (\u0435\u0441\u043b\u0438 \u0442\u0430\u043c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0442\u043e \u0431\u0443\u0434\u0435\u0442  \/\/  \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u0443); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u041e\u0431\u044a\u0435\u043a\u0442 \u0438\u043b\u0438 \/\/  \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e;  \/\/ \u0421\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \t \t\u0415\u0441\u043b\u0438 (\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u041e\u0431\u044a\u0435\u043a\u0442.GRID, \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430); \t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0421\u0442\u0440\u043e\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043d\u0435\u0442 - \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u041e\u0431\u044a\u0435\u043a\u0442.PGRID, \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430); \t\t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0421\u0442\u0440\u043e\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(); \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 = \u041e\u0431\u044a\u0435\u043a\u0442; \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = 0; \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b = \u041b\u043e\u0436\u044c; \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041e\u0431\u044a\u0435\u043a\u0442.GRName; \t\t\t\t \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\/\/ \u041d\u0430\u0448\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c; \t\t\t\u0415\u0441\u043b\u0438 ((\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442.PGRID &lt; 0)) \u0418\u041b\u0418 \t\t\t\t ((\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u041e\u0431\u044a\u0435\u043a\u0442.GRID = \u041e\u0431\u044a\u0435\u043a\u0442.PGRID)) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 = \u041e\u0431\u044a\u0435\u043a\u0442; \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041e\u0431\u044a\u0435\u043a\u0442.GRName; \t\t\t\t \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u041d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \t\t\t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0421\u0442\u0440\u043e\u043a\u0438.\u0423\u0434\u0430\u043b\u0438\u0442\u044c(\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417) \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u041e\u0431\u044a\u0435\u043a\u0442.PGRID); \t\t\t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0421\u0442\u0440\u043e\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(); \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 = \u041e\u0431\u044a\u0435\u043a\u0442; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = 0; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b = \u041b\u043e\u0436\u044c; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041e\u0431\u044a\u0435\u043a\u0442.GRName; \t\t\t\t \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0438\u0437 \u0434\u0435\u0440\u0435\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u041e\u0431\u044a\u0435\u043a\u0442  \/\/ (\u0438 \u0432\u0441\u0435 \u0435\u0433\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u0443\u0437\u043b\u044b). \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f - \u0414\u0435\u0440\u0435\u0432\u043e\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442 - \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 ObjGroup, \u0443\u0437\u0435\u043b \u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u0441 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \/\/  \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 (\u0435\u0441\u043b\u0438 \u0442\u0430\u043c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0442\u043e \u0431\u0443\u0434\u0435\u0442  \/\/  \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u0443); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0444\u043e\u043a\u0443\u0441 \u0432\u0432\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \/\/  \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u041e\u0431\u044a\u0435\u043a\u0442 \u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 (\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u041e\u0431\u044a\u0435\u043a\u0442.GRID, \u0421\u0442\u0440\u043e\u043a\u0430\u041d\u0430\u0447\u0430\u043b\u0430\u041f\u043e\u0438\u0441\u043a\u0430); \t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f = \u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430.\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c; \t\t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0418\u043d\u0434\u0435\u043a\u0441\u0421\u0442\u0440\u043e\u043a\u0438\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0421\u0442\u0440\u043e\u043a\u0438.\u0418\u043d\u0434\u0435\u043a\u0441(\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430); \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0421\u0442\u0440\u043e\u043a\u0438.\u0423\u0434\u0430\u043b\u0438\u0442\u044c(\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430); \t\t\t\t\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u041a\u043e\u043b\u0438\u0447 = \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0421\u0442\u0440\u043e\u043a\u0438.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e(); \t\t\t\t\u0415\u0441\u043b\u0438 \u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u041a\u043e\u043b\u0438\u0447 &gt; 0 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0415\u0441\u043b\u0438 \u0418\u043d\u0434\u0435\u043a\u0441\u0421\u0442\u0440\u043e\u043a\u0438\u041e\u0431\u044a\u0435\u043a\u0442\u0430 &lt; \u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u041a\u043e\u043b\u0438\u0447 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0421\u0442\u0440\u043e\u043a\u0438[\u0418\u043d\u0434\u0435\u043a\u0441\u0421\u0442\u0440\u043e\u043a\u0438\u041e\u0431\u044a\u0435\u043a\u0442\u0430] \t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f.\u0421\u0442\u0440\u043e\u043a\u0438[\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u041a\u043e\u043b\u0438\u0447-1] \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044f \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438  \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449 - \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435; \/\/  \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f - \u0414\u0435\u0440\u0435\u0432\u043e\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f; \/\/  \u0418\u0434\u0420\u043e\u0434\u0438\u0442 - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \/\/                \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0438 \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e -  \/\/                \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430, \u0442\u043e \/\/                \u0441\u0442\u0440\u043e\u043a\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u0443); \/\/  \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440 - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c, \/\/                \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0443\u0437\u043b\u0430 \u0418\u0434\u0420\u043e\u0434\u0438\u0442 (\u0435\u0441\u043b\u0438 =0, \u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c - \/\/                \u0432\u0441\u0435 \u0443\u0440\u043e\u0432\u043d\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438). \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0423\u0437\u0435\u043b\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u0418\u0434\u0420\u043e\u0434\u0438\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440=0) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 (\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0418\u0434\u0420\u043e\u0434\u0438\u0442 &gt;= 0) \u0418 (\u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440 &gt;= 0) \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u0435\u0440\u0435\u0432\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043a\u0443 \t\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t\t\u0415\u0441\u043b\u0438 (\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442.\u041e\u0431\u044a\u0435\u043a\u0442.GRID = \u0418\u0434\u0420\u043e\u0434\u0438\u0442) \u0422\u043e\u0433\u0434\u0430 \t\t\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\u0415\u0441\u043b\u0438 \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f\u041f\u043e\u0418\u0434(\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u0418\u0434\u0420\u043e\u0434\u0438\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u0420\u043e\u0434\u0438\u0442)\t \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\t\u0415\u0441\u043b\u0438 \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430\t&lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \t\t\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430.\u041f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b = \u041b\u043e\u0436\u044c; \t\t\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430.\u0421\u0442\u0440\u043e\u043a\u0438.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t \t\t\t\/\/ \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u0437 \u0431\u0430\u0437\u044b \t\t\t\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430 = ObjSet_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(\u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP); \t\t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectGroups(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0418\u0434\u0420\u043e\u0434\u0438\u0442, \u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0434\u0435\u0440\u0435\u0432\u043e \u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \t\t\t\t\/\/ \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e, \t\t\t\t\/\/ \u0435\u0441\u043b\u0438 \u043d\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u043e\u0431\u0445\u043e\u0434\u0430 \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440 \t\t\t\t\u0414\u043b\u044f \u0418\u043d\u0434=0 \u041f\u043e ObjSet_GetCount(\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430)-1 \u0426\u0438\u043a\u043b \t\t\t\t\t\u0413\u0440\u0443\u043f\u043f\u0430 = ObjSet_GetItemByIndex(\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430, \u0418\u043d\u0434); \t\t\t\t\t \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430.\u0421\u0442\u0440\u043e\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(); \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 = \u0413\u0440\u0443\u043f\u043f\u0430; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = 0; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b = \u041b\u043e\u0436\u044c; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u0413\u0440\u0443\u043f\u043f\u0430.GRName; \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430;\t\t\t\t \t\t\t\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430.\u041f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\/\/ \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u044c\u044f \t\t\t\t\u0415\u0441\u043b\u0438 \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440 &lt;&gt; 1 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 \u0418\u0437 \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430.\u0421\u0442\u0440\u043e\u043a\u0438 \u0426\u0438\u043a\u043b \t\t\t\t\t\t\/\/ \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e \u0443\u0437\u043b\u0430 \t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440 = 0 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0423\u0437\u0435\u043b\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f,  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442.GRID, \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417, \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440) \t\t\t\t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440 &gt; 1 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0423\u0437\u0435\u043b\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f,  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442.GRID, \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417, \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440-1) \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u0412\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \t\t\t\t\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f_\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u041f\u0440\u043e\u0447.\u0422\u0418\u041f\u0421\u041e\u041e\u0411\u0429_\u0423\u0420\u041e\u0412\u0415\u041d\u042c1, &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f&quot;, \u041f\u0440\u043e\u0447.\u0421\u0422\u0410\u0422\u0421\u041e\u041e\u0411\u0429_\u041e\u0428\u0418\u0411\u041a\u0410, \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetErrorMsg(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)) \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\tObjSet_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430) \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f \u0438\u0437 \u0431\u0430\u0437\u044b, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \/\/ \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449 - \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435; \/\/  \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f - \u0414\u0435\u0440\u0435\u0432\u043e\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f; \/\/  \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440 - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c, \/\/                \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0418\u0434\u0420\u043e\u0434\u0438\u0442 (\u0435\u0441\u043b\u0438 =0, \u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c - \/\/                \u0432\u0441\u0435 \u0443\u0440\u043e\u0432\u043d\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438). \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f \u0438\u043b\u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u0433\u0440\u0443\u043f\u043f \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \/\/ \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f, \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440=0) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t\u0415\u0441\u043b\u0438 (\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440 &gt;= 0) \u0422\u043e\u0433\u0434\u0430\t \t\t\/\/ \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f \t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f.\u0421\u0442\u0440\u043e\u043a\u0438.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c();\t \t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \t\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0413\u0440\u0443\u043f\u043f\u0430 = ObjGroup_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(); \t\tObjGroup_SetAttr(\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0413\u0440\u0443\u043f\u043f\u0430, 0, -1, &quot;\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b&quot;); \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 = \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f.\u0421\u0442\u0440\u043e\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(); \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 = \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0413\u0440\u0443\u043f\u043f\u0430; \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = 0; \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b = \u041b\u043e\u0436\u044c; \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0413\u0440\u0443\u043f\u043f\u0430.GRName; \t\t\/\/ \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 (\u043d\u0435 \u0431\u043e\u043b\u0435\u0435 2-\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438) \t\t\u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f_\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0423\u0437\u0435\u043b\u0414\u0435\u0440\u0435\u0432\u0430\u0413\u0440\u0443\u043f\u043f(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u0414\u0435\u0440\u0435\u0432\u043e\u0413\u0440\u0443\u043f\u043f,  \t\t\t\t\t\t\t\t\t\t\t \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0413\u0440\u0443\u043f\u043f\u0430.GRID, \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417, \u0413\u043b\u0443\u0431\u0438\u043d\u0430\u0417\u0430\u0433\u0440); \t\t\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0414\u0417 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f\u0421\u0442\u0440\u043e\u043a\u0430 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438   \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/ \u041f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 (\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432)  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u0430 - \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f \u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a \/\/ (\u0433\u043e\u0442\u043e\u0432\u0438\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043a \u0440\u0430\u0431\u043e\u0442\u0435). \u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 - \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b; \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f(\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\/\/ \u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u043b\u043e\u043d\u043e\u043a \t\t\u041a\u0427 = \u041d\u043e\u0432\u044b\u0439 \u041a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0427\u0438\u0441\u043b\u0430(10, 0); \t\t\u041a\u0421 = \u041d\u043e\u0432\u044b\u0439 \u041a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u0421\u0442\u0440\u043e\u043a\u0438(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432 = \u041d\u043e\u0432\u044b\u0439 \u041c\u0430\u0441\u0441\u0438\u0432; \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430&quot;)); \t\t\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b = \u041d\u043e\u0432\u044b\u0439 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432(\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432);    \/\/ \u0422\u0438\u043f &quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430&quot; \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0422\u0438\u043f(&quot;\u0427\u0438\u0441\u043b\u043e&quot;)); \t\t\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0427\u0438\u0441\u043b\u0430 = \u041d\u043e\u0432\u044b\u0439 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432(\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432, , ,\u041a\u0427); \/\/ \u0422\u0438\u043f &quot;\u0427\u0438\u0441\u043b\u043e&quot; \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0422\u0438\u043f(&quot;\u0411\u0443\u043b\u0435\u0432\u043e&quot;)); \t\t\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0411\u0443\u043b\u0435\u0432\u044b = \u041d\u043e\u0432\u044b\u0439 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432(\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432);       \/\/ \u0422\u0438\u043f &quot;\u0411\u0443\u043b\u0435\u0432\u043e&quot; \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u0422\u0438\u043f(&quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot;)); \t\t\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0421\u0442\u0440\u043e\u043a\u0438 = \u041d\u043e\u0432\u044b\u0439 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432(\u041c\u0430\u0441\u0441\u0438\u0432\u0422\u0438\u043f\u043e\u0432, , \u041a\u0421); \/\/ \u0422\u0438\u043f &quot;\u0421\u0442\u0440\u043e\u043a\u0430&quot; \t \t\t\/\/ \u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \t\t\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(&quot;\u041e\u0431\u044a\u0435\u043a\u0442&quot;, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b); \t\t\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(&quot;\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430&quot;, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0427\u0438\u0441\u043b\u0430); \t\t\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(&quot;\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430&quot;, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0411\u0443\u043b\u0435\u0432\u044b); \t\t\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u041a\u043e\u043b\u043e\u043d\u043a\u0438.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(&quot;\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435&quot;, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u043e\u0432\u0421\u0442\u0440\u043e\u043a\u0438)\t\t \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0432\u0445\u043e\u0434\u0438\u0442 \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u041e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440 \u0438\u043b\u0438 \u043d\u0435\u0442. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041e\u0431\u044a\u0435\u043a\u0442 - \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 ObjGroup \u0438\u043b\u0438 ObjCard, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c; \/\/  \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440 - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u043d\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442; \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u041e\u0431\u044a\u0435\u043a\u0442 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \/\/  \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041e\u0431\u044a\u0435\u043a\u0442\u0418\u0437\u0413\u0440\u0443\u043f\u043f\u044b(\u041e\u0431\u044a\u0435\u043a\u0442, \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440 &gt;= 0) \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = ((\u041e\u0431\u044a\u0435\u043a\u0442.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442.PGRID = \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440)) \u0418\u041b\u0418 \t\t      ((\u041e\u0431\u044a\u0435\u043a\u0442.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442.GRID = \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440)) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t   \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437  \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u0441\u0432\u044f\u0437\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u041e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041e\u0431\u044a\u0435\u043a\u0442 - \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 ObjGroup \u0438\u043b\u0438 ObjCard, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c; \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0418\u0441\u0442\u0438\u043d\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u041e\u0431\u044a\u0435\u043a\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438 \u041b\u043e\u0436\u044c - \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \/\/  \u0441\u043b\u0443\u0447\u0430\u0435 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041e\u0431\u044a\u0435\u043a\u0442\u0418\u0437\u0421\u0442\u0440\u043e\u043a\u0438(\u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041b\u043e\u0436\u044c; \t\u0415\u0441\u043b\u0438 (\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0420\u0435\u0437 = ((\u041e\u0431\u044a\u0435\u043a\u0442.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP) \u0418 (\u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430 = \u0418\u0441\u0442\u0438\u043d\u0430) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442.GRID = \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.\u041e\u0431\u044a\u0435\u043a\u0442.GRID)) \u0418\u041b\u0418 \t\t      ((\u041e\u0431\u044a\u0435\u043a\u0442.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD) \u0418 (\u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430 = \u041b\u043e\u0436\u044c) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442.CDID = \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.\u041e\u0431\u044a\u0435\u043a\u0442.CDID)) \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t   \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0418\u0449\u0435\u0442 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0442\u0440\u043e\u043a\u0443, \u0441\u0432\u044f\u0437\u0430\u043d\u0443\u044e \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u041e\u0431\u044a\u0435\u043a\u0442.  \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 - \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442 - \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 ObjGroup \u0438\u043b\u0438 ObjCard, \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \/\/  \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430, \u0442\u043e \u043f\u043e\u0438\u0441\u043a \u0441\u0442\u0440\u043e\u043a\u0438 \/\/  \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0432\u044f\u0437\u0430\u043d \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0430\u044f  \/\/  \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0422\u0430\u0431\u043b\u0438\u0446\u044b\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u041f\u043e\u041e\u0431\u044a\u0435\u043a\u0442\u0443(\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0420\u0435\u0437 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t\u0415\u0441\u043b\u0438 (\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0415\u0441\u043b\u0438 (\u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 \t\t\t \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041e\u0431\u044a\u0435\u043a\u0442\u0418\u0437\u0421\u0442\u0440\u043e\u043a\u0438(\u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430) \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0414\u0430, \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 - \u044d\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430   \t\t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \t\t\t\u0414\u043b\u044f \u041a\u0430\u0436\u0434\u043e\u0433\u043e \u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417 \u0418\u0437 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0426\u0438\u043a\u043b \t\t\t\t\u0415\u0441\u043b\u0438 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041e\u0431\u044a\u0435\u043a\u0442\u0418\u0437\u0421\u0442\u0440\u043e\u043a\u0438(\u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0420\u0435\u0437 = \u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417; \t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0420\u0435\u0437 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \t\t \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (\u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f \u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a) \/\/ \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435 - \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449 - \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435; \/\/  \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 - \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b; \/\/  \u0418\u0434\u0420\u043e\u0434\u0438\u0442 - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435; \/\/ \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0422\u0430\u0431\u043b\u0438\u0446\u0443\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0418\u0434\u0420\u043e\u0434\u0438\u0442) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0415\u0441\u043b\u0438 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430\t \t\t\/\/ \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \t\t\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c(); \t\t\u0415\u0441\u043b\u0438 \u0418\u0434\u0420\u043e\u0434\u0438\u0442 &gt;= 0 \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \t\t\t\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430 = ObjSet_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(\u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP); \t\t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectGroups(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0418\u0434\u0420\u043e\u0434\u0438\u0442, \u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \t\t\t\t\u0414\u043b\u044f \u0418\u043d\u0434=0 \u041f\u043e ObjSet_GetCount(\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430)-1 \u0426\u0438\u043a\u043b \t\t\t\t\t\u0413\u0440\u0443\u043f\u043f\u0430 = ObjSet_GetItemByIndex(\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430, \u0418\u043d\u0434); \t\t\t\t\t \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(); \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431.\u041e\u0431\u044a\u0435\u043a\u0442 = \u0413\u0440\u0443\u043f\u043f\u0430; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431.\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = 0; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431.\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430 = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u0413\u0440\u0443\u043f\u043f\u0430.GRName;\t\t\t\t\t \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430\t \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u0412\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \t\t\t\t\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f_\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u041f\u0440\u043e\u0447.\u0422\u0418\u041f\u0421\u041e\u041e\u0411\u0429_\u0423\u0420\u041e\u0412\u0415\u041d\u042c1, &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0433\u0440\u0443\u043f\u043f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443&quot;, \u041f\u0440\u043e\u0447.\u0421\u0422\u0410\u0422\u0421\u041e\u041e\u0411\u0429_\u041e\u0428\u0418\u0411\u041a\u0410, \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetErrorMsg(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)) \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\tObjSet_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430); \t\t\t \t\t\t\/\/ \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \t\t\t\u041d\u0430\u0431\u043e\u0440\u041a\u0430\u0440\u0442\u043e\u0447\u0435\u043a\u0423\u0437\u043b\u0430 = ObjSet_\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(\u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD); \t\t\t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_SelectCardsNames(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435, \u0418\u0434\u0420\u043e\u0434\u0438\u0442, \u041d\u0430\u0431\u043e\u0440\u041a\u0430\u0440\u0442\u043e\u0447\u0435\u043a\u0423\u0437\u043b\u0430) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \t\t\t\t\u0414\u043b\u044f \u0418\u043d\u0434=0 \u041f\u043e ObjSet_GetCount(\u041d\u0430\u0431\u043e\u0440\u041a\u0430\u0440\u0442\u043e\u0447\u0435\u043a\u0423\u0437\u043b\u0430)-1 \u0426\u0438\u043a\u043b \t\t\t\t\t\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 = ObjSet_GetItemByIndex(\u041d\u0430\u0431\u043e\u0440\u041a\u0430\u0440\u0442\u043e\u0447\u0435\u043a\u0423\u0437\u043b\u0430, \u0418\u043d\u0434); \t\t\t\t \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(); \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431.\u041e\u0431\u044a\u0435\u043a\u0442 = \u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431.\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = 1; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431.\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430 = \u041b\u043e\u0436\u044c; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0430\u0431.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430.CDName;\t\t\t\t\t \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430\t \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u0412\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \t\t\t\t\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f_\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(\u041e\u0431\u044a\u0435\u043a\u0442\u0421\u043e\u043e\u0431\u0449, \u041f\u0440\u043e\u0447.\u0422\u0418\u041f\u0421\u041e\u041e\u0411\u0429_\u0423\u0420\u041e\u0412\u0415\u041d\u042c1, &quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443&quot;, \u041f\u0440\u043e\u0447.\u0421\u0422\u0410\u0422\u0421\u041e\u041e\u0411\u0429_\u041e\u0428\u0418\u0411\u041a\u0410, \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_GetErrorMsg(\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435)) \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\t\tObjSet_\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440(\u041d\u0430\u0431\u043e\u0440\u0413\u0440\u0443\u043f\u043f\u0423\u0437\u043b\u0430) \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t \u041a\u043e\u043d\u0435\u0446\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b  \/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b \u041e\u0431\u044a\u0435\u043a\u0442. \/\/ \u0415\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0442\u043e \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/ \u043d\u043e\u0432\u044b\u0439, \u0442\u043e \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 (\u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \/\/ \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c), \u0442\u043e \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u043d \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d. \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 - \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b; \/\/  \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440 - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0433\u0440\u0443\u043f\u043f\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442 - \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 ObjGroup, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u041e\u0431\u044a\u0435\u043a\u0442 \/\/  \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0438\u0441\u043a (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430, \u0442\u043e \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/  \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u043e\u043a\u0443\u0441 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430) \/\/  \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u0421\u0442\u0440\u043e\u043a\u0443\u0422\u0430\u0431\u043b\u0438\u0446\u044b\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432(\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \t \t\u0415\u0441\u043b\u0438 (\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440 &gt;= 0) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0422\u0430\u0431\u043b\u0438\u0446\u044b\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u041f\u043e\u041e\u0431\u044a\u0435\u043a\u0442\u0443(\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430); \t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\/\/ \u0421\u0442\u0440\u043e\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0435\u0442 - \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \t\t\t\u0415\u0441\u043b\u0438 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041e\u0431\u044a\u0435\u043a\u0442\u0418\u0437\u0413\u0440\u0443\u043f\u043f\u044b(\u041e\u0431\u044a\u0435\u043a\u0442, \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b - \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \t\t\t\t\u0415\u0441\u043b\u0438 \u041e\u0431\u044a\u0435\u043a\u0442.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_GROUP \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\/\/ \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u043f\u0435\u0440\u0435\u0434 1-\u0439 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u043e\u0439 \t\t\t\t\t\/\/ \u041d\u0430\u0439\u0442\u0438 \u043c\u0435\u0441\u0442\u043e \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \t\t\t\t\t\u0418\u043d\u0434 = 0; \t\t\t\t\t\u041f\u043e\u043a\u0430 \u0418\u043d\u0434 &lt; \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e() \u0426\u0438\u043a\u043b \t\t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432[\u0418\u043d\u0434]; \t\t\t\t\t\t\u0415\u0441\u043b\u0438 \u041d\u0415 \u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\t\t\u041f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \t\t\t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\t\t\u0418\u043d\u0434 = \u0418\u043d\u0434 + 1 \t\t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0426\u0438\u043a\u043b\u0430; \t\t\t\t\t\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043a\u0443 \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c(\u0418\u043d\u0434); \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 = \u041e\u0431\u044a\u0435\u043a\u0442; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = 0; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430 = \u0418\u0441\u0442\u0438\u043d\u0430; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041e\u0431\u044a\u0435\u043a\u0442.GRName;\t\t\t\t\t \t\t\t\t\t \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417 \t\t\t\t\u0418\u043d\u0430\u0447\u0435\u0415\u0441\u043b\u0438 \u041e\u0431\u044a\u0435\u043a\u0442.ClassID = \u041f\u0440\u043e\u0447.ClassIDs.CLN_CARD \u0422\u043e\u0433\u0434\u0430\t \t\t\t\t\t\/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443 \u0432 \u043a\u043e\u043d\u0435\u0446 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c(); \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u041e\u0431\u044a\u0435\u043a\u0442 = \u041e\u0431\u044a\u0435\u043a\u0442; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 = 1; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430 = \u041b\u043e\u0436\u044c; \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041e\u0431\u044a\u0435\u043a\u0442.CDName;\t\t\t\t\t \t\t\t\t\t \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0421\u0442\u0440\u043e\u043a\u0430\u0422\u0417 \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\/\/ \u041d\u0430\u0448\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \t\t\t\u0415\u0441\u043b\u0438 \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041e\u0431\u044a\u0435\u043a\u0442\u0418\u0437\u0413\u0440\u0443\u043f\u043f\u044b(\u041e\u0431\u044a\u0435\u043a\u0442, \u0418\u0434\u0420\u043e\u0434\u0438\u0442\u0413\u0440) \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\/\/ \u041e\u0431\u044a\u0435\u043a\u0442 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0433\u0440\u0443\u043f\u043f\u0435 - \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430.\u041e\u0431\u044a\u0435\u043a\u0442 = \u041e\u0431\u044a\u0435\u043a\u0442; \t\t\t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430.\u042d\u0442\u043e\u0413\u0440\u0443\u043f\u043f\u0430 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041e\u0431\u044a\u0435\u043a\u0442.GRName \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430.\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 = \u041e\u0431\u044a\u0435\u043a\u0442.CDName \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\/\/ \u041d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u043e\u043d \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443) \t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0421\u0442\u0440\u043e\u043a\u0443\u0422\u0430\u0431\u043b\u0438\u0446\u044b\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432(\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430) \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u041e\u0431\u044a\u0435\u043a\u0442.  \/\/ \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \/\/  \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 - \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0433\u0440\u0443\u043f\u043f\u044b; \/\/  \u041e\u0431\u044a\u0435\u043a\u0442 - \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 ObjGroup \u0438\u043b\u0438 ObjCard, \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c; \/\/  \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 - \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \/\/  \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0438\u0441\u043a (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430, \u0442\u043e \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/  \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0442: \/\/  \u0421\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0444\u043e\u043a\u0443\u0441 \u0432\u0432\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \/\/  \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u041e\u0431\u044a\u0435\u043a\u0442 \u0438 \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0421\u0442\u0440\u043e\u043a\u0443\u0422\u0430\u0431\u043b\u0438\u0446\u044b\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432(\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \t \t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e;  \t\u0415\u0441\u043b\u0438 (\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0418 (\u041e\u0431\u044a\u0435\u043a\u0442 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e) \u0422\u043e\u0433\u0434\u0430 \t\t\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432_\u041d\u0430\u0439\u0442\u0438\u0421\u0442\u0440\u043e\u043a\u0443\u0422\u0430\u0431\u043b\u0438\u0446\u044b\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u041f\u043e\u041e\u0431\u044a\u0435\u043a\u0442\u0443(\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u041e\u0431\u044a\u0435\u043a\u0442, \u0421\u0442\u0440\u043e\u043a\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0430); \t\t\u0415\u0441\u043b\u0438 \u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430 &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\t\t\u0418\u043d\u0434\u0435\u043a\u0441\u0421\u0442\u0440\u043e\u043a\u0438\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u0418\u043d\u0434\u0435\u043a\u0441(\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430); \t\t\t\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u0423\u0434\u0430\u043b\u0438\u0442\u044c(\u0421\u0442\u0440\u043e\u043a\u0430\u041e\u0431\u044a\u0435\u043a\u0442\u0430); \t\t\t\u042d\u043b\u0435\u043c\u041a\u043e\u043b\u0438\u0447 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e(); \t\t\t\u0415\u0441\u043b\u0438 \u042d\u043b\u0435\u043c\u041a\u043e\u043b\u0438\u0447 &gt; 0 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\u0415\u0441\u043b\u0438 \u0418\u043d\u0434\u0435\u043a\u0441\u0421\u0442\u0440\u043e\u043a\u0438\u041e\u0431\u044a\u0435\u043a\u0442\u0430 &lt; \u042d\u043b\u0435\u043c\u041a\u043e\u043b\u0438\u0447 \u0422\u043e\u0433\u0434\u0430 \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 =  \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432[\u0418\u043d\u0434\u0435\u043a\u0441\u0421\u0442\u0440\u043e\u043a\u0438\u041e\u0431\u044a\u0435\u043a\u0442\u0430] \t\t\t\t\u0418\u043d\u0430\u0447\u0435 \t\t\t\t\t\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 = \u0422\u0430\u0431\u043b\u0438\u0446\u0430\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432[\u042d\u043b\u0435\u043c\u041a\u043e\u043b\u0438\u0447-1] \t\t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t \t\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u041e\u0431\u044a\u0435\u043a\u0442\u0430 \t \u041a\u043e\u043d\u0435\u0446\u0424\u0443\u043d\u043a\u0446\u0438\u0438 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u044d\u0442\u0438 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043a\u043e\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u043e\u0440\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0434\u0443\u043b\u044f \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b) \u0438\u0437 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430.<\/p>\n<p>  \u0415\u0449\u0435 \u043e\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u0414\u043b\u044f \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u0433\u0440\u0443\u043f\u043f (\u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0434\u0435\u0440\u0435\u0432\u044c\u044f\u0445 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430), \u0434\u0435\u0440\u0435\u0432\u043e \u043d\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0431\u0430\u0437\u044b \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0441\u0440\u0430\u0437\u0443, \u0430 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e 2 \u0443\u0440\u043e\u0432\u043d\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 (1-\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0438\u0434\u0435\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043a\u0430\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0443\u0437\u043b\u0430, \u0430 2-\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435, \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u0443\u0437\u043b\u043e\u0432 1-\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u2013 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0438\u0445 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0443\u0440\u043e\u0432\u043d\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0438\u0437 \u0431\u0430\u0437\u044b, \u043d\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u043d\u0435\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e. \u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u00ab\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u00bb. \u0410 \u0442\u0430\u043a, \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438, \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c \u0434\u043b\u044f \u00ab\u0434\u043e\u0433\u0440\u0443\u0437\u043a\u0438\u00bb \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043f\u043e\u0440\u0446\u0438\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u0437 \u0431\u0430\u0437\u044b \u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u00ab\u041f\u0435\u0440\u0435\u0434\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435\u043c\u00bb \u0434\u043b\u044f \u0443\u0437\u043b\u0430 \u0433\u0440\u0443\u043f\u043f\u044b. \u0412\u0441\u0435 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438\u0437 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430.<\/p>\n<h1>\u0420\u0435\u0437\u044e\u043c\u0435 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 FireBird.<\/h1>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u0435\u0449\u0435 \u0440\u0430\u0437 \u0432 \u043a\u0443\u0447\u0443 \u0432\u0441\u0435 \u043f\u0440\u0438\u0435\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 FireBird \u0438\u0437 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438:<br \/>  1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0431\u0430\u0437\u043e\u0439, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438, \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 \u0431\u0430\u0437\u044b:<br \/>   \u2014 \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a \u0431\u0430\u0437\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u00abADO.Connection\u00bb \u0438 \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u00abADO.Command\u00bb \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0438\u0445 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0441\u0435\u0430\u043d\u0441\u0430;<br \/>   \u2014 \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0432\u0435\u0434\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b (\u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0438\u0434\u044b \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c)  <\/p>\n<pre><code class=\"1c\">\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 FireBird \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_Driver = &quot;driver={&quot; + &quot;Firebird\/InterBase(r) driver&quot; + &quot;}&quot;; \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_UID = &quot;uid=&quot; + FBUserName; \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_PWD = &quot;pwd=&quot; + FBUserPass; \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_DataBase = &quot;database=&quot; + FBDBAddr; \u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f = \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_Driver + &quot;;&quot; + \t\t\t \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_UID + &quot;;&quot; +  \t\t\t \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_PWD + &quot;;&quot; +  \t\t\t \u041f\u0430\u0440\u0430\u043c\u041f\u043e\u0434\u043a\u043b_DataBase; \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn = \u041d\u043e\u0432\u044b\u0439 COM\u041e\u0431\u044a\u0435\u043a\u0442(&quot;ADODB.Connection&quot;); \/\/ \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn.open(\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f); \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsDBConnect = \u0418\u0441\u0442\u0438\u043d\u0430; \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand = \u041d\u043e\u0432\u044b\u0439 COMObject(&quot;ADODB.Command&quot;); \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.ActiveConnection = \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn; \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand.CommandType = ADO.CommandTypeEnum.adCmdText; <\/code><\/pre>\n<p>   \u2014 \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043e\u0442 \u0431\u0430\u0437\u044b \u2013 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044f, \u0447\u0442\u043e \u043e\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u043e \u0440\u0430\u043d\u0435\u0435  <\/p>\n<pre><code class=\"1c\">\/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043e\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.IsDBConnect = \u041b\u043e\u0436\u044c; \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.LastTestTime = 0; \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBCommand = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn &lt;&gt; \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0422\u043e\u0433\u0434\u0430 \t\u0415\u0441\u043b\u0438 \u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn.State = ADO.ObjectStateEnum.adStateOpen \u0422\u043e\u0433\u0434\u0430 \t\t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn.Close() \t\u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438; \t\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435.FBSrvConn = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e; \u041a\u043e\u043d\u0435\u0446\u0415\u0441\u043b\u0438 <\/code><\/pre>\n<p>  2. \u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.<br \/>  \u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0431\u0430\u0437\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0421\u0423\u0411\u0414. \u0421\u0443\u0442\u044c \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0431\u0430\u0437\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0440\u0430\u0437. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u043d\u0435 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u0431\u0430\u0437\u0435 (\u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u2013 \u044d\u0442\u043e \u0441\u043d\u0438\u0437\u0438\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c), \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u043b\u043e (\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0431\u0430\u0437\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e) \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0433 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u0440\u0430\u0437\u0440\u044b\u0432 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u0442\u0430\u043a\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043e \u0432\u0440\u0435\u043c\u044f \u2013 5\u043c\u0438\u043d. \u041e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u00ab\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435_CheckRestConnect\u00bb, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u0430\u044f \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0431\u0430\u0437\u0435.<br \/>  3. \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:<br \/>   \u2014 \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0443, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0441\u0435\u0445 \u0442\u0438\u043f\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0430 \u0432\u0441\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u00abADO.Recordset\u00bb, \u0438 \u0437\u0430\u0442\u0435\u043c \u0443\u0436\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b;<br \/>   \u2014 \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u2013 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0447\u0438\u0441\u043b\u0430, \u0434\u0430\u0442\u0430\/\u0432\u0440\u0435\u043c\u044f, \u043d\u0435 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438) \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u043e\u0431\u0449\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 65535 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432), \u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 BLOB-\u043f\u043e\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u00abADO.Parameter\u00bb;<br \/>   \u2014 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u00abSELECT\u00bb \u0438\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u00abEXECUTE PROCEDURE\u00bb (\u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0431\u0430\u0437\u043e\u0439 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438);<br \/>  4. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\u043c\u0438:<br \/>   \u2014 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u0431\u0430\u0437\u0435 \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 (CHAR, VARCHAR, BLOB(TEXT)) \u2014 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u043c\u0441\u044f \u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043e\u043a;<br \/>   \u2014 \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b (BLOB(BINARY)) \u2013 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e (\u0441\u0442\u0440\u043e\u043a\u0438 1\u0421 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 UTF-8). \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u2013 \u0434\u043b\u044f \u0421\u0423\u0411\u0414 \u044d\u0442\u043e \u043d\u0435 \u0442\u0435\u043a\u0441\u0442, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0431\u0430\u0439\u0442. \u041d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0431\u0430\u0437\u0435 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u043e\u0439 \u0436\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435, \u0447\u0442\u043e \u0438 \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439.<br \/>  5. \u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u0431\u0430\u0437\u0435 (\u0432 BLOB):<br \/>   \u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (\u043a\u0430\u043a \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 BLOB(BINARY)-\u043f\u043e\u043b\u0435\u0439) \u043c\u0435\u0436\u0434\u0443 \u0431\u0430\u0437\u043e\u0439 \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c (\u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 COMSafeArray (\u043a\u0441\u0442\u0430\u0442\u0438, \u043f\u043e\u043b\u044f BLOB(TEXT) \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442). \u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u00ab\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u00bb \u0432 \u00abCOMSafeArray\u00bb \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e (\u0441 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e), \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043d\u0430 \u0434\u0438\u0441\u043a\u0435. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0432 \u0444\u0430\u0439\u043b \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u043a\u043b\u0430\u0441\u0441 \u00ab\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u00bb \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438. \u0410 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u00abCOMSafeArray\u00bb, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c COM-\u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u0442\u043e\u043a\u0430 \u00abADO.Stream\u00bb. <br \/>  6. \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0438 BLOB-\u043f\u043e\u043b\u0435\u0439 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c:<br \/>   \u2014 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u044b \u0432 \u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u00ab<i>Parameters<\/i>\u00bb \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u00ab<i>ADO.Command<\/i>\u00bb. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439, \u0442\u043e \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u00ab<i>:prm_name<\/i>\u00bb (\u0438\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0438 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 \u0432\u043d\u0430\u0447\u0430\u043b\u0435). \u041d\u043e \u0434\u043b\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 ADO FireBird \u043c\u043d\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b (\u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0432\u0441\u0435\u2026). \u0415\u0441\u043b\u0438 \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442 \u2013 \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0438\u0442\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0439 \u0432\u044b\u0432\u043e\u0434 \u0442\u0430\u043a\u043e\u0439 \u2013 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 ADO FireBird \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u043a\u043e\u043c \u00ab<i>?<\/i>\u00bb (\u0437\u043d\u0430\u043a \u0432\u043e\u043f\u0440\u043e\u0441\u0430). \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u043a\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b, \u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0442\u0430\u043a\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u00ab<i>Parameters<\/i>\u00bb. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 (\u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432) \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044c \u2014 \u0443\u0445\u0443\u0434\u0448\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u00ab<i>\u041f\u043e\u0434\u043a\u0411\u0430\u0437\u0435<\/i>\u00bb.<\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0435. \u0412\u0441\u0435\u043c \u0443\u0434\u0430\u0447\u0438. \u0414\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0438.<\/p>\n<h1>P.S.<\/h1>\n<p> \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 (\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u043b\u044f 1\u0421 8.2 + \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445) \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/yadi.sk\/d\/PXkUs8dYpuanW\">\u0437\u0434\u0435\u0441\u044c<\/a>.<br \/>  \u0412 \u0430\u0440\u0445\u0438\u0432 \u0432\u0445\u043e\u0434\u044f\u0442 \u0444\u0430\u0439\u043b\u044b \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439 FireBird 1.5 \u0438 2.1. \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e: \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u0430\u044f \u0431\u0430\u0437\u0430 FireBird, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432 \u043d\u0435\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u00ab<i>script.sql<\/i>\u00bb (\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440).               <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/278583\/\"> https:\/\/habrahabr.ru\/post\/278583\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ce1\/2c6\/ef7\/ce12c6ef704a41ed8c303abe15350dea.jpg\"\/><br \/>  \u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435.<br \/>  \u042d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u043e\u0431\u043e\u0431\u0449\u0438\u0442\u044c \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u0438 \u043f\u0440\u0438\u0435\u043c\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 InterBase\/FireBird \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0445 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 1\u0421. \u041f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043e \u0437\u0434\u0435\u0441\u044c, \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043b\u043d\u044b\u0439. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0447\u0442\u043e-\u0442\u043e \u0438\u0437 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u0435\u043c\u044b \u0438 \u0443\u043f\u0443\u0449\u0435\u043d\u043e, \u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e, \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 (\u0432 \u043c\u043e\u0435\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438) \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0437\u0430\u0434\u0430\u0447 (\u043a\u0441\u0442\u0430\u0442\u0438, \u043a\u043e\u0435-\u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u2013 \u043c\u043e\u0436\u0435\u0442 \u043a\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043a \u0441\u0442\u0430\u0442\u044c\u0435, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u043c\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u0430\u0440\u043a\u0430\u0441\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u0447 \u043f\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0438\u0437 1\u0421 \u043a \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c \u0431\u0430\u0437\u0430\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u043c\u0435\u0436\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043c\u044b \u043f\u043e\u043a\u0430\u0436\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0430\u0437\u0430\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u0438\u0434\u044b \u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0411\u0414. <br \/>  \u0412 \u044d\u0442\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043e \u0442\u043e\u043c:<br \/>   \u2014 \u043a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 (\u0431\u0430\u0437\u0435) \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b;<br \/>   \u2014 \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u044b (\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, BLOB-\u043f\u043e\u043b\u044f));<br \/>   \u2014 \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u0442.\u0447. \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043e\u043a, \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0430\u0437\u0443 \u0438 \u0438\u0437 \u0431\u0430\u0437\u044b;<br \/>   \u2014 \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435 \u0431\u0430\u0437\u044b (\u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b);<br \/>   \u2014 \u043a\u0430\u043a \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043e\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u0430 TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0411\u0414;<br \/>   \u2014 \u043f\u0440\u043e\u0447\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043f\u0440\u0438\u0435\u043c\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 (\u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0443\u0434\u043e\u0431\u043d\u043e, \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e).<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c\u2026  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-275702","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/275702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=275702"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/275702\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=275702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=275702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=275702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}