{"id":502559,"date":"2026-11-10T16:05:20","date_gmt":"2026-11-10T13:05:20","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=502559"},"modified":"2026-11-10T16:05:20","modified_gmt":"2026-11-10T13:05:20","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=502559","title":{"rendered":"\u042f\u0437\u044b\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 redb.Route, \u0447\u0430\u0441\u0442\u044c 2: \u043e\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e IL, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0440\u0435\u0435\u0441\u0442\u0440\u0443 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u0434\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/5b\/f9\/6c\/5bf96cb63a76756e526114e69ae13daf.png\" alt=\"redb.Route\" title=\"redb.Route\" width=\"1200\" height=\"630\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/5b\/f9\/6c\/5bf96cb63a76756e526114e69ae13daf.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/5b\/f9\/6c\/5bf96cb63a76756e526114e69ae13daf.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>redb.Route<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 header.a &gt; 10 \u043c\u0435\u0436\u0434\u0443 \u0444\u0430\u0439\u043b\u043e\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c, \u043a\u0430\u043a \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f bean:svc.Check(body), \u043f\u043e\u0447\u0435\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043a\u043e\u0434 \u0438 \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0438.  <\/p>\n<p><a href=\"https:\/\/redb.ru\/articles\/route-expressions\" rel=\"noopener nofollow\">\u041f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a>\u00a0\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0430 \u043e \u044f\u0437\u044b\u043a\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 redb.Route \u0432 \u0446\u0435\u043b\u043e\u043c. \u0422\u0430\u043c \u0431\u044b\u043b\u0430 \u043e\u0434\u043d\u0430 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438, \u043e\u0434\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0436\u0438\u0432\u0443\u0442: \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u042d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u044c. \u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0432\u0440\u043e\u0434\u0435\u00a0<code>header.a &gt; 10<\/code>. \u041a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442, \u0433\u0434\u0435 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430. \u041a\u0430\u043a \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u0432\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0434\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u0427\u0442\u043e \u044f\u0437\u044b\u043a \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u0438\u0448\u0451\u043b \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u043d\u0435 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0418 \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0444\u0430\u0439\u043b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0435\u0449\u0451 \u0434\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e \u0442\u043e\u043c, \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u0442\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u044f\u0437\u044b\u043a\u0443,\u00a0<a href=\"https:\/\/github.com\/redbase-app\/redb-route\/blob\/main\/EXPRESSIONS.md\" rel=\"noopener nofollow\">EXPRESSIONS.md<\/a>, \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0438 \u0442\u0435\u0441\u0442\u00a0<code>ExpressionsGuideExamplesTests<\/code>\u00a0\u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u0430\u043c\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0438 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0430 \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 130, \u043d\u0430 \u0434\u0432\u0438\u0436\u043a\u0435 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0434\u0432\u0438\u0436\u043e\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043b\u0438\u0431\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c, \u043b\u0438\u0431\u043e \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0430\u0434\u0430\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0438\u0436\u0435, \u0432\u0437\u044f\u0442\u044b\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446, \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0434\u0432\u0438\u0436\u043e\u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442, \u0430 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c. \u041d\u0435\u043c\u043d\u043e\u0433\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 (\u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430, \u0441\u0432\u043e\u0438 \u043a\u043e\u0440\u043d\u0438, \u0432\u044b\u0432\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438), \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043a\u043e\u0434\u0435, \u0438 \u044f \u043e\u0442\u043c\u0435\u0447\u0430\u044e \u044d\u0442\u043e \u043d\u0430 \u043c\u0435\u0441\u0442\u0435.<\/p>\n<p>\u0412\u0441\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043e\u0431\u043c\u0435\u043d\u0435:<\/p>\n<pre><code>header.a = 42          header.b = 3            header.neg = -7        header.price = 2.5header.s = \"Hello World\"                        header.flag = true     header.off = falseheader.Content-Type = \"text\/xml\"                header.empty = \"\"      header.O'Brien = \"obrien\"header.user = { Name = \"Ann\", Age = 30, Active = true, Manager = { Name = \"Bob\", Age = 51 } }header.list = [5, 1, 9]                         header.when = 2026-08-28 10:30 UTCproperty.count = 7     property.items = [\"p\", \"q\", \"r\"]     property.nums = [1, 2, 3, 4]property.cfg = { enabled = true, limit = 5 }    property.counter = 10body = \"payload\"       exception.Message = \"boom\"registry: beans \"pricing\" and \"pricing-rules\"; \"limits.max\", the number 100<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<h3>1. \u041e\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430<\/h3>\n<p>\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u043c-\u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c: \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443, \u0438\u0449\u0443\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e \u0438\u043c\u0435\u043d\u0438, \u043f\u043e \u0434\u043e\u0440\u043e\u0433\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. redb.Route \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0435\u0451 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u041c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043d\u0451\u043c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b \u0432\u0438\u0434\u0430\u00a0<code>Func&lt;IExchange, object?&gt;<\/code>. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u0435\u043b\u0435\u0433\u0430\u0442.<\/p>\n<p>\u0412\u043e\u0442 \u043f\u0443\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0433\u043e\u043b\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435.<\/p>\n<ol>\n<li>\n<p><strong>\u0422\u043e\u043a\u0435\u043d\u0438\u0437\u0430\u0442\u043e\u0440.<\/strong>\u00a0\u0422\u0435\u043a\u0441\u0442 \u0440\u0435\u0436\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u0435\u043a\u0441\u0435\u043c\u044b: \u0438\u043c\u0435\u043d\u0430, \u0447\u0438\u0441\u043b\u0430, \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, \u0441\u043a\u043e\u0431\u043a\u0438. \u041f\u0440\u043e\u0431\u0435\u043b\u044b \u043c\u0435\u0436\u0434\u0443 \u043b\u0435\u043a\u0441\u0435\u043c\u0430\u043c\u0438 \u0438\u0441\u0447\u0435\u0437\u0430\u044e\u0442 \u0437\u0434\u0435\u0441\u044c \u0436\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0<code>header.a&gt;10<\/code>\u00a0\u0438\u00a0<code>header.a &gt; 10<\/code>\u00a0\u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0451\u043d\u043d\u043e\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 XML-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435, \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0430\u0440\u0441\u0435\u0440.<\/strong>\u00a0\u041f\u0430\u0440\u0441\u0435\u0440 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 \u0441\u0442\u0440\u043e\u0438\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u0423\u0440\u043e\u0432\u043d\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0435, \u043e\u0442 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043b\u0430\u0431\u043e\u0433\u043e \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0441\u0438\u043b\u044c\u043d\u043e\u043c\u0443: \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440,\u00a0<code>??<\/code>, \u043b\u043e\u0433\u0438\u043a\u0430, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435, \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0443\u043d\u0430\u0440\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b: \u0438\u043c\u0435\u043d\u0430, \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b, \u0432\u044b\u0437\u043e\u0432\u044b, \u0441\u043a\u043e\u0431\u043a\u0438. \u041f\u0430\u0440\u0441\u0435\u0440 \u0431\u0435\u0440\u0451\u0442 \u0432\u0435\u0441\u044c \u0442\u0435\u043a\u0441\u0442: \u043b\u0435\u043a\u0441\u0435\u043c\u0430, \u043e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439, \u0430 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043c\u043e\u043b\u0447\u0430 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0435\u0440\u0435\u0432\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439.<\/strong>\u00a0\u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u00a0<code>System.Linq.Expressions<\/code>, \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u043e\u044f\u0442 LINQ-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u0438 Entity Framework. \u0427\u0442\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c \u043a \u0441\u043b\u043e\u0432\u0430\u0440\u044e,\u00a0<code>upper(...)<\/code>\u00a0\u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0430.\u00a0<code>AND<\/code>\u00a0\u0438\u00a0<code>OR<\/code>\u00a0\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f\u00a0<code>AndAlso<\/code>\u00a0\u0438\u00a0<code>OrElse<\/code>\u00a0\u043f\u043e\u0432\u0435\u0440\u0445 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043a \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438, \u0430\u00a0<code>??<\/code>\u00a0\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f\u00a0<code>Coalesce<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043f\u0440\u0430\u0432\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u043b\u0435\u0432\u0430\u044f \u043d\u0435 \u0440\u0435\u0448\u0438\u043b\u0430 \u0434\u0435\u043b\u043e.\u00a0<code>XOR<\/code>\u00a0\u043d\u0443\u0436\u043d\u044b \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0438 \u043e\u043d \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043e\u0431\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f.<\/strong>\u00a0<code>Expression.Lambda&lt;Func&lt;IExchange, object?&gt;&gt;(...).Compile()<\/code>\u00a0\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u0432 IL. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 .NET.<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a. \u041a\u0430\u0436\u0434\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 \u043e\u0434\u0438\u043d \u043f\u0443\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445, \u0441 \u0442\u0435\u043c \u0436\u0435 \u0441\u043c\u044b\u0441\u043b\u043e\u043c \u0438 \u0442\u0435\u043c\u0438 \u0436\u0435 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438.<\/p>\n<p>\u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u043c\u0435\u043b\u043e\u0447\u044c. \u041e\u043d\u043e \u0432\u0438\u0434\u043d\u043e \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430, \u0433\u0434\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u0437\u043e\u0432 \u0431\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.flag OR bean:nobody.Check()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.off AND bean:nobody.Check()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>False<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.a ?? bean:nobody.Check()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>42<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0442\u0440\u0451\u0445 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>nobody<\/code>. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043b\u0435\u0432\u0430 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0434\u043e\u0440\u043e\u0433\u043e\u0439 \u0438\u043b\u0438 \u043d\u0435\u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u0430, \u043a\u0430\u043a \u0432 C#.<\/p>\n<p>\u0423 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043e\u0440\u043e\u0433\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0430\u044f. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043a\u0430\u043d\u0435\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0434\u044b\u0440\u043a\u0438. \u0421\u0443\u0444\u0444\u0438\u043a\u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432\u0440\u043e\u0434\u0435\u00a0<code>${header.price:F2}<\/code>\u00a0\u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c (\u0440\u0430\u0437\u0434\u0435\u043b 2). \u0414\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0432\u0440\u043e\u0434\u0435\u00a0<code>${header.a}<\/code>, \u0435\u0441\u0442\u044c \u043f\u0440\u044f\u043c\u044b\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043f\u0443\u0442\u0438: \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0442\u0435\u043b\u043e, \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432\u00a0<code>jpath<\/code>\/<code>xpath<\/code>\u00a0\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f Camel\u00a0<code>${jsonpath:...}<\/code>,\u00a0<code>${xpath:...}<\/code>\u00a0\u0438\u00a0<code>${file:...}<\/code>\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0432 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u043c\u0438\u043d\u0443\u044f \u043f\u0430\u0440\u0441\u0435\u0440. \u0412\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0438\u0434\u0451\u0442 \u0447\u0435\u0440\u0435\u0437 \u0442\u043e \u0436\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u0447\u0442\u043e \u0438 \u0433\u043e\u043b\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0421\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u0433\u0434\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u044b\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p><strong>\u041a\u044d\u0448.<\/strong>\u00a0\u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0431\u0449\u0435\u043c \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u044d\u0448\u0435, \u043a\u043b\u044e\u0447 \u0432 \u043d\u0451\u043c \u044d\u0442\u043e \u0442\u0435\u043a\u0441\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0414\u0432\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0434\u0435\u043b\u044f\u0442 \u043e\u0434\u043d\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u044f \u0443 \u043a\u044d\u0448\u0430 \u043d\u0435\u0442;\u00a0<code>ExpressionResolver.ClearAllCaches()<\/code>\u00a0\u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p>\u0426\u0438\u0444\u0440\u044b \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0427\u0438\u0441\u0442\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0441\u0442\u044b\u0434\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u043a\u0430 \u043d\u0435\u0442, \u0430 \u0447\u0438\u0441\u043b\u043e \u0441 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442. \u0417\u0430\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f: <strong>\u0432\u0441\u0451<\/strong>. \u041d\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f, \u0438 \u043d\u0435\u0442 \u00ab\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c. \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u0438 \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0441\u0442 \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f, \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043d\u0435 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442:\u00a0<code>.Filter(\"header.a &gt;\")<\/code>\u00a0\u0431\u0440\u043e\u0441\u0430\u0435\u0442\u00a0<code>ExpressionCompilationException<\/code>\u00a0\u043d\u0430\u00a0<code>Start()<\/code>.<\/p>\n<h4>\u0413\u043e\u043b\u044b\u0439 \u0442\u0435\u043a\u0441\u0442: \u0441\u043b\u043e\u0432\u043e \u044d\u0442\u043e \u0441\u043b\u043e\u0432\u043e, \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0446\u0435\u043b\u043e\u0439<\/h4>\n<p>\u0427\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u044c\u00a0<code>application\/json<\/code>\u00a0\u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435-\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438? Apache Camel \u0447\u0438\u0442\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u0430\u043a \u0441\u0430\u043c \u0442\u0435\u043a\u0441\u0442, \u0438 redb.Route \u0442\u043e\u0436\u0435:\u00a0<code>hello<\/code>,\u00a0<code>plain text<\/code>\u00a0\u0438\u00a0<code>key=value<\/code>\u00a0\u044d\u0442\u043e \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b, \u0430 \u0438\u043c\u044f \u0432\u0440\u043e\u0434\u0435\u00a0<code>header.a<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>body<\/code>\u00a0\u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0422\u0435\u043a\u0441\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u043d\u0435 \u043a\u0430\u0432\u044b\u0447\u0435\u043a \u0435\u0441\u0442\u044c \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 (<code>+ - * \/<\/code>), \u044d\u0442\u043e \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430, \u0438 \u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0446\u0435\u043b\u043e\u0439: \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u0438 \u043a\u0430\u0436\u0434\u043e\u0435 \u0433\u043e\u043b\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u043d\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0441\u0442\u043e:<\/p>\n<pre><code>1 +                 \u2192 ends where a value is expectedheader.a+b          \u2192 'b' at position 10 is not a valueapplication\/json    \u2192 'application' at position 1 is not a value<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445,\u00a0<code>'application\/json'<\/code>. \u0422\u043e \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043b\u043e\u0432\u0438\u0442 \u0434\u0430\u0442\u044b: \u0433\u043e\u043b\u043e\u0435\u00a0<code>2026-08-28<\/code>\u00a0\u044d\u0442\u043e \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430, \u0438 \u043e\u043d\u0430 \u0434\u0430\u0451\u0442\u00a0<code>1990<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0442\u0443 \u0431\u0435\u0440\u0443\u0442 \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0438\u043b\u0438 \u0447\u0438\u0442\u0430\u044e\u0442 \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0421\u043c\u044b\u0441\u043b \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041d\u0435\u0434\u043e\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435, \u0430 \u043d\u0435 \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438.<\/p>\n<h4>\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u0438\u0448\u0443\u0442 \u0432 \u043e\u0431\u043c\u0435\u043d<\/h4>\n<p>\u0412 \u044f\u0437\u044b\u043a\u0435 \u0435\u0441\u0442\u044c\u00a0<code>++<\/code>\u00a0\u0438\u00a0<code>--<\/code>, \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0435 \u0438 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043d\u044b\u0435, \u0434\u043b\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432. \u042d\u0442\u043e \u043d\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u0435: \u043e\u043d\u0438 \u043c\u0435\u043d\u044f\u044e\u0442 \u043e\u0431\u043c\u0435\u043d.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.a++<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>42<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.a = 43<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>++header.a<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>43<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.a = 43<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.a--<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>42<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.a = 41<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>--header.a<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>41<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.a = 41<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>property.counter++<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>property.counter = 11<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>++property.counter<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>11<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>property.counter = 11<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043d\u0430\u044f \u0441\u0442\u0430\u0440\u043e\u0435, \u043a\u0430\u043a \u0432 C#. \u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0438\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0435\u0441\u0442\u044c, \u043d\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e\u043c, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0431\u044b\u043b:<\/p>\n<pre><code>header.x++: the value 'abc' (String) is not a number.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u0412 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430:<\/p>\n<pre><code>.SetProperty(\"attempt\", Constant(0)).LoopWhile(\"property.attempt &lt; 3\")    .Log(\"attempt ${property.attempt++}\")    .To(\"direct:\/\/step\").EndLoop()<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>LoopWhile<\/code>\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u0442\u0435\u043b\u043e, \u043f\u043e\u043a\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f; \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u043b\u043e\u0433\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u043e\u0433 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442\u00a0<code>attempt 0<\/code>,\u00a0<code>attempt 1<\/code>,\u00a0<code>attempt 2<\/code>, \u0430 \u0442\u0435\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0440\u0438 \u0440\u0430\u0437\u0430. (<code>Constant<\/code>\u00a0\u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u00a0<code>RouteBuilder<\/code>; \u0432\u043d\u0435 \u0435\u0433\u043e \u043f\u0438\u0448\u0438\u0442\u0435\u00a0<code>new ConstantExpression(0)<\/code>.)<\/p>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0447\u0442\u0435\u043d\u0438\u0435, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432\u00a0<code>In.Headers<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>Properties<\/code>. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u00ab\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b, \u0438\u0437\u043c\u0435\u043d\u0438\u043b, \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u00bb, \u043d\u0435 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f. \u042d\u0442\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u043e\u0431\u043c\u0435\u043d \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f; \u0434\u043b\u044f \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432, \u043e\u0431\u0449\u0438\u0445 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u044d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043d\u0435 \u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<h4>\u041b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h4>\n<p>\u0427\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0439 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0435.\u00a0<code>max(2.5, 1)<\/code>\u00a0\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u043d\u0430 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441 en-US \u0438 \u043d\u0430 \u0431\u043e\u0435\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441 ru-RU, \u0433\u0434\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u043f\u044f\u0442\u0430\u044f. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0442\u0430\u043a \u0436\u0435: \u0447\u0438\u0441\u043b\u043e \u0438\u043b\u0438 \u0434\u0430\u0442\u0430, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d, \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043a\u0430\u043a\u00a0<code>2.5<\/code>\u00a0\u0438 ISO 8601 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435. \u0421\u043b\u043e\u0432\u0430 \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438 (<code>true\/false<\/code>,\u00a0<code>yes\/no<\/code>,\u00a0<code>on\/off<\/code>\u00a0\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435) \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435, \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0435: \u043b\u043e\u043a\u0430\u043b\u044c \u0442\u043e\u0433\u043e, \u043a\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0441\u043c\u044b\u0441\u043b.<\/p>\n<h3>2. \u0422\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b<\/h3>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u0435\u043b\u044c\u043a\u043e\u043c \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0442\u0438\u043f. \u042d\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 \u0446\u0435\u043b\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u043a\u043e\u0434\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0428\u0430\u0431\u043b\u043e\u043d<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0422\u0438\u043f<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.a}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>42<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>int<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.a + 1}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>43<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0447\u0438\u0441\u043b\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.a &gt; 10}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>bool<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.price}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>2.5<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0447\u0438\u0441\u043b\u043e, \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>a=${header.a}, b=${header.b}, sum=${header.a + header.b}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>a=42, b=3, sum=45<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>string<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>[${header.missing}]<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>[]<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>string<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><code>SetHeader(\"n\", Expr(\"${header.a}\"))<\/code>\u00a0\u043a\u043b\u0430\u0434\u0451\u0442 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u00a0<code>int<\/code>\u00a042, \u0430 \u043d\u0435 \u0442\u0435\u043a\u0441\u0442 &#171;42&#187;. \u041a\u043b\u044e\u0447 Kafka, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 SQL \u0438\u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u0447\u0438\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437\u00a0<code>getHeader&lt;int&gt;<\/code>, \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0447\u0438\u0441\u043b\u043e, \u0430 \u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442, \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439, \u043a\u0430\u043a \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u0443\u0441\u0442\u043e\u0442\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0<code>[${header.missing}]<\/code>\u00a0\u0434\u0430\u0451\u0442\u00a0<code>[]<\/code>, \u0430 \u043d\u0435\u00a0<code>[null]<\/code>.<\/p>\n<h4>\u0421\u0443\u0444\u0444\u0438\u043a\u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u0430<\/h4>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u0442\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430, \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 .NET \u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0428\u0430\u0431\u043b\u043e\u043d<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.price:F2}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>2.50<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.a:D5}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>00042<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.price * 4:F1}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.0<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><code>${value:F2}<\/code>\u00a0\u044d\u0442\u043e\u00a0<code>format(value, 'F2')<\/code>\u00a0\u0432 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0439 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0435: \u043e\u0434\u043d\u0430 \u0431\u0443\u043a\u0432\u0430 \u0438 \u0434\u043e \u0434\u0432\u0443\u0445 \u0446\u0438\u0444\u0440 (<code>F2<\/code>,\u00a0<code>N0<\/code>,\u00a0<code>D8<\/code>). \u041f\u0435\u0440\u0435\u0434 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435\u043c \u0441\u0442\u043e\u0438\u0442 \u043f\u0443\u0442\u044c \u0438\u043b\u0438 \u0432\u044b\u0437\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d \u0432\u0440\u043e\u0434\u0435\u00a0<code>env:X<\/code>\u00a0\u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u0438\u043c\u0443\u0442 \u0437\u0430 \u0444\u043e\u0440\u043c\u0430\u0442, \u043a\u0430\u043a \u0438 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430. \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0440\u043e\u0434\u0435\u00a0<code>yyyy-MM-dd<\/code>\u00a0\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437\u00a0<code>format(...)<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>dateformat(...)<\/code>.<\/p>\n<h3>3. \u0413\u0434\u0435 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430: \u0441\u043a\u043e\u0431\u043a\u0438, \u043a\u0430\u0432\u044b\u0447\u043a\u0438, \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h3>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u043c, \u043f\u043e\u043a\u0430 \u043a\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u043d\u0443\u044e \u0441\u043a\u043e\u0431\u043a\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u0430. \u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435, \u0438 \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0428\u0430\u0431\u043b\u043e\u043d<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${concat('a', '}', 'b')}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>a}b<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>{${header.a}}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>{42}<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>${}<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.O'Brien}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>obrien<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>echo \\${HOME} for ${header.s}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>echo ${HOME} for Hello World<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>text ${body<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0448\u0438\u0431\u043a\u0430:\u00a0<code>unclosed '${' at position 6 of \"text ${body\": the placeholder has no closing '}'.<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u00a0<code>${<\/code>\u00a0\u0438 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u00a0<code>}<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0451 \u0443\u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0448\u0438\u0432\u0430\u0435\u0442.\u00a0<code>}<\/code>\u00a0\u0432\u043d\u0443\u0442\u0440\u0438 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u0430 \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0<code>${concat('a', '}', 'b')}<\/code>\u00a0\u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430. \u041f\u0440\u043e\u0441\u0442\u0430\u044f\u00a0<code>{<\/code>\u00a0\u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u043a\u043e\u0431\u043a\u0438 \u0432\u00a0<code>{${header.a}}<\/code>\u00a0\u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u043c; \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f JSON, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c. \u041f\u0443\u0441\u0442\u0430\u044f\u00a0<code>${}<\/code>\u00a0\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430. \u041a\u0430\u0432\u044b\u0447\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0438\u043c\u0435\u043d\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0438\u043c\u0435\u043d\u0438, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0<code>${header.O'Brien}<\/code>\u00a0\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u00a0<code>O'Brien<\/code>\u00a0\u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0410 \u0432\u043e\u0442 \u043a\u0430\u0432\u044b\u0447\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u043b, \u043e\u0431\u044f\u0437\u0430\u043d\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u044c\u0441\u044f:<\/p>\n<pre><code>header.s == 'abc   \u2192 unterminated string literal starting at position 13 within the expression \"header.s == 'abc\".<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0411\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u044b\u0439\u00a0<code>${<\/code>\u00a0\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0<code>\\${<\/code>. \u041e\u043d \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a\u00a0<code>${<\/code>; \u044d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0438 \u0438\u043b\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0443 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f.\u00a0<code>${<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0438\u0447\u0442\u043e \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u043d\u0430 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f: \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0432 C#, \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0444\u0430\u0439\u043b\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0438 \u0435\u0449\u0451 \u0440\u0430\u043d\u044c\u0448\u0435, \u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u0430 (\u0440\u0430\u0437\u0434\u0435\u043b 9). \u041c\u043e\u043b\u0447\u0430 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u044d\u0442\u043e \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442 \u0434\u0432\u0438\u0436\u043e\u043a \u043d\u0435 \u043c\u043e\u0436\u0435\u0442.<\/p>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0440\u043e\u0432\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435: \u043a\u0430\u043a \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0432\u044b\u0437\u043e\u0432\u0430\u00a0<code>bean:<\/code>\u00a0(\u0440\u0430\u0437\u0434\u0435\u043b 5). \u0412\u043e \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445\u00a0<code>${<\/code>\u00a0\u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438.<\/p>\n<h3>4. \u0427\u0442\u0435\u043d\u0438\u0435 \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435: \u0441\u043b\u0443\u0447\u0430\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043f\u043e\u0442\u044b\u043a\u0430\u044e\u0442\u0441\u044f<\/h3>\n<h4>\u0418\u043c\u0435\u043d\u0430 \u0441 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u0438 \u0434\u0435\u0444\u0438\u0441\u0430\u043c\u0438<\/h4>\n<p>\u0418\u043c\u0435\u043d\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0432 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0434\u043a\u043e \u0431\u044b\u0432\u0430\u044e\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 C#:\u00a0<code>Content-Type<\/code>,\u00a0<code>JMSCorrelationID<\/code>,\u00a0<a href=\"http:\/\/x.request.id\" rel=\"noopener nofollow\"><code>x.request.id<\/code><\/a>. \u042f\u0437\u044b\u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438\u0445 \u043e\u0434\u043d\u0438\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u043e\u043c:\u00a0<strong>\u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f.<\/strong>\u00a0<code>header.dotted.key<\/code>\u00a0\u044d\u0442\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<code>dotted.key<\/code>, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0435\u0441\u0442\u044c, \u0438\u043d\u0430\u0447\u0435 \u0447\u043b\u0435\u043d\u00a0<code>key<\/code>\u00a0\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u00a0<code>dotted<\/code>. \u0412\u043d\u0443\u0442\u0440\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0442\u043e \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043c\u044f \u0441 \u0434\u0435\u0444\u0438\u0441\u043e\u043c \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u043c:\u00a0<code>${header.Content-Type}<\/code>\u00a0\u0434\u0430\u0451\u0442\u00a0<code>text\/xml<\/code>.<\/p>\n<p>\u0412 \u0433\u043e\u043b\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0434\u0435\u0444\u0438\u0441 \u0431\u044b\u043b \u0431\u044b \u043c\u0438\u043d\u0443\u0441\u043e\u043c, \u0438\u00a0<code>header.Content-Type<\/code>\u00a0\u0442\u0430\u043c \u0431\u044b\u043b\u043e \u0431\u044b \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c, \u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u043a\u0430\u043a \u043d\u0430\u0434\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c:<\/p>\n<pre><code>'header.Content-Type' at position 1 reads as a subtraction: a name with a dash is written ${header.Content-Type}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0418\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0442\u043e\u0440\u0430 \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c.<\/p>\n<h4>\u041e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0441\u043b\u043e\u0432\u0430\u0440\u0438<\/h4>\n<p>\u041e\u0431\u044a\u0435\u043a\u0442 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u0433\u0434\u0435 \u0431\u044b \u043e\u043d \u043d\u0438 \u043b\u0435\u0436\u0430\u043b: \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435, \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435 \u0438\u043b\u0438 \u0432 \u0442\u0435\u043b\u0435. \u0427\u043b\u0435\u043d\u044b \u0438\u0449\u0443\u0442\u0441\u044f \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0442\u043e\u0436\u0435. \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0438 \u043d\u0430\u00a0<code>.key<\/code>, \u0438 \u043d\u0430\u00a0<code>['key']<\/code>.\u00a0<a href=\"http:\/\/header.user.Manager.Name\" rel=\"noopener nofollow\"><code>header.user.Manager.Name<\/code><\/a>\u00a0\u0434\u0430\u0451\u0442\u00a0<code>Bob<\/code>,\u00a0<code>header.list[1]<\/code>\u00a0\u0434\u0430\u0451\u0442\u00a0<code>1<\/code>,\u00a0<code>property.cfg.enabled<\/code>\u00a0\u0434\u0430\u0451\u0442\u00a0<code>True<\/code>. \u0423 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439 \u043a\u043e\u0440\u0435\u043d\u044c:\u00a0<code>attachments.size<\/code>\u00a0\u0438\u00a0<code>attachments[0].fileName<\/code>.<\/p>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0447\u043b\u0435\u043d\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d \u043a null: \u0447\u043b\u0435\u043d \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u00a0<code>null<\/code>, \u0430 \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439\u00a0<code>?.<\/code>\u00a0\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0443\u043f\u0430\u0432\u0448\u0435\u0433\u043e \u043e\u0431\u043c\u0435\u043d\u0430 \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u043e\u0440\u0435\u043d\u044c, \u043a\u0430\u043a \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435: \u0433\u043e\u043b\u043e\u0435\u00a0<code>exception.Message<\/code>\u00a0\u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a\u00a0<code>${exception.Message}<\/code>.<\/p>\n<h4>\u041c\u0435\u0442\u043e\u0434\u044b \u0441\u0430\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/h4>\n<p>\u041c\u0435\u0442\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u043b\u0435\u0436\u0430\u0449\u0435\u0433\u043e \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0438\u043b\u0438 \u0432 \u0442\u0435\u043b\u0435, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0442\u043e\u0436\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0413\u0434\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0422\u0435\u043a\u0441\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0443\u0441\u043b\u043e\u0432\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.s.length() &gt; 10<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0448\u0430\u0431\u043b\u043e\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>${header.s.toUpper()}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>HELLO WORLD<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.list.Count<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>3<\/code>\u00a0(\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u043a)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0438 \u0442\u043e\u0447\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0<code>header.list.contains(5.0)<\/code>\u00a0\u0438\u00a0<code>header.names.contains('a.b')<\/code>\u00a0\u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0435\u0442 (<code>null<\/code>), \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u043e\u0436\u0435\u00a0<code>null<\/code>. \u041a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u0440\u0438\u0445\u043e\u0434\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438, \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c\u00a0<code>ExpressionEvaluationException<\/code>\u00a0\u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439:<\/p>\n<pre><code>header.o.Boom() at position 1 threw InvalidOperationException: boom'Nope' is not a method of String at position 1 (in header.s.Nope()).<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041c\u0435\u0442\u043e\u0434, \u0431\u0440\u043e\u0441\u0438\u0432\u0448\u0438\u0439 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0443\u0441\u0442\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0435\u0447\u0451\u0442 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443.<\/p>\n<h4>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435: \u0442\u043e\u0447\u043d\u043e\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.s == 'hello world'<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>False<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.s =~ 'hello world'<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.a =~ '42'<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.a range '1..42'<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.price range '2.5..3'<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.a not range '1..10'<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.missing range '1..10'<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>False<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><code>==<\/code>\u00a0\u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a \u0442\u043e\u0447\u043d\u043e\u0435, \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430.\u00a0<code>=~<\/code>\u00a0\u044d\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0438\u0437 Apache Camel: \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u043e, \u0431\u0435\u0437 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u044b; \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0430\u0440\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0<code>==<\/code>. \u0427\u0438\u0441\u043b\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0440\u0430\u0432\u043d\u044b, \u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u0432\u043d\u044b \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:\u00a0<code>3 == 3.0<\/code>\u00a0\u0438\u00a0<code>3 == '3'<\/code>\u00a0\u0438\u0441\u0442\u0438\u043d\u043d\u044b,\u00a0<code>3 == 5.0<\/code>\u00a0\u043b\u043e\u0436\u043d\u043e.<\/p>\n<p><code>range 'from..to'<\/code>\u00a0\u0438\u0441\u0442\u0438\u043d\u043d\u043e \u0434\u043b\u044f \u0447\u0438\u0441\u043b\u0430 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u043e\u0438\u043c\u0438 \u043a\u043e\u043d\u0446\u0430\u043c\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043a\u0430\u043a \u0432 Camel, \u0430\u00a0<code>not range<\/code>\u00a0\u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041f\u0440\u0430\u0432\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u044d\u0442\u043e \u043b\u0438\u0442\u0435\u0440\u0430\u043b \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d (<code>'1-10'<\/code>) \u0438\u043b\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d, \u0433\u0434\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0446\u0430 (<code>'10..1'<\/code>), \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0438 \u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u0430, \u0430 \u043d\u0435 \u0444\u0438\u043b\u044c\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u043b\u0447\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u043d\u0438 \u0432 \u043a\u0430\u043a\u043e\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d. \u0422\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e\u043c, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c:<\/p>\n<pre><code>header.s range '1..10': the value 'Hello World' (String) is not a number.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p><code>range<\/code>\u00a0\u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430; \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u044d\u0442\u043e \u0438\u043c\u044f, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0<code>header.range<\/code>\u00a0\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<code>range<\/code>.<\/p>\n<h4>JSON \u0438 XML \u0432 \u0442\u0435\u043b\u0435<\/h4>\n<p><code>jpath<\/code>\u00a0\u0441\u043b\u0435\u0434\u0443\u0435\u0442 RFC 9535 \u0447\u0435\u0440\u0435\u0437 <a href=\"http:\/\/JsonPath.Net\" rel=\"noopener nofollow\">JsonPath.Net<\/a>:\u00a0<code>.name<\/code>,\u00a0<code>['name']<\/code>,\u00a0<code>[0]<\/code>, \u0441\u0440\u0435\u0437\u044b,\u00a0<code>[*]<\/code>,\u00a0<code>..<\/code>, \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0432\u0440\u043e\u0434\u0435\u00a0<code>[?(@.price &lt; 10)]<\/code>\u00a0\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.\u00a0<code>xpath<\/code>\u00a0\u0447\u0438\u0442\u0430\u0435\u0442 XML. \u0412\u043d\u0443\u0442\u0440\u0438\u00a0<code>${...}<\/code>\u00a0\u043f\u0443\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u0435\u0437 \u043a\u0430\u0432\u044b\u0447\u0435\u043a:<\/p>\n<pre><code>${jpath($.order.id)}                                     \u2192 7id=${jpath($.order.id)} total=${jpath($.order.total)}    \u2192 id=7 total=150.5${xpath(\/order\/id)}                                      \u2192 7${jsonpath:$.order.id}                                   \u2192 7${xpath:\/order\/id}                                       \u2192 7<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0414\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u044d\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f Apache Camel:\u00a0<code>${jsonpath:path}<\/code>\u00a0\u0438\u00a0<code>${xpath:path}<\/code>\u00a0\u0437\u043d\u0430\u0447\u0430\u0442\u00a0<code>jpath('path')<\/code>\u00a0\u0438\u00a0<code>xpath('path')<\/code>. \u041a\u0430\u0436\u0434\u043e\u0435 \u0442\u0430\u043a\u043e\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0432\u043e\u044e\u00a0<code>${...}<\/code>, \u043f\u0443\u0442\u044c \u0438\u0434\u0451\u0442 \u0434\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0441\u043a\u043e\u0431\u043a\u0438, \u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u043e\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442. \u041c\u0430\u0440\u0448\u0440\u0443\u0442, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u0439 \u0438\u0437 Camel, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>\u0412 \u0433\u043e\u043b\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043f\u0443\u0442\u044c \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0438,\u00a0<code>jpath('$.<\/code><a href=\"http:\/\/order.id\" rel=\"noopener nofollow\"><code>order.id<\/code><\/a><code>')<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0<code>$<\/code>\u00a0\u0438\u00a0<code>\/<\/code>\u00a0\u0442\u0430\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b. \u0411\u0435\u0437 \u043a\u0430\u0432\u044b\u0447\u0435\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0438 \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u043f\u0430\u0434\u0430\u0435\u0442 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0430 \u043d\u0435 \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438.<\/p>\n<h4>\u0418\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432:\u00a0${file:name}<\/h4>\n<p>\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b, \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430: \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u0430\u0440\u0445\u0438\u0432, \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442, \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043b\u043e\u0433. \u042f\u0437\u044b\u043a \u0444\u0430\u0439\u043b\u043e\u0432 Camel \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c:\u00a0<code>${<\/code><a href=\"https:\/\/file:key\" rel=\"noopener nofollow\"><code>file:key<\/code><\/a><code>}<\/code>\u00a0\u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443, \u043a\u043b\u044e\u0447 \u0438\u0434\u0451\u0442 \u0434\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0441\u043a\u043e\u0431\u043a\u0438, \u0430 \u0447\u0438\u0442\u0430\u0435\u0442 \u043e\u043d \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043b\u0430\u0434\u0451\u0442 \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0412\u043e\u043a\u0440\u0443\u0433 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u043e\u044f\u0442\u044c \u0442\u0435\u043a\u0441\u0442, \u043a\u0430\u043a \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041f\u0440\u0438\u00a0<a href=\"http:\/\/redbFile.Name\" rel=\"noopener nofollow\"><code>redbFile.Name<\/code><\/a><code> = \"orders\/a.xml\"<\/code>\u00a0\u0438\u00a0<code>redbFile.NameOnly = \"a\"<\/code>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0428\u0430\u0431\u043b\u043e\u043d<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${<\/code><a href=\"https:\/\/file:name\" rel=\"noopener nofollow\"><code>file:name<\/code><\/a><code>}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>orders\/a.xml<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>archive\/${<\/code><a href=\"https:\/\/file:name.noext%7D.done\" rel=\"noopener nofollow\"><code>file:name.noext}.done<\/code><\/a><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>archive\/a.done<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041a\u043b\u044e\u0447<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>name<\/code>,\u00a0<code>onlyname<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><a href=\"http:\/\/redbFile.Name\" rel=\"noopener nofollow\"><code>redbFile.Name<\/code><\/a><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>name.noext<\/code>,\u00a0<code>onlyname.noext<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>redbFile.NameOnly<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>ext<\/code>,\u00a0<code>name.ext<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>redbFile.Extension<\/code>, \u0431\u0435\u0437 \u0442\u043e\u0447\u043a\u0438 (<code>xml<\/code>)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>parent<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>redbFile.Parent<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>path<\/code>,\u00a0<code>absolute.path<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>redbFile.AbsolutePath<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>relative.path<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>redbFile.RelativePath<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>length<\/code>,\u00a0<code>size<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>redbFile.Length<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>modified<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>redbFile.LastModified<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0423 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u043d\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430, \u0442\u0430\u043a\u0438\u0445 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u043d\u0435\u0442, \u0438 \u043a\u043b\u044e\u0447 \u0434\u0430\u0451\u0442 \u043f\u0443\u0441\u0442\u043e\u0442\u0443. \u041a\u043b\u044e\u0447, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0438 \u0432 \u043d\u0435\u0439 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0432\u0441\u0435 \u043a\u043b\u044e\u0447\u0438. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432 (<code>moveTo<\/code>,\u00a0<code>preMove<\/code>,\u00a0<code>moveFailed<\/code>,\u00a0<code>doneFileName<\/code>,\u00a0<code>idempotentKey<\/code>\u00a0\u0438\u00a0<code>doneFileName<\/code>\u00a0\u0443 S3) \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u0442\u0435 \u0436\u0435 \u043a\u043b\u044e\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 \u0442\u0443 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0434\u0430\u044e\u0442 \u0442\u0435 \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u0422\u0430\u043c \u043a\u043b\u044e\u0447 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u043a\u0430\u043a \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u0441\u0435\u0433\u0434\u0430; \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u043e\u043d \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u0447\u043d\u043e, \u043a\u0430\u043a \u0432 Camel.<\/p>\n<h3>5. \u0417\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:\u00a0bean:,\u00a0ref:,\u00a0env:<\/h3>\n<h4>bean:, \u0432\u044b\u0437\u043e\u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430<\/h4>\n<p>\u0420\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f\u0437\u044b\u043a \u0432\u044b\u0440\u0430\u0436\u0430\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d: \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043b\u043e\u044f\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0440\u0430\u0441\u0447\u0451\u0442 \u0446\u0435\u043d\u044b, \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0436\u0438\u0432\u0451\u0442 \u0432 \u0441\u0435\u0440\u0432\u0438\u0441\u0435. \u042f\u0437\u044b\u043a \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0432 \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438: \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438, \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435.<\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0440\u0435\u0435\u0441\u0442\u0440 \u0441 \u0434\u0432\u0443\u043c\u044f \u0431\u0438\u043d\u0430\u043c\u0438,\u00a0<code>pricing<\/code>\u00a0\u0438\u00a0<code>pricing-rules<\/code>, \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e\u00a0<code>Gross(int qty, double price)<\/code>,\u00a0<code>IsGold(string name)<\/code>,\u00a0<code>Badge(string name, int points)<\/code>\u00a0\u0438\u00a0<code>Touch(string)<\/code>.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>bean:pricing.Gross(header.b, header.price)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>7.5<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${bean:pricing.Gross(${header.b}, ${header.price})}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>7.5<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>bean:pricing-rules.Badge(<\/code><a href=\"http:\/\/header.user.Name\" rel=\"noopener nofollow\"><code>header.user.Name<\/code><\/a><code>, 7)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Ann:7<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>bean:pricing.Gross(header.b, 2) - 1<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>5<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>bean:pricing.Touch('x')<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>null<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>bean:pricing.IsGold(<\/code><a href=\"http:\/\/header.user.Name\" rel=\"noopener nofollow\"><code>header.user.Name<\/code><\/a><code>)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.flag &amp;&amp; bean:pricing.IsGold('Bob')<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>False<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0428\u0430\u0431\u043b\u043e\u043d<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>total ${bean:pricing.Gross(header.b, 2)} EUR<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>total 6 EUR<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412\u044b\u0437\u043e\u0432 \u0431\u0438\u043d\u0430 \u043f\u043e\u043b\u043d\u043e\u043f\u0440\u0430\u0432\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f: \u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c, \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437\u00a0<code>&amp;&amp;<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0435. \u0412 \u0444\u0430\u0439\u043b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"xml\">&lt;filter expr=\"bean:loyalty.IsGold(header.customer)\"&gt;  &lt;to uri=\"direct:\/\/gold\"\/&gt;&lt;\/filter&gt;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u0430, \u0432\u0441\u0435 \u043e\u043d\u0438 \u0432\u0438\u0434\u043d\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u0432\u044b\u0448\u0435:<\/p>\n<ul>\n<li>\n<p><strong>\u0418\u043c\u044f<\/strong>\u00a0\u044d\u0442\u043e \u0438\u043c\u044f \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u0431\u0435\u0437\u00a0<code>#<\/code>, \u0432 \u043d\u0451\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0435\u0444\u0438\u0441\u044b (<code>pricing-rules<\/code>).<\/p>\n<\/li>\n<li>\n<p><strong>\u041c\u0435\u0442\u043e\u0434<\/strong>\u00a0\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d. \u041f\u0440\u043e\u0441\u0442\u043e\u00a0<code>bean:pricing<\/code>\u00a0\u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430.\u00a0<code>bean:pricing.Method<\/code>\u00a0\u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u043a \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0431\u0435\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u0434\u0435\u0444\u0438\u0441 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u044d\u0442\u043e \u043c\u0438\u043d\u0443\u0441:\u00a0<code>bean:svc.Count-1<\/code>\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0<code>Count<\/code>\u00a0\u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b<\/strong>\u00a0\u044d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430. \u0412\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\u00a0<code>${bean:...}<\/code>\u00a0\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u00a0<code>${...}<\/code>, \u0438 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u043e \u0436\u0435, \u0447\u0442\u043e \u0431\u0435\u0437 \u043e\u0431\u0451\u0440\u0442\u043a\u0438; \u044d\u0442\u043e \u0444\u043e\u0440\u043c\u0430 \u0438\u0437 Camel, \u0438 \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0412 \u0433\u043e\u043b\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0431\u0435\u0437 \u043e\u0431\u0451\u0440\u0442\u043a\u0438.\u00a0<code>${<\/code>\u00a0\u0442\u0430\u043c \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u0442\u0435\u043a\u0441\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c (\u043e\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442, \u0430 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f), \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435<\/strong>\u00a0\u0438\u0434\u0451\u0442 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 (\u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) \u0438 \u0447\u0438\u0441\u043b\u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0442\u0438\u043f\u0430\u00a0<code>IExchange<\/code>,\u00a0<code>IMessage<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>CancellationToken<\/code>\u00a0\u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0432 \u0441\u0447\u0451\u0442 \u043d\u0435 \u0438\u0434\u0451\u0442. \u041a\u0430\u0436\u0434\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0442\u0438\u043f.<\/strong>\u00a0\u041c\u0435\u0442\u043e\u0434\u00a0<code>void<\/code>\u00a0\u0434\u0430\u0451\u0442\u00a0<code>null<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00ab\u043d\u0435\u0442\u00bb \u0438\u043b\u0438 \u043f\u0443\u0441\u0442\u043e\u0442\u0430, \u043a\u0430\u043a \u0432 Apache Camel.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u0438\u0441\u043a \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u0438 \u0441\u0432\u043e\u0439 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430.<\/strong>\u00a0\u0411\u0438\u043d \u0438\u0449\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0432\u044b\u0437\u043e\u0432\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u043e\u0431\u0449\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u043a\u044d\u0448 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443, \u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0441\u0432\u043e\u0439 \u0431\u0438\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0432\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438\u00a0<code>pricing<\/code>\u00a0\u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0438\u0434\u044f\u0442 \u0447\u0443\u0436\u043e\u0433\u043e. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0431\u0438\u043d \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0435\u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d.<\/strong>\u00a0<code>bean:<\/code>\u00a0\u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u043c, \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 \u043f\u0440\u0438\u043c\u044b\u043a\u0430\u0435\u0442 \u0438 \u043a\u00a0<code>bean<\/code>, \u0438 \u043a \u0438\u043c\u0435\u043d\u0438. \u0412 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u043e\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435, \u0433\u0434\u0435 \u0432\u0435\u0442\u043a\u0430 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<code>bean<\/code>, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u044b:\u00a0<code>flag ? bean : other<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0422\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443<\/h4>\n<p>\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e: \u0448\u0430\u0431\u043b\u043e\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0435\u0442\u043e\u0434, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439\u00a0<code>Task<\/code>,\u00a0<code>Task&lt;T&gt;<\/code>,\u00a0<code>ValueTask<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>ValueTask&lt;T&gt;<\/code>, \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0441\u043e\u0432\u0435\u0442\u043e\u043c \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0448\u0430\u0433\u043e\u043c:\u00a0<code>&lt;bean ref=\"#name\" method=\"...\"\/&gt;<\/code>\u00a0\u0432 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435 \u0438\u043b\u0438\u00a0<code>.Bean(\"#name\", \"...\")<\/code>\u00a0\u0432 C#. \u0422\u043e \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u044f\u0437\u044b\u043a\u0435 Simple \u0438\u0437 Apache Camel. \u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043f\u0440\u044f\u0442\u0430\u043b\u0430 \u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u043e\u0442\u043e\u043a\u0430 \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u0435\u0451 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0438\u0449\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f\u0437\u044b\u043a \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u0434\u0430\u0451\u0442.<\/p>\n<h4>Method()\u00a0\u0432 C#, \u0438 \u0433\u0434\u0435 \u0436\u0434\u0443\u0442\u00a0Task<\/h4>\n<p><code>Method(reference, spec)<\/code>\u00a0\u044d\u0442\u043e \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0442\u043e\u0433\u043e \u0436\u0435 \u0432\u044b\u0437\u043e\u0432\u0430, \u0430\u043d\u0430\u043b\u043e\u0433\u00a0<code>method()<\/code>\u00a0\u0438\u0437 Camel:<\/p>\n<pre><code>From(\"direct:\/\/orders\")    .Filter(Method(\"#loyalty\", \"IsGold(${header.customer})\"))      \/\/ \u0443\u0441\u043b\u043e\u0432\u0438\u0435        .SetBody(Method(\"#pricing\", \"Gross(${header.qty}, 2.5)\"))  \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0442\u0438\u043f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f    .EndFilter()    .Validate(Method(\"#rules\", \"IsAllowed(${header.customer})\"), \"not allowed\");<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0415\u0441\u0442\u044c \u043e\u0434\u043d\u043e \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0443\u043c\u0435\u0441\u0442\u0435\u043d: \u0443\u0441\u043b\u043e\u0432\u0438\u0435. \u0423\u0441\u043b\u043e\u0432\u0438\u044f \u0432 redb.Route \u044d\u0442\u043e \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442 (<code>MatchesAsync<\/code>), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u00a0<code>Filter<\/code>,\u00a0<code>When<\/code>\u00a0\u0438\u00a0<code>Validate<\/code>\u00a0\u043c\u0435\u0442\u043e\u0434\u00a0<code>Method()<\/code>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439\u00a0<code>Task&lt;bool&gt;<\/code>, \u0447\u0435\u0441\u0442\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f. \u0412 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0437\u043e\u0432 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439, \u043a\u0430\u043a \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>bean:<\/code>.\u00a0<code>Validate<\/code>\u00a0\u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u044e\u0431\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438 \u0447\u0438\u0442\u0430\u0435\u0442 \u0435\u0433\u043e \u043a\u0430\u043a \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a\u00a0<code>Filter<\/code>:\u00a0<code>Validate(Expr(\"header.a &gt; 0\"))<\/code>.<\/p>\n<h4>ref:, \u0441\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430<\/h4>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 \u043d\u0443\u0436\u0435\u043d \u0441\u0430\u043c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u0430 \u043d\u0435 \u0432\u044b\u0437\u043e\u0432 \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430: \u043b\u0438\u043c\u0438\u0442, \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0435\u0442\u043e\u0434.\u00a0<code>ref:name<\/code>\u00a0\u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<code>name<\/code>, \u043a\u0430\u043a\u00a0<code>${ref:name}<\/code>\u00a0\u0432 Camel:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>ref:limits.max<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>100<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>ref:limits.max - header.b<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>97<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${ref:limits.max}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>100<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>header.a &lt; ref:limits.max<\/code>\u00a0(\u0443\u0441\u043b\u043e\u0432\u0438\u0435)<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>max ${ref:limits.max}<\/code>\u00a0(\u0448\u0430\u0431\u043b\u043e\u043d)<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>max 100<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0418\u043c\u044f \u044d\u0442\u043e \u0432\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0431\u0443\u043a\u0432, \u0446\u0438\u0444\u0440,\u00a0<code>_<\/code>,\u00a0<code>.<\/code>\u00a0\u0438\u00a0<code>-<\/code>\u00a0\u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0<code>ref:limits.max<\/code>\u00a0\u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u043a\u00a0<code>limits.max<\/code>, \u0430 \u043d\u0435 \u0447\u043b\u0435\u043d \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u00a0<code>limits<\/code>. \u041f\u0435\u0440\u0435\u0434 \u043c\u0438\u043d\u0443\u0441\u043e\u043c \u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u043e\u0431\u0435\u043b:\u00a0<code>ref:limit-1<\/code>\u00a0\u044d\u0442\u043e \u0438\u043c\u044f\u00a0<code>limit-1<\/code>,\u00a0<code>ref:limit - 1<\/code>\u00a0\u044d\u0442\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435. \u0421\u0430\u043c\u00a0<code>ref:<\/code>\u00a0\u043d\u0438\u0447\u0435\u0433\u043e \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u0442. \u041f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443\u00a0<code>${ref:name}<\/code>\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442, \u0442\u0430\u043a \u0447\u0442\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0438\u0437 \u043d\u0435\u0451, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0430\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440; \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0432\u043e\u043a\u0440\u0443\u0433 \u0448\u0430\u0431\u043b\u043e\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0435\u0433\u043e\u00a0<code>ToString()<\/code>. \u0427\u0442\u043e\u0431\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u043b\u0435\u043d\u043e\u043c, \u043f\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043c\u0435\u0442\u043e\u0434:\u00a0<code>bean:fmt.Describe(ref:chat.settings)<\/code>. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0438\u043c\u044f \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u043f\u043e\u0438\u0441\u043a \u0438\u0434\u0451\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0430 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043a\u0430\u0441\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u0435\u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d, \u043a\u0430\u043a \u0438 \u0443\u00a0<code>bean:<\/code>.<\/p>\n<h4>env:, \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430<\/h4>\n<p><code>env:NAME<\/code>\u00a0\u044d\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u041e\u0421\u00a0<code>NAME<\/code>, \u043a\u0430\u043a\u00a0<code>${env:NAME}<\/code>\u00a0\u0432 Camel:\u00a0<code>${env:BILLING_TOKEN}<\/code>\u00a0\u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435,\u00a0<code>env:REGION == 'eu'<\/code>\u00a0\u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438. \u041d\u0435\u0437\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u0442\u043e\u00a0<code>null<\/code>\u00a0\u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u043e\u0442\u043e\u0439. \u0427\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u043d\u0430 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438.<\/p>\n<p>\u0414\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0439\u0442\u0438 \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u0438\u0437 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0435\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u0438 \u043e\u043d \u043d\u0435 \u0447\u0430\u0441\u0442\u044c \u044f\u0437\u044b\u043a\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439: \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u00a0<code>{{BILLING_TOKEN}}<\/code>\u00a0\u0438\u00a0<code>{{key:default}}<\/code>. \u041e\u043d\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0442\u0441\u044f \u0434\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0432 URI \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0432\u00a0<code>enabled=<\/code>, \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 \u0431\u0438\u043d\u043e\u0432 \u0438 \u0432\u00a0<code>value=<\/code>\u00a0\u0443\u00a0<code>&lt;setHeader&gt;<\/code>,\u00a0<code>&lt;setProperty&gt;<\/code>\u00a0\u0438\u00a0<code>&lt;setBody&gt;<\/code>. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f\u00a0<code>IConfiguration<\/code>\u00a0\u0445\u043e\u0441\u0442\u0430 (\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435,\u00a0<code>appsettings.json<\/code>, \u0441\u0435\u043a\u0440\u0435\u0442\u044b, \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c \u0445\u043e\u0441\u0442\u043e\u043c), \u043f\u043e\u0442\u043e\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u041e\u0421 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0435\u0442\u00a0<code>IConfiguration<\/code>. \u041a\u043b\u044e\u0447 \u0431\u0435\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0431\u0435\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<h3>6. \u041b\u043e\u0432\u0443\u0448\u043a\u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0438 \u043a\u0442\u043e \u0435\u0451 \u043b\u043e\u0432\u0438\u0442<\/h3>\n<p>\u041e\u0434\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0451 \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0436\u0435 \u0434\u0435\u043d\u044c \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439, \u043a\u0442\u043e \u043f\u0440\u0438\u0448\u0451\u043b \u0438\u0437 Camel:<\/p>\n<pre><code>.Filter(\"${header.kind} == 'order'\")   \/\/ \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u0442\u0438\u043d\u0430.Filter(\"header.kind == 'order'\")      \/\/ \u0447\u0442\u043e \u0438\u043c\u0435\u043b\u043e\u0441\u044c \u0432 \u0432\u0438\u0434\u0443<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u044d\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d. \u041e\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0442\u0435\u043a\u0441\u0442 \u0432\u0440\u043e\u0434\u0435\u00a0<code>refund == 'order'<\/code>, \u0442\u0435\u043a\u0441\u0442 \u043d\u0435 \u043f\u0443\u0441\u0442\u043e\u0439, \u0430 \u043d\u0435\u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u044d\u0442\u043e \u0438\u0441\u0442\u0438\u043d\u0430. \u0412 Simple \u0442\u0430\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442; \u0432 redb.Route \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u00a0<code>${...}<\/code>\u00a0\u044d\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430, \u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043b\u0438\u0431\u043e \u0433\u043e\u043b\u044b\u043c, \u043b\u0438\u0431\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043a\u043e\u0431\u043e\u043a. \u042f\u0437\u044b\u043a \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043d, \u043d\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0442\u043e\u043c\u0443, \u043a\u0442\u043e \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u043f\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0435\u0442 \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0440\u044f\u043c\u043e \u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430, \u0438 \u0434\u043b\u044f\u00a0<code>==<\/code>, \u0438 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 Camel\u00a0<code>=~<\/code>\u00a0\u0438\u00a0<code>range<\/code>:<\/p>\n<pre><code>warning: &lt;file&gt;(line,col): expr=\"${header.kind} == 'order'\" compares OUTSIDE ${\u2026}: a condition holding a placeholder is rendered to text first, and non-empty text is true whatever it says. Write the comparison without the braces (header.kind == 'order') or entirely inside them.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0422\u0430\u043a \u0436\u0435 \u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0435\u0442 \u043e \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0445: \u0432\u044b\u0437\u043e\u0432\u0435\u00a0<code>bean:<\/code>\u00a0\u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438\u00a0<code>${...}<\/code>\u00a0\u0432\u043d\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0438\u043c\u0435\u043d\u0438\u00a0<code>ref:<\/code>\u00a0\u0432\u043d\u0435\u00a0<code>${...}<\/code>\u00a0\u0432 \u0442\u0435\u043a\u0441\u0442\u0435, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 (\u0440\u0430\u0437\u0434\u0435\u043b 9).<\/p>\n<h3>7. \u0428\u0430\u0431\u043b\u043e\u043d\u044b \u044d\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435: \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430<\/h3>\n<p>\u0412 redb.Route \u0435\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0438\u0434 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432: \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430\u00a0<code>redb.Route.Templates<\/code>, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u00a0<code>{{ ... }}<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044f\u0442 \u0442\u0435\u043b\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0418\u0445 \u0442\u0435\u043a\u0441\u0442 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043e\u0442 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430, \u0430 \u043d\u0435 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0414\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u043e\u0434.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b (<code>ExpressionSandbox<\/code>). \u0412 \u043d\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0432\u043e\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043f\u043e\u043b\u044f, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442.\u00a0<code>expr('x')<\/code>\u00a0\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u00a0<code>x<\/code>\u00a0\u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a, \u043a\u0430\u043a\u00a0<code>${x}<\/code>\u00a0\u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u043d\u043e \u043f\u043e\u0434 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0435\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u0412\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u0431\u044b \u043a\u043e\u0434, \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438 \u0432\u044b\u0445\u043e\u0434\u044b \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:\u00a0<code>bean:<\/code>,\u00a0<code>ref:<\/code>\u00a0\u0438\u00a0<code>env:<\/code>. \u041f\u0440\u043e\u0433\u043e\u043d \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043a\u043e\u0434\u0435, \u0433\u0434\u0435 \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0435\u043b\u0430 \u043c\u0435\u0442\u043e\u0434\u00a0<code>Pwn()<\/code>\u00a0\u0441\u0442\u0430\u0432\u0438\u0442 \u0444\u043b\u0430\u0433:<\/p>\n<pre><code>{{ body.Name }}                 \u2192 ann{{ expr('upper(body.Name)') }}  \u2192 ANN{{ expr('body.Pwn()') }}        \u2192 ExpressionSandboxViolationException:                                  Method 'Pwn' on Probe cannot be called here: the expression runs in a sandbox                                  (a template argument or expr()), where objects expose their members but never code.                                  (\u0444\u043b\u0430\u0433 \u043e\u0441\u0442\u0430\u043b\u0441\u044f false: \u043c\u0435\u0442\u043e\u0434 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f){{ expr('bean:rules.IsGold(body.Name)') }}  \u2192 error: Method 'IsGold' on TemplateGoldRules cannot be called here: ...{{ expr('ref:rules') }}                     \u2192 error: 'ref:rules' cannot be read here: the expression runs in a sandbox                                              (a template argument or expr()), which reads the message and its values,                                              not the registry or the process environment.{{ expr('env:PATH') }}                      \u2192 error: 'env:PATH' cannot be read here: ... (\u0442\u043e \u0436\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430 \u0432\u0435\u0441\u044c \u0432\u044b\u0432\u043e\u0434: \u043d\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439\u00a0<code>expr(...)<\/code>\u00a0\u0432 \u043d\u0451\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u043d\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043a\u0442\u043e \u0431\u044b \u0435\u0433\u043e \u043d\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b. \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0438\u0448\u0435\u0442 \u0432 C# \u0438\u043b\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u044d\u0442\u043e \u043a\u043e\u0434, \u0438 \u0432 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0443 \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442; \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044d\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442.<\/p>\n<h3>8. \u0421\u0432\u043e\u0438 \u043a\u043e\u0440\u043d\u0438: \u0440\u0435\u0437\u043e\u043b\u0432\u0435\u0440\u044b \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u0432<\/h3>\n<p><code>header.<\/code>,\u00a0<code>property.<\/code>,\u00a0<code>body<\/code>\u00a0\u0438\u00a0<code>exception.<\/code>\u00a0\u044d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043d\u0438. \u041c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0447\u0438\u0442\u0430\u043b \u0434\u043e\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u043a \u0436\u0435 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u0430\u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a:<\/p>\n<pre><code>context.RegisterPrefixResolver(\"order.\", (exchange, path) =&gt; orders.Read(exchange, path));<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0433\u043e\u043d \u0441 \u0440\u0435\u0437\u043e\u043b\u0432\u0435\u0440\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>150.5m<\/code>\u00a0\u0434\u043b\u044f\u00a0<code>total<\/code>\u00a0\u0438\u00a0<code>true<\/code>\u00a0\u0434\u043b\u044f\u00a0<code>vip<\/code>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0413\u0434\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0422\u0435\u043a\u0441\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>${<\/code><a href=\"http:\/\/order.total\" rel=\"noopener nofollow\"><code>order.total<\/code><\/a><code>}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>150.5<\/code>,\u00a0<code>decimal<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>total=${<\/code><a href=\"http:\/\/order.total\" rel=\"noopener nofollow\"><code>order.total<\/code><\/a><code>}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>total=150.5<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0443\u0441\u043b\u043e\u0432\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\"><a href=\"http:\/\/order.vip\" rel=\"noopener nofollow\"><code>order.vip<\/code><\/a><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0443\u0441\u043b\u043e\u0432\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\"><a href=\"http:\/\/order.total\" rel=\"noopener nofollow\"><code>order.total<\/code><\/a><code> &gt; 100<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>True<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0420\u0435\u0437\u043e\u043b\u0432\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0451\u043d\u043d\u044b\u0439 \u0438\u043c \u0442\u0438\u043f. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u043e\u0438\u0441\u043a\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043d\u0438, \u043f\u043e\u0442\u043e\u043c \u0440\u0435\u0437\u043e\u043b\u0432\u0435\u0440\u044b \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043e\u0431\u043c\u0435\u043d, \u043f\u043e\u0442\u043e\u043c \u043e\u0431\u0449\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 (<code>ExpressionResolver.RegisterPrefixResolver<\/code>). \u041f\u0440\u043e\u0433\u043e\u043d \u044d\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442: \u0440\u0435\u0437\u043e\u043b\u0432\u0435\u0440, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f\u00a0<code>header.<\/code>, \u043d\u0435 \u0437\u0430\u0441\u043b\u043e\u043d\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a. \u0420\u0435\u0437\u043e\u043b\u0432\u0435\u0440, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0436\u0438\u0432\u0451\u0442 \u0438 \u0443\u043c\u0438\u0440\u0430\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u044d\u0442\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u0434\u0435, \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u043e\u0434\u0443\u043b\u044f; \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u043d\u0435\u0451 \u043d\u0435\u0442.<\/p>\n<h3>9. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430: \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u043e\u0439 \u0434\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043d\u0430\u00a0<code>Start()<\/code>\u00a0\u0443\u0436\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442 \u0436\u0438\u0432\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a. \u0424\u0430\u0439\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0435\u0449\u0451 \u0440\u0430\u043d\u044c\u0448\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 (<code>redb-route-xml check<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435\u00a0<code>pack<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0435 \u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u0442\u044b\u0439 \u043f\u0430\u043a\u0435\u0442) \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0433\u043e\u043b\u043e\u0435 \u0438 \u043a\u0430\u0436\u0434\u0443\u044e\u00a0<code>${...}<\/code>, \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a, \u043a\u0430\u043a \u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u0434\u0432\u0438\u0436\u043e\u043a. \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u0432\u0438\u0436\u043e\u043a \u043e\u0442\u0432\u0435\u0440\u0433 \u0431\u044b, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0443 \u0435\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430, \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u043e\u0439, \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0434\u0432\u0438\u0436\u043a\u0430. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430\u00a0<code>bean:<\/code>\u00a0\u0438 \u0438\u043c\u0435\u043d\u0438\u00a0<code>ref:<\/code>\u00a0\u043e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e \u0438\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c\u00a0<code>&lt;bean&gt;<\/code>\u00a0\u043f\u0430\u043a\u0435\u0442\u0430, \u0430 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c\u00a0<code>--bin<\/code>\u00a0\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0438 \u0441\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0437\u043e\u0432\u00a0<code>bean:<\/code>\u00a0\u0441 \u0442\u0438\u043f\u043e\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0431\u0438\u043d\u0430.<\/p>\n<p>\u0412\u043e\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0432\u044b\u0432\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 (\u043f\u0443\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d):<\/p>\n<pre><code>error: routes\/main.route.xml(5,14): expr= unclosed '${' at position 7 of \"total ${header.amount\": the placeholder has no closing '}'.error: routes\/main.route.xml(6,25): expr= a bean: call names its method: bean:rules.Method(...) (position 1 within the expression).warning: routes\/main.route.xml: '#pricing' is not declared by any &lt;bean&gt; of this package \u2014 either module code registers it at startup (fine), or it is a dangling reference.error: routes\/main.route.xml(8,13): expr= bean: '#rules' has no public method 'Badge' taking 1 argument(s) (IExchange, IMessage and CancellationToken parameters are supplied by the binding and do not count).error: routes\/main.route.xml(9,13): expr= bean:rules.CheckAsync returns Task`1: a bean: call in an expression is synchronous. Call an asynchronous method as a step: &lt;bean ref=\"#rules\" method=\"CheckAsync(...)\"\/&gt; or .Bean(\"#rules\", \"CheckAsync(...)\").warning: routes\/main.route.xml(10,13): expr= holds a bean: call outside ${...} with ${...} arguments: the text is a template and renders instead of calling (in a condition it is always true). Write the arguments bare, bean:svc.Check(header.x), or the whole call as one placeholder, ${bean:svc.Check(${header.x})}.warning: &lt;file&gt;(line,col): expr= holds a ref: name outside ${...} in a text with ${...}: the text is a template and renders ref:name as text instead of reading the object (in a condition it is always true). Write the whole expression bare, ref:limit &gt; header.x, or as one placeholder, ${ref:limit &gt; header.x}.error: &lt;file&gt;(line,col): expr= Error compiling expression 'header.b == 3 garbage' using AST: unexpected 'garbage' at position 15 within the expression: the expression ends before it.warning: &lt;file&gt;(line,col): expr= \"header.b 3\" reads as the text itself, not as an expression: '3' at position 10 does not continue it; in a condition the text is always true.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0438 \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u043c\u0438. \u0411\u0438\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u043d\u0438 \u043e\u0434\u043d\u0438\u043c\u00a0<code>&lt;bean&gt;<\/code>\u00a0\u043f\u0430\u043a\u0435\u0442\u0430, \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u043a\u043e\u0434 \u043c\u043e\u0434\u0443\u043b\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u0437\u043d\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u041c\u0435\u0442\u043e\u0434 \u0441 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0430\u0447\u0443, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0438\u043a\u0430\u043a\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u043d\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442. \u0422\u0435\u043a\u0441\u0442 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430, \u0438 \u0437\u0434\u0435\u0441\u044c, \u0438 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430.\u00a0<code>header.b 3<\/code>\u00a0\u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u0434\u043b\u044f \u0433\u043e\u043b\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u044d\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u043d\u044b\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u043b, \u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u043d \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0435\u043c \u043e\u043d \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435.<\/p>\n<p>\u041f\u0440\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0442\u044c \u0442\u043e\u0447\u043d\u044b\u043c. \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 redb Route XML \u0434\u043b\u044f VS Code \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0444\u0430\u0439\u043b\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u043f\u043e \u0441\u0445\u0435\u043c\u0435 \u043f\u0440\u044f\u043c\u043e \u043f\u0440\u0438 \u043d\u0430\u0431\u043e\u0440\u0435: \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0441\u0445\u0435\u043c\u044b \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b-\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043e\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u0438 \u043e\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0430 \u043d\u0435 \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443 \u0438\u043c\u0451\u043d \u0431\u0438\u043d\u043e\u0432 \u043f\u043e\u0441\u043b\u0435\u00a0<code>bean:<\/code>\u00a0\u0438\u00a0<code>${bean:<\/code>, \u0438\u043c\u0435\u043d\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439\u00a0<code>&lt;bean&gt;<\/code>\u00a0\u0441\u0430\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u0438\u0437\u00a0<code>context.xml<\/code>\u00a0\u043c\u043e\u0434\u0443\u043b\u044f.<\/p>\n<h3>10. \u0413\u0434\u0435 \u044f\u0437\u044b\u043a \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443<\/h3>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0443\u043d\u043a\u0442 \u043d\u0438\u0436\u0435 \u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0442\u043e-\u0442\u043e, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0448\u0435.<\/p>\n<ol>\n<li>\n<p><strong>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c.<\/strong>\u00a0\u041d\u0435\u0442 \u043f\u0443\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0442\u044c\u0441\u044f, \u0438 \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0430 \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u041b\u044e\u0431\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0440\u0435\u0435\u0441\u0442\u0440\u0443, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f IL \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430, \u043f\u0440\u0438\u0447\u0451\u043c \u0434\u0432\u0430\u0436\u0434\u044b.<\/strong>\u00a0\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430, \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u043e\u0439, \u0435\u0449\u0451 \u0434\u043e \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u0441\u043a\u043e\u0447\u0438\u043b\u043e,\u00a0<code>Start()<\/code>\u00a0\u0431\u0440\u043e\u0441\u0438\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0421\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0438\u0445\u043e\u0435 \u00ab\u043d\u0435\u0442\u00bb.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430, \u0430 \u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/strong>\u00a0\u041d\u0435\u0434\u043e\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430, \u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043d\u0435\u0437\u0430\u043a\u0440\u044b\u0442\u0430\u044f \u043a\u0430\u0432\u044b\u0447\u043a\u0430, \u0438\u043c\u044f \u0441 \u0434\u0435\u0444\u0438\u0441\u043e\u043c \u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u043a, \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d, \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u043d\u0435-\u0447\u0438\u0441\u043b\u0430 \u0438 \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0440\u043e\u0441\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0441\u0442\u043e. \u041d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435 \u0434\u0430\u0451\u0442 \u0442\u0438\u0445\u043e \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0412\u044b\u0437\u043e\u0432\u044b \u0431\u0438\u043d\u043e\u0432 \u0441\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438.<\/strong>\u00a0\u0421\u00a0<code>--bin<\/code>\u00a0\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439. \u041e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u0438\u043c\u0435\u043d\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0431\u043e\u0440\u043a\u0438, \u0430 \u043d\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442 \u0432 \u0431\u043e\u044e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442 \u0442\u0438\u043f\u044b.<\/strong>\u00a0\u041f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>int<\/code>,\u00a0<code>bool<\/code>,\u00a0<code>decimal<\/code>, \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0437 \u0440\u0435\u0435\u0441\u0442\u0440\u0430, \u0447\u0442\u043e \u0431\u044b \u043d\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0440\u0435\u0437\u043e\u043b\u0432\u0435\u0440. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, \u0430 \u043d\u0435 \u0442\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0434\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043d\u043e\u0432\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043c\u044b\u0441\u043b \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043c\u0430\u0448\u0438\u043d\u044b.<\/strong>\u00a0\u041b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0439 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0435, \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0442\u043e\u0436\u0435;\u00a0<code>=~<\/code>\u00a0\u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u043e; \u0441\u043b\u043e\u0432\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u0417\u0430\u0449\u0438\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u0430\u043a \u0432 C#.<\/strong>\u00a0<code>AND<\/code>,\u00a0<code>OR<\/code>\u00a0\u0438\u00a0<code>??<\/code>\u00a0\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043b\u0435\u0432\u0430 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0432\u044b\u0437\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0434\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438.<\/strong>\u00a0\u0423\u0441\u043b\u043e\u0432\u0438\u0435, \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u00a0<code>AND<\/code>\u00a0\u0438\u00a0<code>logical()<\/code>\u00a0\u0447\u0438\u0442\u0430\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u0432\u043e \u0432\u0441\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0435\u043d\u044f\u044e\u0442 \u043e\u0431\u043c\u0435\u043d.<\/strong>\u00a0<code>property.attempt++<\/code>\u00a0\u044d\u0442\u043e \u0441\u0447\u0451\u0442\u0447\u0438\u043a, \u0430 \u043d\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u0442\u043e-\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043a\u043e\u0434.<\/strong>\u00a0\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0435, \u0433\u0434\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0440\u0435\u0435\u0441\u0442\u0440\u0443 \u0438 \u043a \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u0441\u0432\u043e\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u043c.<\/strong>\u00a0\u0420\u0435\u0437\u043e\u043b\u0432\u0435\u0440 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430, \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430, \u0443\u0445\u043e\u0434\u0438\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u044d\u0442\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u043e\u0439\u0442\u0438\u0441\u044c \u0441 \u043a\u043e\u0434\u043e\u043c.<\/strong>\u00a0\u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u0441\u0432\u0435\u0440\u044f\u043b\u0438\u0441\u044c \u0441\u043e \u0441\u043d\u0438\u043c\u043a\u043e\u043c \u0432\u0441\u0435\u0445 956 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 redb.Route, \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0430\u044f\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043f\u0430\u043b\u043e \u0432 \u043a\u043e\u0434.<\/p>\n<\/li>\n<\/ol>\n<h3>11. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 Simple \u0438\u0437 Apache Camel<\/h3>\n<p>\u0421\u0445\u043e\u0434\u0441\u0442\u0432\u043e \u0441 Simple \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e\u0435, \u0438 \u0442\u043e\u0442, \u043a\u0442\u043e \u043f\u0440\u0438\u0448\u0451\u043b \u0438\u0437 Camel, \u0443\u0437\u043d\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u043a\u0430\u0436\u0434\u0443\u044e \u0444\u043e\u0440\u043c\u0443. \u0420\u0430\u0437\u043b\u0438\u0447\u0438\u044f, \u0444\u043e\u0440\u043c\u0430 \u0437\u0430 \u0444\u043e\u0440\u043c\u043e\u0439:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">Camel Simple<\/p>\n<\/th>\n<th>\n<p align=\"left\">redb.Route<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.x}<\/code>,\u00a0<code>${exchangeProperty.x}<\/code>,\u00a0<code>${body}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>${header.x}<\/code>,\u00a0<code>${property.x}<\/code>,\u00a0<code>${body}<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.x} == 'a'<\/code>\u00a0\u043a\u0430\u043a \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.x == 'a'<\/code>;\u00a0<code>${...}<\/code>\u00a0\u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0442\u0435\u043a\u0441\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${bean:name.method(${body})}<\/code>,\u00a0<code>${bean:name?method=m}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>${bean:name.method(${body})}<\/code>\u00a0\u0438\u043b\u0438 \u0433\u043e\u043b\u043e\u0435\u00a0<code>bean:name.method(body)<\/code>; \u0444\u043e\u0440\u043c\u0430\u00a0<code>?method=<\/code>\u00a0\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a URI \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438\u00a0<code>bean:<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>method(ref, \"name\")<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Method(\"#ref\", \"name(args)\")<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${ref:x}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>${ref:x}<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>ref:x<\/code>; \u0432\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f \u044d\u0442\u043e \u0438\u043c\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.x} =~ 'abc'<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.x =~ 'abc'<\/code>: \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0430\u0440\u0430 \u043a\u0430\u043a\u00a0<code>==<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${header.n} range '100..199'<\/code>,\u00a0<code>not range<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>header.n range '100..199'<\/code>,\u00a0<code>not range<\/code>; \u043b\u0438\u0442\u0435\u0440\u0430\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${env:X}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>${env:X}<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>env:X<\/code>;\u00a0<code>{{X}}<\/code>\u00a0\u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${jsonpath:$.x}<\/code>,\u00a0<code>${xpath:\/x}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u0430\u043a \u0436\u0435, \u0438\u043b\u0438\u00a0<code>jpath('$.x')<\/code>\u00a0\/\u00a0<code>xpath('\/x')<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${<\/code><a href=\"https:\/\/file:name\" rel=\"noopener nofollow\"><code>file:name<\/code><\/a><code>}<\/code>,\u00a0<code>${<\/code><a href=\"https:\/\/file:name.noext\" rel=\"noopener nofollow\"><code>file:name.noext<\/code><\/a><code>}<\/code>,\u00a0<code>${<\/code><a href=\"https:\/\/file:size\" rel=\"noopener nofollow\"><code>file:size<\/code><\/a><code>}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u0430\u043a \u0436\u0435, \u043f\u043e\u0432\u0435\u0440\u0445 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432\u00a0<code>redbFile.*<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>${date:now:yyyyMMdd}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>dateformat(now(), 'yyyyMMdd')<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u00a0<code>\\${<\/code>\u00a0\u0438\u00a0<code>$${<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\\${<\/code>;\u00a0<code>$${<\/code>\u00a0\u044d\u0442\u043e \u0437\u043d\u0430\u043a \u0434\u043e\u043b\u043b\u0430\u0440\u0430, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0438\u0434\u0451\u0442 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0442\u043e \u0435\u0441\u0442\u044c \u0432 Simple \u0438 \u0447\u0435\u0433\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0435\u0442 \u0432 redb.Route, \u043f\u0440\u044f\u043c\u043e: \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u00a0<code>?.<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0447\u0435\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0447\u043b\u0435\u043d\u0430\u043c \u0438 \u0442\u0430\u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d \u043a null, \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u00a0<code>${date:...}<\/code>, \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u00a0<code>dateformat(now(), ...)<\/code>.<\/p>\n<h3>12. \u0418\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0427\u0442\u043e<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u0435\u0433\u043e\u0434\u043d\u044f<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>jpath($.x)<\/code>\u00a0\/\u00a0<code>xpath(\/x)<\/code>\u00a0\u0433\u043e\u043b\u044b\u0435 \u0438 \u0431\u0435\u0437 \u043a\u0430\u0432\u044b\u0447\u0435\u043a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f; \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u043f\u0443\u0442\u044c \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0432\u043d\u0443\u0442\u0440\u0438\u00a0<code>${...}<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>round(2.5)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>2<\/code>: \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u043a \u0447\u0451\u0442\u043d\u043e\u043c\u0443, \u043a\u0430\u043a \u0432 .NET<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u043e\u0441\u0430\u044f \u0447\u0435\u0440\u0442\u0430 \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u044f\u043c\u043e \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 (<code>\\\\${header.x}<\/code>)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 \u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0440\u043e\u0441\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438, \u0430 \u043d\u0435 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435: \u0442\u0438\u043f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u043c\u043e\u043b\u0447\u0430 (\u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0438\u043c\u044f \u0441 \u0434\u0435\u0444\u0438\u0441\u043e\u043c \u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u043a, \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u043d\u0435-\u0447\u0438\u0441\u043b\u0430, \u043c\u0435\u0442\u043e\u0434 \u0441 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c), \u0437\u0434\u0435\u0441\u044c \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439. \u0421\u0442\u0440\u043e\u043a\u0438 \u0432\u044b\u0448\u0435 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c.<\/p>\n<h3>\u0427\u0442\u043e \u0432\u044b\u043d\u0435\u0441\u0442\u0438<\/h3>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0442\u043e\u0438\u0442 \u0438\u043c\u0435\u0442\u044c. \u042d\u0442\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0437\u0430 \u043d\u0438\u043c\u0438 \u0441\u0442\u043e\u0438\u0442. \u0421\u0442\u0440\u043e\u043a\u0443 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0442\u043e\u043a\u0435\u043d\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 \u043f\u0430\u0440\u0441\u0435\u0440 \u0432 \u0434\u0435\u0440\u0435\u0432\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 LINQ \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u043f\u0440\u0438\u0447\u0451\u043c\u00a0<code>AND<\/code>,\u00a0<code>OR<\/code>\u00a0\u0438\u00a0<code>??<\/code>\u00a0\u0437\u0430\u043c\u044b\u043a\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e, \u043a\u0430\u043a \u0432 C#. \u041d\u0435\u0434\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439, \u0430 \u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043c, \u0433\u0434\u0435 \u0443\u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0435\u0451 \u0441\u043a\u043e\u0431\u043a\u0438, \u0430\u00a0<code>\\${<\/code>\u00a0\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0435\u0451 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e. \u0412\u044b\u0437\u043e\u0432 \u0431\u0438\u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u0430\u00a0<code>ref:<\/code>\u00a0\u0438\u00a0<code>env:<\/code>\u00a0\u0434\u043e\u0441\u0442\u0430\u044e\u0442 \u0440\u0435\u0435\u0441\u0442\u0440 \u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0442\u0430\u043a, \u043a\u0430\u043a \u0436\u0434\u0443\u0442 \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0435 \u0438\u0437 Camel. \u0428\u0430\u0431\u043b\u043e\u043d\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u0434, \u043d\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u041c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043a\u043e\u0440\u043d\u0438, \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0441\u043b\u0435\u0434\u043e\u0432 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u0441\u0442\u043e\u043c.<\/p>\n<p>\u0421\u0430\u043c\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e, \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0438\u0437 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u044d\u0442\u043e\u00a0<a href=\"https:\/\/github.com\/redbase-app\/redb-route\/blob\/main\/EXPRESSIONS.md\" rel=\"noopener nofollow\">EXPRESSIONS.md<\/a>\u00a0\u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438. \u042f\u0437\u044b\u043a \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435\u00a0<a href=\"https:\/\/www.nuget.org\/packages\/redb.Route\/\" rel=\"noopener nofollow\">redb.Route \u043d\u0430 NuGet<\/a>.<\/p>\n<p><strong><em>\u0415\u0441\u043b\u0438 \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u2b50 \u043d\u0430\u00a0<\/em><\/strong><a href=\"https:\/\/github.com\/redbase-app\" rel=\"noopener nofollow\"><strong><em>GitHub<\/em><\/strong><\/a><strong><em>\u00a0\u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u043c \u044d\u0442\u043e \u043d\u0430\u0439\u0442\u0438.<\/em><\/strong><\/p>\n<hr\/>\n<p>\u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014\u00a0<a href=\"http:\/\/redb.ru\/articles\" rel=\"noopener nofollow\">redb.ru\/articles<\/a>, \u0435\u0449\u0451 \u2014 \u043d\u0430\u00a0<a href=\"https:\/\/habr.com\/ru\/users\/grelikt\/articles\/\" rel=\"noopener nofollow\">\u0425\u0430\u0431\u0440\u0435<\/a>.<\/p>\n<\/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:\/\/habr.com\/ru\/articles\/1106126\/\">https:\/\/habr.com\/ru\/articles\/1106126\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>redb.Route\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 header.a &gt; 10 \u043c\u0435\u0436\u0434\u0443 \u0444\u0430\u0439\u043b\u043e\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c, \u043a\u0430\u043a \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f bean:svc.Check(body), \u043f\u043e\u0447\u0435\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043a\u043e\u0434 \u0438 \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0438.  \u041f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c\u00a0\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0430 \u043e \u044f\u0437\u044b\u043a\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 redb.Route \u0432 \u0446\u0435\u043b\u043e\u043c. \u0422\u0430\u043c \u0431\u044b\u043b\u0430 \u043e\u0434\u043d\u0430 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438, \u043e\u0434\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0436\u0438\u0432\u0443\u0442: \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u042d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u044c. \u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0432\u0440\u043e\u0434\u0435\u00a0header.a &gt; 10. \u041a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442, \u0433\u0434\u0435 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430. \u041a\u0430\u043a \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u0432\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0434\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u0427\u0442\u043e \u044f\u0437\u044b\u043a \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u0438\u0448\u0451\u043b \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u043d\u0435 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0418 \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0444\u0430\u0439\u043b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0435\u0449\u0451 \u0434\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f.\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e \u0442\u043e\u043c, \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u0442\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u044f\u0437\u044b\u043a\u0443,\u00a0EXPRESSIONS.md, \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0438 \u0442\u0435\u0441\u0442\u00a0ExpressionsGuideExamplesTests\u00a0\u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u0430\u043c\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0438 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0430 \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435 130, \u043d\u0430 \u0434\u0432\u0438\u0436\u043a\u0435 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0434\u0432\u0438\u0436\u043e\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043b\u0438\u0431\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c, \u043b\u0438\u0431\u043e \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0430\u0434\u0430\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0438\u0436\u0435, \u0432\u0437\u044f\u0442\u044b\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446, \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0434\u0432\u0438\u0436\u043e\u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442, \u0430 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c. \u041d\u0435\u043c\u043d\u043e\u0433\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 (\u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430, \u0441\u0432\u043e\u0438 \u043a\u043e\u0440\u043d\u0438, \u0432\u044b\u0432\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438), \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043a\u043e\u0434\u0435, \u0438 \u044f \u043e\u0442\u043c\u0435\u0447\u0430\u044e \u044d\u0442\u043e \u043d\u0430 \u043c\u0435\u0441\u0442\u0435.\u0412\u0441\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043e\u0431\u043c\u0435\u043d\u0435:header.a = 42          header.b = 3            header.neg = -7        header.price = 2.5header.s = &#171;Hello World&#187;                        header.flag = true     header.off = falseheader.Content-Type = &#171;text\/xml&#187;                header.empty = &#171;&#187;      header.O&#8217;Brien = &#171;obrien&#187;header.user = { Name = &#171;Ann&#187;, Age = 30, Active = true, Manager = { Name = &#171;Bob&#187;, Age = 51 } }header.list = [5, 1, 9]                         header.when = 2026-08-28 10:30 UTCproperty.count = 7     property.items = [&#171;p&#187;, &#171;q&#187;, &#171;r&#187;]     property.nums = [1, 2, 3, 4]property.cfg = { enabled = true, limit = 5 }    property.counter = 10body = &#171;payload&#187;       exception.Message = &#171;boom&#187;registry: beans &#171;pricing&#187; and &#171;pricing-rules&#187;; &#171;limits.max&#187;, the number 1001. \u041e\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u043c-\u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c: \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443, \u0438\u0449\u0443\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e \u0438\u043c\u0435\u043d\u0438, \u043f\u043e \u0434\u043e\u0440\u043e\u0433\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. redb.Route \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0435\u0451 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u041c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043d\u0451\u043c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b \u0432\u0438\u0434\u0430\u00a0Func&lt;IExchange, object?&gt;. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u0435\u043b\u0435\u0433\u0430\u0442.\u0412\u043e\u0442 \u043f\u0443\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0433\u043e\u043b\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435.\u0422\u043e\u043a\u0435\u043d\u0438\u0437\u0430\u0442\u043e\u0440.\u00a0\u0422\u0435\u043a\u0441\u0442 \u0440\u0435\u0436\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u0435\u043a\u0441\u0435\u043c\u044b: \u0438\u043c\u0435\u043d\u0430, \u0447\u0438\u0441\u043b\u0430, \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, \u0441\u043a\u043e\u0431\u043a\u0438. \u041f\u0440\u043e\u0431\u0435\u043b\u044b \u043c\u0435\u0436\u0434\u0443 \u043b\u0435\u043a\u0441\u0435\u043c\u0430\u043c\u0438 \u0438\u0441\u0447\u0435\u0437\u0430\u044e\u0442 \u0437\u0434\u0435\u0441\u044c \u0436\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0header.a&gt;10\u00a0\u0438\u00a0header.a &gt; 10\u00a0\u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0451\u043d\u043d\u043e\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 XML-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435, \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.\u041f\u0430\u0440\u0441\u0435\u0440.\u00a0\u041f\u0430\u0440\u0441\u0435\u0440 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 \u0441\u0442\u0440\u043e\u0438\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u0423\u0440\u043e\u0432\u043d\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0435, \u043e\u0442 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043b\u0430\u0431\u043e\u0433\u043e \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0441\u0438\u043b\u044c\u043d\u043e\u043c\u0443: \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440,\u00a0??, \u043b\u043e\u0433\u0438\u043a\u0430, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435, \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0443\u043d\u0430\u0440\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b: \u0438\u043c\u0435\u043d\u0430, \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b, \u0432\u044b\u0437\u043e\u0432\u044b, \u0441\u043a\u043e\u0431\u043a\u0438. \u041f\u0430\u0440\u0441\u0435\u0440 \u0431\u0435\u0440\u0451\u0442 \u0432\u0435\u0441\u044c \u0442\u0435\u043a\u0441\u0442: \u043b\u0435\u043a\u0441\u0435\u043c\u0430, \u043e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439, \u0430 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043c\u043e\u043b\u0447\u0430 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f.\u0414\u0435\u0440\u0435\u0432\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439.\u00a0\u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u00a0System.Linq.Expressions, \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u043e\u044f\u0442 LINQ-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u0438 Entity Framework. \u0427\u0442\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c \u043a \u0441\u043b\u043e\u0432\u0430\u0440\u044e,\u00a0upper(&#8230;)\u00a0\u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0430.\u00a0AND\u00a0\u0438\u00a0OR\u00a0\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f\u00a0AndAlso\u00a0\u0438\u00a0OrElse\u00a0\u043f\u043e\u0432\u0435\u0440\u0445 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043a \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438, \u0430\u00a0??\u00a0\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f\u00a0Coalesce, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043f\u0440\u0430\u0432\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u043b\u0435\u0432\u0430\u044f \u043d\u0435 \u0440\u0435\u0448\u0438\u043b\u0430 \u0434\u0435\u043b\u043e.\u00a0XOR\u00a0\u043d\u0443\u0436\u043d\u044b \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0438 \u043e\u043d \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043e\u0431\u0435.\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f.\u00a0Expression.Lambda&lt;Func&lt;IExchange, object?&gt;&gt;(&#8230;).Compile()\u00a0\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u0432 IL. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 .NET.\u042d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a. \u041a\u0430\u0436\u0434\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 \u043e\u0434\u0438\u043d \u043f\u0443\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445, \u0441 \u0442\u0435\u043c \u0436\u0435 \u0441\u043c\u044b\u0441\u043b\u043e\u043c \u0438 \u0442\u0435\u043c\u0438 \u0436\u0435 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438.\u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u043c\u0435\u043b\u043e\u0447\u044c. \u041e\u043d\u043e \u0432\u0438\u0434\u043d\u043e \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430, \u0433\u0434\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u0437\u043e\u0432 \u0431\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442:\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442header.flag OR bean:nobody.Check()Trueheader.off AND bean:nobody.Check()Falseheader.a ?? bean:nobody.Check()42\u041d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0442\u0440\u0451\u0445 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u00a0nobody. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043b\u0435\u0432\u0430 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0434\u043e\u0440\u043e\u0433\u043e\u0439 \u0438\u043b\u0438 \u043d\u0435\u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u0430, \u043a\u0430\u043a \u0432 C#.\u0423 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043e\u0440\u043e\u0433\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0430\u044f. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043a\u0430\u043d\u0435\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u0434\u044b\u0440\u043a\u0438. \u0421\u0443\u0444\u0444\u0438\u043a\u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432\u0440\u043e\u0434\u0435\u00a0${header.price:F2}\u00a0\u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c (\u0440\u0430\u0437\u0434\u0435\u043b 2). \u0414\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0432\u0440\u043e\u0434\u0435\u00a0${header.a}, \u0435\u0441\u0442\u044c \u043f\u0440\u044f\u043c\u044b\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043f\u0443\u0442\u0438: \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0442\u0435\u043b\u043e, \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432\u00a0jpath\/xpath\u00a0\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f Camel\u00a0${jsonpath:&#8230;},\u00a0${xpath:&#8230;}\u00a0\u0438\u00a0${file:&#8230;}\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0432 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u043c\u0438\u043d\u0443\u044f \u043f\u0430\u0440\u0441\u0435\u0440. \u0412\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0438\u0434\u0451\u0442 \u0447\u0435\u0440\u0435\u0437 \u0442\u043e \u0436\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u0447\u0442\u043e \u0438 \u0433\u043e\u043b\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0421\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u0433\u0434\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u044b\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\u041a\u044d\u0448.\u00a0\u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0431\u0449\u0435\u043c \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u044d\u0448\u0435, \u043a\u043b\u044e\u0447 \u0432 \u043d\u0451\u043c \u044d\u0442\u043e \u0442\u0435\u043a\u0441\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0414\u0432\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0434\u0435\u043b\u044f\u0442 \u043e\u0434\u043d\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0442\u0435\u0441\u043d\u0435\u043d\u0438\u044f \u0443 \u043a\u044d\u0448\u0430 \u043d\u0435\u0442;\u00a0ExpressionResolver.ClearAllCaches()\u00a0\u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e.\u0426\u0438\u0444\u0440\u044b \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0427\u0438\u0441\u0442\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0441\u0442\u044b\u0434\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u043a\u0430 \u043d\u0435\u0442, \u0430 \u0447\u0438\u0441\u043b\u043e \u0441 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442. \u0417\u0430\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f: \u0432\u0441\u0451. \u041d\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c\u0441\u044f, \u0438 \u043d\u0435\u0442 \u00ab\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c. \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u0438 \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0441\u0442 \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f, \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043d\u0435 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442:\u00a0.Filter(&#171;header.a &gt;&#187;)\u00a0\u0431\u0440\u043e\u0441\u0430\u0435\u0442\u00a0ExpressionCompilationException\u00a0\u043d\u0430\u00a0Start().\u0413\u043e\u043b\u044b\u0439 \u0442\u0435\u043a\u0441\u0442: \u0441\u043b\u043e\u0432\u043e \u044d\u0442\u043e \u0441\u043b\u043e\u0432\u043e, \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0446\u0435\u043b\u043e\u0439\u0427\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u044c\u00a0application\/json\u00a0\u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435-\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438? Apache Camel \u0447\u0438\u0442\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u0430\u043a \u0441\u0430\u043c \u0442\u0435\u043a\u0441\u0442, \u0438 redb.Route \u0442\u043e\u0436\u0435:\u00a0hello,\u00a0plain text\u00a0\u0438\u00a0key=value\u00a0\u044d\u0442\u043e \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b, \u0430 \u0438\u043c\u044f \u0432\u0440\u043e\u0434\u0435\u00a0header.a\u00a0\u0438\u043b\u0438\u00a0body\u00a0\u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0422\u0435\u043a\u0441\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u043d\u0435 \u043a\u0430\u0432\u044b\u0447\u0435\u043a \u0435\u0441\u0442\u044c \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 (+ &#8212; * \/), \u044d\u0442\u043e \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430, \u0438 \u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0446\u0435\u043b\u043e\u0439: \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u0438 \u043a\u0430\u0436\u0434\u043e\u0435 \u0433\u043e\u043b\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u043d\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0441\u0442\u043e:1 +                 \u2192 ends where a value is expectedheader.a+b          \u2192 &#8216;b&#8217; at position 10 is not a valueapplication\/json    \u2192 &#8216;application&#8217; at position 1 is not a value\u0422\u0430\u043a\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445,\u00a0&#8216;application\/json&#8217;. \u0422\u043e \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043b\u043e\u0432\u0438\u0442 \u0434\u0430\u0442\u044b: \u0433\u043e\u043b\u043e\u0435\u00a02026-08-28\u00a0\u044d\u0442\u043e \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430, \u0438 \u043e\u043d\u0430 \u0434\u0430\u0451\u0442\u00a01990, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0442\u0443 \u0431\u0435\u0440\u0443\u0442 \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0438\u043b\u0438 \u0447\u0438\u0442\u0430\u044e\u0442 \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0421\u043c\u044b\u0441\u043b \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041d\u0435\u0434\u043e\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435, \u0430 \u043d\u0435 \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438.\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u0438\u0448\u0443\u0442 \u0432 \u043e\u0431\u043c\u0435\u043d\u0412 \u044f\u0437\u044b\u043a\u0435 \u0435\u0441\u0442\u044c\u00a0++\u00a0\u0438\u00a0&#8212;, \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0435 \u0438 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043d\u044b\u0435, \u0434\u043b\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432. \u042d\u0442\u043e \u043d\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u0435: \u043e\u043d\u0438 \u043c\u0435\u043d\u044f\u044e\u0442 \u043e\u0431\u043c\u0435\u043d.\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u041f\u043e\u0441\u043b\u0435header.a++42header.a = 43++header.a43header.a = 43header.a&#8212;42header.a = 41&#8212;header.a41header.a = 41property.counter++10property.counter = 11++property.counter11property.counter = 11\u041f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043d\u0430\u044f \u0441\u0442\u0430\u0440\u043e\u0435, \u043a\u0430\u043a \u0432 C#. \u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0438\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0435\u0441\u0442\u044c, \u043d\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e\u043c, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0431\u044b\u043b:header.x++: the value &#8216;abc&#8217; (String) is not a number.\u0418\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u0412 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430:.SetProperty(&#171;attempt&#187;, Constant(0)).LoopWhile(&#171;property.attempt &lt; 3&#187;)    .Log(&#171;attempt ${property.attempt++}&#187;)    .To(&#171;direct:\/\/step&#187;).EndLoop()LoopWhile\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u0442\u0435\u043b\u043e, \u043f\u043e\u043a\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f; \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u043b\u043e\u0433\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u043e\u0433 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442\u00a0attempt 0,\u00a0attempt 1,\u00a0attempt 2, \u0430 \u0442\u0435\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0440\u0438 \u0440\u0430\u0437\u0430. (Constant\u00a0\u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u00a0RouteBuilder; \u0432\u043d\u0435 \u0435\u0433\u043e \u043f\u0438\u0448\u0438\u0442\u0435\u00a0new ConstantExpression(0).)\u0412\u043d\u0443\u0442\u0440\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0447\u0442\u0435\u043d\u0438\u0435, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432\u00a0In.Headers\u00a0\u0438\u043b\u0438\u00a0Properties. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u00ab\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b, \u0438\u0437\u043c\u0435\u043d\u0438\u043b, \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u00bb, \u043d\u0435 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f. \u042d\u0442\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u043e\u0431\u043c\u0435\u043d \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f; \u0434\u043b\u044f \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432, \u043e\u0431\u0449\u0438\u0445 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u044d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043d\u0435 \u0433\u043e\u0434\u0438\u0442\u0441\u044f.\u041b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0427\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0439 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0435.\u00a0max(2.5, 1)\u00a0\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u043d\u0430 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441 en-US \u0438 \u043d\u0430 \u0431\u043e\u0435\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441 ru-RU, \u0433\u0434\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u043f\u044f\u0442\u0430\u044f. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0442\u0430\u043a \u0436\u0435: \u0447\u0438\u0441\u043b\u043e \u0438\u043b\u0438 \u0434\u0430\u0442\u0430, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d, \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043a\u0430\u043a\u00a02.5\u00a0\u0438 ISO 8601 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435. \u0421\u043b\u043e\u0432\u0430 \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438 (true\/false,\u00a0yes\/no,\u00a0on\/off\u00a0\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435) \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435, \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0435: \u043b\u043e\u043a\u0430\u043b\u044c \u0442\u043e\u0433\u043e, \u043a\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0441\u043c\u044b\u0441\u043b.2. \u0422\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u0435\u043b\u044c\u043a\u043e\u043c \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u0432\u0441\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0442\u0438\u043f. \u042d\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 \u0446\u0435\u043b\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u043a\u043e\u0434\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439.\u0428\u0430\u0431\u043b\u043e\u043d\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0422\u0438\u043f${header.a}42int${header.a + 1}43\u0447\u0438\u0441\u043b\u043e${header.a &gt; 10}Truebool${header.price}2.5\u0447\u0438\u0441\u043b\u043e, \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043ea=${header.a}, b=${header.b}, sum=${header.a + header.b}a=42, b=3, sum=45string[${header.missing}][]stringSetHeader(&#171;n&#187;, Expr(&#171;${header.a}&#187;))\u00a0\u043a\u043b\u0430\u0434\u0451\u0442 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\u00a0int\u00a042, \u0430 \u043d\u0435 \u0442\u0435\u043a\u0441\u0442 &#171;42&#187;. \u041a\u043b\u044e\u0447 Kafka, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 SQL \u0438\u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u0447\u0438\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437\u00a0getHeader&lt;int&gt;, \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0447\u0438\u0441\u043b\u043e, \u0430 \u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442, \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439, \u043a\u0430\u043a \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u0443\u0441\u0442\u043e\u0442\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443\u00a0[${header.missing}]\u00a0\u0434\u0430\u0451\u0442\u00a0[], \u0430 \u043d\u0435\u00a0[null].\u0421\u0443\u0444\u0444\u0438\u043a\u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u041a\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u0442\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430, \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 .NET \u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f:\u0428\u0430\u0431\u043b\u043e\u043d\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442${header.price:F2}2.50${header.a:D5}00042${header.price *&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-502559","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/502559","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=502559"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/502559\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=502559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=502559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=502559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}