{"id":336088,"date":"2022-07-24T09:00:07","date_gmt":"2022-07-24T09:00:07","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=336088"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=336088","title":{"rendered":"<span>\u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431 OData<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041d\u0435\u0434\u0430\u0432\u043d\u043e, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c API. \u0420\u0430\u0431\u043e\u0442\u0430\u043b, \u044f, \u043a \u0441\u043b\u043e\u0432\u0443, \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0438\u0431\u043e \u0441 \u043f\u0440\u043e\u0441\u0442\u044b\u043c REST, \u043b\u0438\u0431\u043e \u0441 GET\/POST only \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 API <a href=\"https:\/\/timetta.com\/\" rel=\"noopener noreferrer nofollow\">Timetta<\/a>. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 OData \u0438 \u0447\u0442\u043e \u0436\u0435 \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435?<\/p>\n<h2>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h2>\n<ol>\n<li>\n<p><a href=\"#REST-VS-ODATA\" rel=\"noopener noreferrer nofollow\">REST vs OData<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#SCHEMA\" rel=\"noopener noreferrer nofollow\">\u0421\u0445\u0435\u043c\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#DATA-TYPES\" rel=\"noopener noreferrer nofollow\">\u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#PRIMITIVES\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#ENTITY-TYPE\" rel=\"noopener noreferrer nofollow\">EntityType<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#COMPLEX-TYPE\" rel=\"noopener noreferrer nofollow\">ComplexType<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#ENUM-TYPE\" rel=\"noopener noreferrer nofollow\">EnumType<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#COLLECTION\" rel=\"noopener noreferrer nofollow\">Collection<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#ENTITY-SET\" rel=\"noopener noreferrer nofollow\">EntitySet<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#QUERIES\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043f\u0440\u043e\u0441\u044b<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#SELECT\" rel=\"noopener noreferrer nofollow\">$select<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#FILTER\" rel=\"noopener noreferrer nofollow\">$filter<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#EXPAND\" rel=\"noopener noreferrer nofollow\">$expand<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#ORDERBY\" rel=\"noopener noreferrer nofollow\">$orderby<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#TOP-SKIP\" rel=\"noopener noreferrer nofollow\">$top, $skip<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#COUNT\" rel=\"noopener noreferrer nofollow\">$count<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#FUNCTION-ACTION\" rel=\"noopener noreferrer nofollow\">\u0424\u0443\u043d\u043a\u0446\u0438\u0438, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#CRUD\" rel=\"noopener noreferrer nofollow\">\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\/\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"https:\/\/POST\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/PUT-PATCH\" rel=\"noopener noreferrer nofollow\">\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/DELETE\" rel=\"noopener noreferrer nofollow\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#SUMUP\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u044b\u0442\u043e\u0436\u0438\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#FINALLY\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#TOOLS\" rel=\"noopener noreferrer nofollow\">\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><a class=\"anchor\" name=\"REST-VS-ODATA\" id=\"REST-VS-ODATA\"><\/a><\/p>\n<h2>REST vs OData<\/h2>\n<p>\u0412 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a REST &#8212; \u043d\u0430\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e API, OData &#8212; \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u0435\u0431-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0441\u043e\u0431\u0440\u0430\u0432\u0448\u0438\u0439 \u0432 \u0441\u0435\u0431\u044f &#171;\u043b\u0443\u0447\u0448\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438&#187;: <code>defines a set of best practices for building and consuming RESTful APIs<\/code> (\u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 <a href=\"https:\/\/www.odata.org\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435<\/a>). \u0421\u0430\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0437\u0430\u0442\u0440\u043e\u043d\u0443 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438-\u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b.<\/p>\n<p><a class=\"anchor\" name=\"SCHEMA\" id=\"SCHEMA\"><\/a><\/p>\n<h2>\u0421\u0445\u0435\u043c\u0430<\/h2>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f OData \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0441\u0445\u0435\u043c\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0432\u0441\u0435: \u043a\u0430\u043a\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0435\u0441\u0442\u044c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043a\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c. \u0421\u0445\u0435\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 XML \u0438\u043b\u0438 JSON. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0445\u0435\u043c\u044b \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443: <\/p>\n<p><code>&lt;root>\/$metadata<\/code><\/p>\n<p>\u0413\u0434\u0435 &lt;root> &#8212; \u043a\u043e\u0440\u0435\u043d\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u0430 OData. \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438\u0437 \u044d\u0442\u043e\u0433\u043e &lt;root>. \u0414\u043b\u044f Timetta \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u0442\u0430\u043a\u043e\u0439: <\/p>\n<p><a href=\"https:\/\/api.timetta.com\/odata\/%24metadata\" rel=\"noopener noreferrer nofollow\">https:\/\/api.timetta.com\/odata\/$metadata<\/a><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c XML \u0441\u0445\u0435\u043c.<\/p>\n<p><a class=\"anchor\" name=\"DATA-TYPES\" id=\"DATA-TYPES\"><\/a><\/p>\n<h2>\u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p><a class=\"anchor\" name=\"PRIMITIVIES\" id=\"PRIMITIVIES\"><\/a><\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435<\/strong><\/p>\n<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u044f\u0434 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u0441\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 &#171;Edm&#187;. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <\/p>\n<ul>\n<li>\n<p>Edm.Boolean<\/p>\n<\/li>\n<li>\n<p>Edm.String<\/p>\n<\/li>\n<li>\n<p>Edm.Int32<\/p>\n<\/li>\n<li>\n<p>Edm.Int16<\/p>\n<\/li>\n<li>\n<p>Edm.Stream<\/p>\n<\/li>\n<li>\n<p>Edm.Date<\/p>\n<\/li>\n<li>\n<p>Edm.Byte<\/p>\n<\/li>\n<li>\n<p>Edm.Decimal<\/p>\n<\/li>\n<li>\n<p>Edm.Binary<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"ENTITY-TYPE\" id=\"ENTITY-TYPE\"><\/a><\/p>\n<p><strong>EntityType<\/strong><\/p>\n<p>EntityType \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0438\u0437 DDD: \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0442\u0430\u043a \u0438 \u0441\u0432\u043e\u0439 ID (\u0432 \u0441\u0445\u0435\u043c\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e). \u0412 \u0441\u0445\u0435\u043c\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<ul>\n<li>\n<p>Property &#8212; \u043f\u043e\u043b\u044f \u0441\u043e \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 \u0447\u0438\u0441\u043b\u043e. \u0418\u043c\u0435\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b: <\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d)<\/p>\n<\/li>\n<li>\n<p>Type &#8212; \u0442\u0438\u043f \u043f\u043e\u043b\u044f (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d)<\/p>\n<\/li>\n<li>\n<p>Nullable &#8212; \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0431\u044b\u0442\u044c null<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>NavigationProperty &#8212; \u043f\u043e\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c<\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d)<\/p>\n<\/li>\n<li>\n<p>Type &#8212; \u0442\u0438\u043f (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d)<\/p>\n<\/li>\n<li>\n<p>ReferentialConstraint &#8212; &#171;\u043a\u0430\u043a&#187; \u043c\u044b \u0441\u0441\u044b\u043b\u0430\u0435\u043c\u0441\u044f<\/p>\n<ul>\n<li>\n<p>Property &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0432 \u0421\u0421\u042b\u041b\u0410\u042e\u0429\u0415\u041c\u0421\u042f \u0442\u0438\u043f\u0435<\/p>\n<\/li>\n<li>\n<p>ReferencedProperty &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0432 \u0442\u0438\u043f\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0421\u0421\u042b\u041b\u0410\u0415\u041c\u0421\u042f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Key &#8212; \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f null. <\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u043e\u043c<\/p>\n<\/li>\n<li>\n<p>Alias &#8212; \u043f\u0441\u0435\u0432\u043e\u0434\u043d\u0438\u043c \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043a\u043b\u044e\u0447 &#8212; \u043f\u043e\u043b\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 TimeSheet, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0442\u0430\u0431\u0435\u043b\u044c) \u0437\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<pre><code class=\"xml\">&lt;EntityType Name=\"TimeSheet\" OpenType=\"true\">   &lt;Key>     &lt;PropertyRef Name=\"id\"\/>   &lt;\/Key>   &lt;Property Name=\"dueDate\" Type=\"Edm.Date\"\/>   &lt;Property Name=\"dateFrom\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"dateTo\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"approvalStatusId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"submitted\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"approved\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"userId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"departmentId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"approvalInstanceId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"templateId\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Property Name=\"name\" Type=\"Edm.String\"\/>   &lt;Property Name=\"rowVersion\" Type=\"Edm.Binary\"\/>   &lt;Property Name=\"createdById\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"modifiedById\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"id\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Property Name=\"created\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"modified\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"isActive\" Type=\"Edm.Boolean\" Nullable=\"false\"\/>   &lt;NavigationProperty Name=\"approvalStatus\" Type=\"WP.ApprovalStatus\">   &lt;ReferentialConstraint Property=\"approvalStatusId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"user\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"department\" Type=\"WP.Department\">   &lt;ReferentialConstraint Property=\"departmentId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"approvalInstance\" Type=\"WP.ApprovalInstance\">   &lt;ReferentialConstraint Property=\"approvalInstanceId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"timeSheetLines\" Type=\"Collection(WP.TimeSheetLine)\"\/>   &lt;NavigationProperty Name=\"timeAllocations\" Type=\"Collection(WP.TimeAllocation)\"\/>   &lt;NavigationProperty Name=\"approvalRecords\" Type=\"Collection(WP.TimeSheetApprovalRecord)\"\/>   &lt;NavigationProperty Name=\"lineApprovals\" Type=\"Collection(WP.TimeSheetLineApproval)\"\/>   &lt;NavigationProperty Name=\"template\" Type=\"WP.TimeSheetTemplate\"\/>   &lt;NavigationProperty Name=\"total\" Type=\"WP.TimeSheetTotal\"\/>   &lt;NavigationProperty Name=\"timeOffRequests\" Type=\"Collection(WP.TimeOffRequest)\"\/>   &lt;NavigationProperty Name=\"createdBy\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"modifiedBy\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty> &lt;\/EntityType><\/code><\/pre>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0435 &#171;id&#187; &#8212; \u043f\u0435\u0440\u0432\u0438\u0447\u044b\u0439 \u043a\u043b\u044e\u0447<\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0439 \u0441 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p>dueDate &#8212; \u0434\u043e \u043a\u0430\u043a\u043e\u0439 \u0434\u0430\u0442\u044b \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>dateFrom &#8212; \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442<\/p>\n<\/li>\n<li>\n<p>dateTo &#8212; \u043a\u043e\u0433\u0434\u0430 \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442<\/p>\n<\/li>\n<li>\n<p>approvalInstanceId &#8212; Id \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 (\u0440\u0435\u0441\u0443\u0440\u0441\u0430), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0430 (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d, \u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#8212; null, \u043d\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 Nullable, \u0447\u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 null)<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 null: <\/p>\n<ul>\n<li>\n<p>dueDate &#8212; \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u0437\u043d\u0430\u0435\u043c \u0434\u0435\u0434\u043b\u0430\u0439\u043d<\/p>\n<\/li>\n<li>\n<p>approvalInstanceId &#8212; \u0440\u0430\u0431\u043e\u0442\u0443 \u0435\u0449\u0435 \u043c\u043e\u0433\u043b\u0438 \u043d\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0418\u043c\u0435\u0435\u0442 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p>approvalInstance &#8212; \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>timeSheetLines &#8212; \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0447\u0430\u0441\u044b <\/p>\n<\/li>\n<li>\n<p>createdBy &#8212; \u043a\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d \u043f\u043b\u0430\u043d \u0440\u0430\u0431\u043e\u0442<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>approvalInstance \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e \u0437\u0430\u043d\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u043b\u044f approvalInstanceId \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u043e\u043b\u044e id \u0438\u0441\u043a\u043e\u043c\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>timeSheetLines &#8212; &#171;\u0441\u043b\u0430\u0431\u0430\u044f&#187; \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c. \u0414\u043b\u044f \u043d\u0435\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d Id, \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044e<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"COMPLEX-TYPE\" id=\"COMPLEX-TYPE\"><\/a><\/p>\n<p><strong>ComplexType<\/strong><\/p>\n<p>ComplexType \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 Value type \u0438\u0437 DDD &#8212; \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u043b\u0435\u0439. \u041c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0442\u0435\u0445 \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0447\u0442\u043e \u0438 EntityType \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c Key.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 2 \u043f\u043e\u043b\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u043c\u0435\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/p>\n<pre><code class=\"xml\">&lt;ComplexType Name=\"DateHours\">   &lt;Property Name=\"date\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"hours\" Type=\"Edm.Decimal\"\/> &lt;\/ComplexType><\/code><\/pre>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u0422\u0438\u043f DateHours \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u043c (ComplexType)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 2 \u043f\u043e\u043b\u0435\u0439:<\/p>\n<ul>\n<li>\n<p>date &#8212; \u0434\u0430\u0442\u0430 (Type=&#187;Edm.Date&#187;), \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438\u0434\u0435\u0442 \u043e\u0442\u0441\u0447\u0435\u0442.<\/p>\n<\/li>\n<li>\n<p>hours &#8212; \u0432\u0440\u0435\u043c\u044f, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435 \u0434\u0440\u043e\u0431\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c (Type=&#187;Edm.Decimal&#187;)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0413\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>date &#8212; \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c null, \u0442.\u043a. \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u043d\u0430\u0442\u044c \u0434\u0430\u0442\u0443<\/p>\n<\/li>\n<li>\n<p>hours &#8212; \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c null, \u0442.\u043a. \u0432\u0440\u0435\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e\/\u0443\u043a\u0430\u0437\u0430\u043d\u043e<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"ENUM-TYPE\" id=\"ENUM-TYPE\"><\/a><\/p>\n<p><strong>EnumType<\/strong><\/p>\n<p>EnumType &#8212; \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b &#8212; \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f Enum, \u0437\u0430\u0442\u0435\u043c \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c <code>PlanningMethod.Manual<\/code>, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c <code>PlanningMethod'Manual'<\/code>. \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)<\/p>\n<\/li>\n<li>\n<p>UnderlyingType &#8212; \u0442\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, Edm.Int32)<\/p>\n<\/li>\n<li>\n<p>IsFlags &#8212; \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0444\u043b\u0430\u0433\u043e\u043c. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u0437\u043e\u0432\u0430\u0442\u044c \u0432 UnderlyingType \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e &#171;true&#187;<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043d\u0447\u0435\u043d\u0438\u0439 &#8212; \u044d\u043b\u0435\u043c\u0435\u043d\u0442 Member:<\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>Value &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"xml\">&lt;EnumType Name=\"PlanningMethod\">   &lt;Member Name=\"Manual\" Value=\"0\"\/>   &lt;Member Name=\"FrontLoad\" Value=\"1\"\/>   &lt;Member Name=\"RemainingCapacity\" Value=\"2\"\/>   &lt;Member Name=\"Evenly\" Value=\"3\"\/> &lt;\/EnumType><\/code><\/pre>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u0422\u0438\u043f PlanningMethod \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u043c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f (EnumType)<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>Manual, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 0<\/p>\n<\/li>\n<li>\n<p>FrontLoad, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 1<\/p>\n<\/li>\n<li>\n<p>RemainingCapacity, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 2<\/p>\n<\/li>\n<li>\n<p>Evenly, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 3<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>P.S. \u0412 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a\u043e\u0439 \u0432\u0438\u0434 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e \u0432\u0441\u0435\u043c \u0442\u0438\u043f\u0430\u043c \u0438 \u0438\u043c\u0435\u0435\u0442 \u0432\u0438\u0434: \u041f\u043e\u043b\u043d\u044b\u0439\u0422\u0438\u043f\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438&#8217;\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435&#8217;. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0434\u0430\u0442\u044b &#8212; date&#8217;2022-07-01&#8242;<\/p>\n<p><a class=\"anchor\" name=\"COLLECTION\" id=\"COLLECTION\"><\/a><\/p>\n<p><strong>Collection<\/strong><\/p>\n<p>\u0422\u0438\u043f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a <code>Collection(\u041f\u043e\u043b\u043d\u043e\u0435\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u0430)<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>Collection(WP.TimeSheet)<\/code>. <\/p>\n<pre><code class=\"xml\">&lt;EntityType Name=\"TimeSheet\" OpenType=\"true\">   &lt;Key>     &lt;PropertyRef Name=\"id\"\/>   &lt;\/Key>   &lt;Property Name=\"dueDate\" Type=\"Edm.Date\"\/>   &lt;Property Name=\"dateFrom\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"dateTo\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"approvalStatusId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"submitted\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"approved\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"userId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"departmentId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"approvalInstanceId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"templateId\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Property Name=\"name\" Type=\"Edm.String\"\/>   &lt;Property Name=\"rowVersion\" Type=\"Edm.Binary\"\/>   &lt;Property Name=\"createdById\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"modifiedById\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"id\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Property Name=\"created\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"modified\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"isActive\" Type=\"Edm.Boolean\" Nullable=\"false\"\/>   &lt;NavigationProperty Name=\"approvalStatus\" Type=\"WP.ApprovalStatus\">   &lt;ReferentialConstraint Property=\"approvalStatusId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"user\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"department\" Type=\"WP.Department\">   &lt;ReferentialConstraint Property=\"departmentId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"approvalInstance\" Type=\"WP.ApprovalInstance\">   &lt;ReferentialConstraint Property=\"approvalInstanceId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"timeSheetLines\" Type=\"Collection(WP.TimeSheetLine)\"\/>   &lt;NavigationProperty Name=\"timeAllocations\" Type=\"Collection(WP.TimeAllocation)\"\/>   &lt;NavigationProperty Name=\"approvalRecords\" Type=\"Collection(WP.TimeSheetApprovalRecord)\"\/>   &lt;NavigationProperty Name=\"lineApprovals\" Type=\"Collection(WP.TimeSheetLineApproval)\"\/>   &lt;NavigationProperty Name=\"template\" Type=\"WP.TimeSheetTemplate\"\/>   &lt;NavigationProperty Name=\"total\" Type=\"WP.TimeSheetTotal\"\/>   &lt;NavigationProperty Name=\"timeOffRequests\" Type=\"Collection(WP.TimeOffRequest)\"\/>   &lt;NavigationProperty Name=\"createdBy\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"modifiedBy\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty> &lt;\/EntityType><\/code><\/pre>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a \u0442\u0438\u043f\u0443 TimeSheet. \u0412 \u043d\u0435\u043c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 5 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439*:<\/p>\n<ul>\n<li>\n<p>timeSheetLines<\/p>\n<\/li>\n<li>\n<p>timeAllocations<\/p>\n<\/li>\n<li>\n<p>lineApprovals<\/p>\n<\/li>\n<li>\n<p>approvalRecors<\/p>\n<\/li>\n<li>\n<p>timeOffRequests<\/p>\n<\/li>\n<\/ul>\n<p>*\u0422\u0438\u043f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u0443 Property, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e NavigationProperty<\/p>\n<p><a class=\"anchor\" name=\"ENTITY-SET\" id=\"ENTITY-SET\"><\/a><\/p>\n<p><strong>EntitySet<\/strong><\/p>\n<p>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0442\u0438\u043f\u044b, \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0438 \u0442.\u0434. \u041d\u043e \u0433\u0434\u0435 \u044d\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c? \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f.EntitySet &#8212; \u044d\u0442\u043e top-level \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0432\u0441\u0435\u043c. \u0412\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u043b\u044f \u043d\u0435\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u0438\u043c\u044f \u0438 \u0442\u0438\u043f: Name=&#187;SampleName&#187; EntityType=&#187;SampleType&#187;, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432\u0441\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043f\u043e\u043b\u044f (Property) \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0432\u044b\u0432\u043e\u0434. \u0415\u0441\u043b\u0438 \u0443 \u0442\u0438\u043f\u0430 \u0435\u0441\u0442\u044c \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u0442\u043e \u0438\u0445 \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 EntitySet, \u0438\u043d\u0430\u0447\u0435 \u0438\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f.<\/p>\n<pre><code class=\"xml\">&lt;EntitySet Name=\"TimeSheets\" EntityType=\"WP.TimeSheet\">   &lt;NavigationPropertyBinding Path=\"approvalStatus\" Target=\"ApprovalStatuses\"\/>   &lt;NavigationPropertyBinding Path=\"createdBy\" Target=\"Users\"\/>   &lt;NavigationPropertyBinding Path=\"department\" Target=\"Departments\"\/>   &lt;NavigationPropertyBinding Path=\"modifiedBy\" Target=\"Users\"\/>   &lt;NavigationPropertyBinding Path=\"template\" Target=\"TimesheetTemplates\"\/>   &lt;NavigationPropertyBinding Path=\"timeAllocations\" Target=\"TimeAllocations\"\/>   &lt;NavigationPropertyBinding Path=\"timeOffRequests\" Target=\"TimeOffRequests\"\/>   &lt;NavigationPropertyBinding Path=\"timeSheetLines\" Target=\"TimeSheetLines\"\/>   &lt;NavigationPropertyBinding Path=\"user\" Target=\"Users\"\/> &lt;\/EntitySet><\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c:<\/p>\n<ul>\n<li>\n<p>Name=&#187;TimeSheets&#187; &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e \u0441\u043b\u043e\u0432\u043e: <code>https:\/\/app.timetta.com\/TimeSheets<\/code> <\/p>\n<\/li>\n<li>\n<p>EntityType=&#187;WP.TimeSheet&#187; &#8212; \u0442\u0438\u043f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 (\u0431\u044b\u043b \u0432\u044b\u0448\u0435). WP &#8212; \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d. <\/p>\n<\/li>\n<li>\n<p>\u0423 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432. \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 &#8212; \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0438 \u0443 \u0441\u0430\u043c\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p>user<\/p>\n<\/li>\n<li>\n<p>template<\/p>\n<\/li>\n<li>\n<p>modifiedBy<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 (total, lineApprovements) \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0437\u043d\u0430\u0447\u0438\u0442 \u0435\u0441\u0442\u044c \u0438 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ID \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u0441\u0445\u0435\u043c\u0435. \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043a\u0440\u0443\u0433\u043b\u044b\u0445 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f TimeSheet \u0442\u043e \u0435\u0433\u043e ID \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<p>\/TimeSheets(00000000-0000-0000-0000-000000000000)<\/p>\n<p><a class=\"anchor\" name=\"QUERIES\" id=\"QUERIES\"><\/a><\/p>\n<h2>\u0417\u0430\u043f\u0440\u043e\u0441\u044b<\/h2>\n<p>\u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432 OData &#8212; \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043f\u0440\u044f\u043c\u043e \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0414\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a. \u041f\u043e \u0444\u0443\u043a\u043d\u0446\u0438\u043e\u043d\u0430\u043b\u0443 \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 SQL.<\/p>\n<p>\u0421\u0430\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (query string) URL. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>\/TimeSheets?<strong>$select<\/strong>=id,dateFrom,dateTo&amp;<strong>$filter<\/strong>=approval&amp;<strong>$expand<\/strong>=createdBy(<strong>$select<\/strong>=name)&amp;<strong>$count<\/strong>=true<\/p>\n<details class=\"spoiler\">\n<summary>\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0412\u043c\u0435\u0441\u0442\u0435 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0441 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430 \u043d\u0438\u0445 \u0430\u043a\u0446\u0435\u043d\u0442 \u0434\u0435\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043c\u043d\u043e\u0433\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b OData \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 SQL. \u0423 \u044d\u0442\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043c\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432, \u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435. \u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e: \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442\u044b.<\/p>\n<p><a class=\"anchor\" name=\"SELECT\" id=\"SELECT\"><\/a><\/p>\n<p><strong>$select<\/strong><\/p>\n<p>$select \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u043e\u043b\u044f. <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440: \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0442\u0441\u0447\u0435\u0442\u0430 \u0442\u0430\u0439\u043c\u0448\u0438\u0442\u043e\u0432 \u0438 \u0438\u043c\u044f \u0442\u043e\u0433\u043e, \u043a\u0442\u043e \u0435\u0433\u043e  \u0441\u043e\u0437\u0434\u0430\u043b. \u0422\u043e\u0433\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<p>\/TimeSheets?<strong>$select=dateFrom,dateTo,id<\/strong><\/p>\n<pre><code class=\"json\">{     \"@odata.context\": \"https:\/\/api.timetta.com\/odata\/$metadata#TimeSheets(dateFrom,dateTo,id)\",     \"value\": [         {             \"dateFrom\": \"2021-10-04\",             \"dateTo\": \"2021-10-10\",                        \"id\": \"00000000-0000-0000-0000-00000000\"         },         {             \"dateFrom\": \"2021-11-22\",             \"dateTo\": \"2021-11-28\",             \"id\": \"00000000-0000-0000-0000-00000000\"         },         {             \"dateFrom\": \"2022-06-27\",             \"dateTo\": \"2022-07-03\",             \"id\": \"00000000-0000-0000-0000-00000000\"         } }<\/code><\/pre>\n<p><a class=\"anchor\" name=\"FILTER\" id=\"FILTER\"><\/a><\/p>\n<p><strong>$filter<\/strong><\/p>\n<p>\u041f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e. \u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u043e \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0442\u0430\u0431\u0435\u043b\u044f \u043d\u0435 \u0431\u044b\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u044b? \u041d\u0443\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435:<\/p>\n<p>\/TimeSheets?$select=dateFrom,dateTo,id&amp;<strong>$filter=approvalInstanceId ne null<\/strong><\/p>\n<pre><code class=\"json\">{     \"@odata.context\": \"https:\/\/api.timetta.com\/odata\/$metadata#TimeSheets(dateFrom,dateTo,id)\",     \"value\": [         {             \"dateFrom\": \"2021-10-04\",             \"dateTo\": \"2021-10-10\",             \"id\": \"00000000-0000-0000-0000-00000000\"         },         {             \"dateFrom\": \"2021-11-22\",             \"dateTo\": \"2021-11-28\",             \"id\": \"00000000-0000-0000-0000-00000000\"         } }<\/code><\/pre>\n<p>\u041a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u0430\u0431\u0435\u043b\u044c \u043d\u0435 \u0431\u044b\u043b \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d! \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u043c\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438 \u044d\u0442\u043e.<\/p>\n<p>\u0421\u0430\u043c $filter \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (bash-like):<\/p>\n<ul>\n<li>\n<p>eq (equal), ==: <code>name eq '\u0417\u0430 \u043d\u043e\u044f\u0431\u0440\u044c'<\/code><\/p>\n<\/li>\n<li>\n<p>ne (not equal), !=: <code>approvalInstanceId ne null<\/code><\/p>\n<\/li>\n<li>\n<p>gt (greater than), >: <code>dueDate gt '2022-03-15'<\/code><\/p>\n<\/li>\n<li>\n<p>ge (greater or equal), >=:  <code>dateFrom ge '2021-01-01'<\/code><\/p>\n<\/li>\n<li>\n<p>lt (less than), &lt;: <code>age lt 18<\/code><\/p>\n<\/li>\n<li>\n<p>le (less or equal), &lt;=: <code>ttl le 0<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043a\u043e\u0431\u043e\u043a \u0438: <\/p>\n<ul>\n<li>\n<p>and (\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 &#8216;\u0438&#8217;): <code>(name eq '\u0417\u0430 \u043d\u043e\u044f\u0431\u0440\u044c') and (dateFrom ge '2021-01-01')<\/code><\/p>\n<\/li>\n<li>\n<p>or (\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u0435): (<code>dateFrom ge '2021-01-01') or (approvalInstanceId ne null)<\/code><\/p>\n<\/li>\n<li>\n<p>not (\u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u0435): <code>not isActive<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0438 \u0431\u0443\u043b\u0435\u0432\u044b \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b: <code>true<\/code>, <code>false<\/code><\/p>\n<p><a class=\"anchor\" name=\"EXPAND\" id=\"EXPAND\"><\/a><\/p>\n<p><strong>$expand<\/strong><\/p>\n<p>\u041f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e. \u041c\u044b \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u044b. \u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432 \u043e\u0442\u0447\u0435\u0442\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438 \u0438\u043c\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u0432\u0448\u0435\u0433\u043e \u0442\u0430\u0431\u0435\u043b\u044c. \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u0430\u0431\u0435\u043b\u0435\u0439, \u0437\u0430\u0442\u0435\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e &#8212; \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435. \u041d\u043e \u044d\u0442\u043e \u043b\u0438\u0448\u043d\u0435\u0435. \u041c\u043e\u0436\u043d\u043e \u0432\u0435\u0434\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e &#8212; \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c $expand:<\/p>\n<p>\/TimeSheets?$select=dateFrom,dateTo,id&amp;$filter=approvalInstanceId ne null&amp;<strong>$expand=user($select=name)<\/strong><\/p>\n<pre><code class=\"json\">{     \"@odata.context\": \"https:\/\/api.timetta.com\/odata\/$metadata#TimeSheets(dateFrom,dateTo,id)\",     \"value\": [         {             \"dateFrom\": \"2021-10-04\",             \"dateTo\": \"2021-10-10\",             \"id\": \"00000000-0000-0000-0000-00000000\",           \"user\": {             \"name\": \"\u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0418\u0432\u0430\u043d\u043e\u0432\"             }         },         {             \"dateFrom\": \"2021-11-22\",             \"dateTo\": \"2021-11-28\",             \"id\": \"00000000-0000-0000-0000-00000000\",           \"user\": {             \"name\": \"\u041a\u0438\u0440\u0438\u043b\u043b \u0418\u043b\u044c\u0438\u043d\"             }         } }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0441\u0440\u0430\u0437\u0443 2 \u0444\u0438\u0447\u0438:<\/p>\n<ol>\n<li>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 (\u0443 \u0442\u0438\u043f\u0430 TimeSheet \u0435\u0441\u0442\u044c \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e user \u0442\u0438\u043f\u0430 WP.User)<\/p>\n<\/li>\n<li>\n<p>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u044b: \u0437\u0434\u0435\u0441\u044c \u0438\u0437 \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u044f. \u0414\u043b\u044f \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f &#8212; \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u0447\u043a\u043e\u0439 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u0438\u043d\u0430\u0447\u0435 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>\/TimeSheets?$select=dateFrom,dateTo,id&amp;$filter=approvalInstanceId ne null&amp;<strong>$expand=user($select=name;$expand=schedules) <\/strong>&#8212;<strong> <\/strong>\u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u043e \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432. \u0415\u0441\u043b\u0438 \u0431\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0447\u043a\u0438 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0431\u044b\u043b \u0430\u043c\u043f\u0435\u0440\u0441\u0430\u043d\u0434, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0431\u044b 2 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430: <strong>$expand=user($select=name <\/strong>\u0438 <strong>$expand=schedules)<\/strong><\/p>\n<\/li>\n<\/ol>\n<p><a class=\"anchor\" name=\"ORDERBY\" id=\"ORDERBY\"><\/a><\/p>\n<p><strong>$orderby<\/strong><\/p>\n<p>\u0412\u0440\u043e\u0434\u0435 \u0431\u044b \u0432\u0441\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e. \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f, \u043d\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u0430\u0437\u0443. \u041d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e $orderby. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u0435\u043b\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e \u0434\u0430\u0442\u0435 \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u043e \u0434\u0430\u0442\u0435 \u043a\u043e\u043d\u0446\u0430 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e (\u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u0430\u043c\u044b\u0435  \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u043a \u043d\u0430\u043c \u043f\u043e \u0434\u0430\u0442\u0435, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043f\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438):<\/p>\n<p>\/TimeSheets?$select=dateFrom,dateTo,id&amp;$filter=approvalInstanceId ne null&amp;$expand=user($select=name)&amp;<strong>$orderby=dateFrom desc, dateTo asc<\/strong> <\/p>\n<pre><code class=\"json\">{     \"@odata.context\": \"https:\/\/api.timetta.com\/odata\/$metadata#TimeSheets(dateFrom,dateTo,id,user(name))     \"value\": [         {             \"dateFrom\": \"2021-11-22\",             \"dateTo\": \"2021-11-28\",             \"id\": \"00000000-0000-0000-0000-00000000\",           \"user\": {             \"name\": \"\u041a\u0438\u0440\u0438\u043b\u043b \u0418\u043b\u044c\u0438\u043d\"             }         },         {           \"dateFrom\": \"2021-10-04\",           \"dateTo\": \"2021-10-10\",           \"id\": \"00000000-0000-0000-0000-00000000\",           \"user\": {             \"name\": \"\u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0418\u0432\u0430\u043d\u043e\u0432\"           }         } }<\/code><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e &#8212; asc<\/p>\n<p><a class=\"anchor\" name=\"TOP-SKIP\" id=\"TOP-SKIP\"><\/a><\/p>\n<p><strong>$top, $skip<\/strong><\/p>\n<p>\u0412\u043e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430! \u0423 \u043d\u0430\u0441 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u0430\u043a \u0431\u044b \u043d\u0430\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0438\u0445 \u043f\u0440\u0438\u0435\u043c? \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e $top. \u0422\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430:<\/p>\n<p>\/TimeSheets?$select=dateFrom,dateTo,id&amp;$filter=approvalInstanceId ne null&amp;$expand=user($select=name)&amp;$orderby=dateFrom desc, dateTo asc<strong>$top=5<\/strong><\/p>\n<p>\u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0435 \u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e (\u0434\u043b\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440)? \u0422\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c $skip:<\/p>\n<p>\/TimeSheets?$select=dateFrom,dateTo,id&amp;$filter=approvalInstanceId ne null&amp;$expand=user($select=name)&amp;$orderby=dateFrom desc, dateTo asc&amp;$top=5&amp;<strong>$skip=10<\/strong><\/p>\n<p><a class=\"anchor\" name=\"COUNT\" id=\"COUNT\"><\/a><\/p>\n<p><strong>$count<\/strong><\/p>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 &#8212; \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e. \u0410 \u0435\u0441\u043b\u0438 \u044f \u0445\u043e\u0447\u0443 \u0437\u043d\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0445 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044e? \u0418\u043b\u0438 \u0434\u043b\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438? \u041d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 $count. \u041e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u0443\u043b\u0435\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: true &#8212; \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, false &#8212; \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e)<\/p>\n<p>\/TimeSheets?$select=dateFrom,dateTo,id&amp;$filter=approvalInstanceId ne null&amp;$expand=user($select=name)&amp;$orderby=dateFrom desc, dateTo asc&amp;<strong>$count=true<\/strong><\/p>\n<pre><code class=\"json\">{   \"@odata.context\": \"https:\/\/api.timetta.com\/odata\/$metadata#TimeSheets(dateFrom,dateTo,id,user(name))   \"@odata.count\": 2,     \"value\": [         {             \"dateFrom\": \"2021-11-22\",             \"dateTo\": \"2021-11-28\",             \"id\": \"00000000-0000-0000-0000-00000000\",           \"user\": {             \"name\": \"\u041a\u0438\u0440\u0438\u043b\u043b \u0418\u043b\u044c\u0438\u043d\"             }         },         {           \"dateFrom\": \"2021-10-04\",           \"dateTo\": \"2021-10-10\",           \"id\": \"00000000-0000-0000-0000-00000000\",           \"user\": {             \"name\": \"\u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0418\u0432\u0430\u043d\u043e\u0432\"           }         } }<\/code><\/pre>\n<p><a class=\"anchor\" name=\"FUNCTION-ACTION\" id=\"FUNCTION-ACTION\"><\/a><\/p>\n<h2>\u0424\u0443\u043d\u043a\u0446\u0438\u0438, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/h2>\n<p>\u0412\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (Functions, Actions). \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u0431\u0435\u043b\u044c \u0437\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u0431\u0435\u043b\u044f \u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 &#8212; \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u042d\u0442\u043e \u043b\u0438\u0448\u043d\u0435\u0435. \u041d\u0435 \u043f\u0440\u043e\u0449\u0435 \u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<p>\/TimeSheets\/<strong>Current<\/strong><\/p>\n<p>\u0418 \u0432\u0441\u0435!<\/p>\n<p>OData \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (Function) \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (Action)<\/p>\n<p><strong>Function<\/strong> &#8212; \u044d\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0434 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432.<\/p>\n<p><strong>Action <\/strong>&#8212; \u044d\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<p>PS. \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 CQRS<\/p>\n<p>\u041a\u0430\u043a \u0436\u0435 \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f? \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430: \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043d\u0435\u0442 &#8212; \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043b\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"xml\">&lt;Function Name=\"Current\" IsBound=\"true\">   &lt;Parameter Name=\"bindingParameter\" Type=\"Collection(WP.TimeSheet)\"\/>   &lt;ReturnType Type=\"WP.TimeSheet\"\/> &lt;\/Function><\/code><\/pre>\n<p>\u0427\u0442\u043e \u044d\u0442\u043e \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0438\u0442:<\/p>\n<ol>\n<li>\n<p>Name=&#187;Current&#187; &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>IsBound=&#187;true&#187; &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443. \u0422.\u0435. \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0435\u0435 \u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043d\u0435\u043b\u044c\u0437\u044f<\/p>\n<\/li>\n<li>\n<p> &#171;bindingParameter&#187; &#8212; \u043e\u0441\u043e\u0431\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439 \u043a \u043a\u0430\u043a\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 <code>Collection(WP.TimeSheet)<\/code>(\u0447\u0435\u043c \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>\/TimeSheets<\/code>)<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0438\u043f <code>TimeSheet<\/code><\/p>\n<\/li>\n<\/ol>\n<p>\u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e, \u0442\u043e \u0441\u043a\u043e\u0431\u043e\u043a \u043d\u0435\u0442. \u0412\u0438\u0434\u0435\u043b\u0438. \u0410 \u0435\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b? \u0422\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 <code>Parameter<\/code>:<\/p>\n<pre><code class=\"xml\">&lt;Function Name=\"GetUserSchedule\" IsBound=\"true\">   &lt;Parameter Name=\"bindingParameter\" Type=\"Collection(WP.Schedule)\"\/>   &lt;Parameter Name=\"userId\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Parameter Name=\"from\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Parameter Name=\"to\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;ReturnType Type=\"Collection(WP.DateHours)\"\/> &lt;\/Function><\/code><\/pre>\n<p>\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: userId, from, to (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d\u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 &#8212; Nullable=&#187;false&#187;). \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 &#8212; \u043a\u0430\u043a \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445, \u043f\u0440\u0438\u0447\u0435\u043c \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e (\u043a\u0430\u043a \u0432 Python). \u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p><code>\/Schedules\/GetUserSchedule(userId=00000000-0000-0000-0000-00000000,from=2022-01-01,to=2022-02-01) <\/code>&#8212; \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430 \u0432\u0435\u0441\u044c \u044f\u043d\u0432\u0430\u0440\u044c<\/p>\n<p>\u0427\u0442\u043e \u043f\u043e <strong>Action<\/strong>? \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"xml\">&lt;Action Name=\"SetAsDefault\" IsBound=\"true\"> &lt;Parameter Name=\"bindingParameter\" Type=\"WP.Role\"\/> &lt;\/Action><\/code><\/pre>\n<p>\u042d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0442\u0438\u043f \u0440\u043e\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041b\u043e\u0433\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0430 \u043c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0435\u0442 (\u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0442\u0438\u043f \u0443\u0436\u0435 \u0431\u044b\u043b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e). \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 (\u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043c\u0443 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u0435\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442). \u041a\u0430\u043a \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c:<\/p>\n<p><code>\/Roles(00000000-0000-0000-0000-00000000)\/SetAsDefault<\/code><\/p>\n<p>\u042d\u0442\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043e\u043d\u043e \u043a \u0442\u0438\u043f\u0443 WP.Role, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043a \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443, \u0430 \u043d\u0435 \u043a \u0446\u0435\u043b\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0442\u043e-\u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:<\/p>\n<pre><code class=\"xml\">&lt;Action Name=\"UpdatePermissionSets\" IsBound=\"true\">   &lt;Parameter Name=\"bindingParameter\" Type=\"WP.User\"\/>   &lt;Parameter Name=\"permissionSets\" Type=\"Collection(WP.UserPermissionSet)\"\/>   &lt;ReturnType Type=\"Collection(WP.UserPermissionSet)\"\/> &lt;\/Action><\/code><\/pre>\n<p><a class=\"anchor\" name=\"CRUD\" id=\"CRUD\"><\/a><\/p>\n<h2>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432<\/h2>\n<p>\u0414\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f HTTP \u043c\u0435\u0442\u043e\u0434\u044b: POST, PATCH, PUT, DELETE<\/p>\n<p><a class=\"anchor\" name=\"POST\" id=\"POST\"><\/a><\/p>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 = \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c POST \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 POST \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<p><code>POST \/Departments<\/code><\/p>\n<pre><code class=\"json\">{         \"code\": \"69\",         \"resourcePoolId\": null,     \"name\": \"\u041a\u0430\u043a\u043e\u0439-\u0442\u043e \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\",             \"leadDepartmentId\": null }<\/code><\/pre>\n<p>\u0418 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<pre><code class=\"json\">{     \"@odata.context\": \"https:\/\/api.timetta.com\/odata\/$metadata#Departments\/$entity\",     \"code\": \"69\",     \"resourceType\": \"Department\",     \"resourcePoolId\": null,     \"name\": \"\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\",     \"rowVersion\": \"AAAAAAACG60=\",     \"createdById\": \"00000000-0000-0000-0000-000000000000\",     \"modifiedById\": \"00000000-0000-0000-0000-000000000000\",     \"id\": \"11111111-1111-1111-1111-111111111111\",     \"created\": \"2022-07-22T20:24:00.9318599+03:00\",     \"modified\": \"2022-07-22T17:24:00.8776997Z\",     \"isActive\": true,     \"leadDepartmentId\": null }<\/code><\/pre>\n<p><a class=\"anchor\" name=\"PUT-PATCH\" id=\"PUT-PATCH\"><\/a><\/p>\n<p><strong>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p>\u0414\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f 2 HTTP \u043c\u0435\u0442\u043e\u0434\u0430: PUT, PATCH (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 <a href=\"https:\/\/docs.oasis-open.org\/odata\/odata\/v4.01\/odata-v4.01-part1-protocol.html#_Toc31358979\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435<\/a>). \u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 &#171;\u041b\u0443\u0447\u0448\u0438\u0439 \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442&#187;, \u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<p><code>PATCH \/Departments(11111111-1111-1111-1111-111111111111)<\/code><\/p>\n<pre><code class=\"json\">{   \"name\": \"\u041b\u0443\u0447\u0448\u0438\u0439 \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\" }<\/code><\/pre>\n<p>\u0418 \u0432 \u043e\u0442\u0432\u0435\u0442 &#8212; 204 No Content<\/p>\n<p>\u041f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435:<\/p>\n<pre><code class=\"json\">{     \"@odata.context\": \"https:\/\/api.timetta.com\/odata\/$metadata#Departments\/$entity\",     \"code\": \"69\",     \"resourceType\": \"Department\",     \"resourcePoolId\": null,     \"name\": \"\u041b\u0443\u0447\u0448\u0438\u0439 \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\",     \"rowVersion\": \"AAAAAAACG7A=\",     \"createdById\": \"00000000-0000-0000-0000-000000000000\",     \"modifiedById\": \"00000000-0000-0000-0000-000000000000\",     \"id\": \"11111111-1111-1111-1111-111111111111\",     \"created\": \"2022-07-22T20:24:00.9318599+03:00\",     \"modified\": \"2022-07-24T05:21:09.764289Z\",     \"isActive\": true,     \"leadDepartmentId\": null,     \"editAllowed\": true,     \"deleteAllowed\": true,     \"rolesEditAllowed\": true }<\/code><\/pre>\n<p>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c. \u0422\u0430\u043a\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u0438 \u043f\u043e\u043b\u0435 &#171;rowVersion&#187; &#8212; \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0435\u0449\u0435 \u0438 \u043e PUT. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 PUT \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0412\u0421\u042e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c. \u0414\u0430\u0436\u0435 \u0442\u0435 \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u0445 \u043d\u0430\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u043c \u0432\u043b\u0430\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, rowVersion \u0438\u043b\u0438 modified). \u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435, \u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PUT:<\/p>\n<p><code>PUT \/Departments(11111111-1111-1111-1111-111111111111)<\/code><\/p>\n<pre><code class=\"json\">{     \"code\": \"69\",     \"resourceType\": \"Department\",     \"resourcePoolId\": null,     \"name\": \"\u041b\u0443\u0447\u0448\u0438\u0439 \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\",     \"id\": \"11111111-1111-1111-1111-111111111111\",     \"isActive\": true,     \"leadDepartmentId\": null,     \"editAllowed\": true,     \"deleteAllowed\": true,     \"rolesEditAllowed\": true }<\/code><\/pre>\n<p><a class=\"anchor\" name=\"DELETE\" id=\"DELETE\"><\/a><\/p>\n<p><strong>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p>\u0418 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 &#8212; DELETE. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 ID \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u0423\u0434\u0430\u043b\u0438\u043c \u0436\u0435 \u043d\u0430\u0448 \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442:<\/p>\n<p><code>DELETE \/Departments(11111111-1111-1111-1111-111111111111)<\/code><\/p>\n<p>\u0412 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043c &#8212; 204 No Content. \u0418 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0436\u0435 ID \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c Not Found.<\/p>\n<p><a class=\"anchor\" name=\"SUMUP\" id=\"SUMUP\"><\/a><\/p>\n<h2>\u041f\u043e\u0434\u044b\u0442\u043e\u0436\u0438\u043c<\/h2>\n<p>OData &#8212; \u043c\u043e\u0449\u043d\u044b\u0439 \u0432\u0435\u0431-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u044f\u0434\u0440\u043e\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438. <\/p>\n<p>\u0414\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 HTTP: HTTP \u043c\u0435\u0442\u043e\u0434\u044b,<a href=\"https:\/\/docs.oasis-open.org\/odata\/odata\/v4.0\/os\/part1-protocol\/odata-v4.0-os-part1-protocol.html#_Toc372793609\" rel=\"noopener noreferrer nofollow\"> HTTP \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438<\/a>, \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, URL.<\/p>\n<p>\u0421\u0435\u0440\u0432\u0438\u0441, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 OData, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u044e \u0441\u0445\u0435\u043c\u0443. \u041f\u043e \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, Enum<\/p>\n<\/li>\n<li>\n<p>\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u0442\u0438\u043f\u044b, ComplexType<\/p>\n<\/li>\n<li>\n<p>\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438, EntityType<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0418\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b<\/p>\n<ul>\n<li>\n<p>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 (\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 (Nullability, MaxLength)<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430<\/p>\n<\/li>\n<li>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b: \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438: \u0438\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0434\u043e\u0441\u0442\u0443\u043f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439\u0441\u044f \u0432 \u043d\u0438\u0445 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (Function, Action)<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0430\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 SQL \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430) \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u043c \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>$select &#8212; \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044f. (~ SELECT)<\/p>\n<\/li>\n<li>\n<p>$filter &#8212; \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0435 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0443 (~ WHERE)<\/p>\n<\/li>\n<li>\n<p>$expand &#8212; \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f (~JOIN)<\/p>\n<\/li>\n<li>\n<p>$orderby &#8212; \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u043f\u043e\u043b\u044e. (~ORDER BY)<\/p>\n<\/li>\n<li>\n<p>$top &#8212; \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c. (~TAKE)<\/p>\n<\/li>\n<li>\n<p>$skip &#8212; \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e. (~SKIP, OFFSET)<\/p>\n<\/li>\n<li>\n<p>$count &#8212; \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e (\u0438\u043b\u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0445 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0443) \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439. (~COUNT)<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"FINALLY\" id=\"FINALLY\"><\/a><\/p>\n<h2>\u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a<\/h2>\n<p>OData \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a. \u041e\u0434\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0440\u044b\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e. \u041d\u043e \u0446\u0435\u043b\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430 \u0441\u0442\u0430\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 (\u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0430) \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u041c\u043d\u043e\u0433\u0438\u0435 \u0442\u0435\u043c\u044b \u043d\u0435 \u0431\u044b\u043b\u0438 \u043f\u043e\u043a\u0440\u044b\u0442\u044b, \u043a\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 <a href=\"https:\/\/docs.oasis-open.org\/odata\/new-in-odata\/v4.01\/cn04\/new-in-odata-v4.01-cn04.html#_Toc21700055\" rel=\"noopener noreferrer nofollow\">$compute<\/a> \u0438\u043b\u0438 \u043b\u044f\u043c\u0431\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 <a href=\"https:\/\/docs.oasis-open.org\/odata\/odata\/v4.01\/odata-v4.01-part2-url-conventions.html#_Toc31361024\" rel=\"noopener noreferrer nofollow\">any\/all<\/a>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0434\u0430\u043b\u044c\u0448\u0435, \u0442\u043e \u0432\u043e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0441\u044b\u043b\u043e\u043a \u043e\u0442 \u043a\u0443\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.odata.org\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.odata.org<\/a> &#8212; \u0441\u0430\u0439\u0442 \u043f\u043e OData. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e, \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/odata\/\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.microsoft.com\/en-us\/odata<\/a> &#8212; \u0440\u0430\u0437\u0434\u0435\u043b \u043e\u0431 OData \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 Microsoft. \u0417\u0434\u0435\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u043e\u0432 \u043a\u0430\u043a \u043f\u043e \u0441\u0430\u043c\u043e\u043c\u0443 OData, \u0442\u0430\u043a \u0438 \u043f\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0441 \u043d\u0438\u043c. \u041c\u043d\u043e\u0433\u043e \u0443\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 Microsoft.OData.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/services.odata.org\/\" rel=\"noopener noreferrer nofollow\">https:\/\/services.odata.org\/<\/a> &#8212; \u0441\u0435\u0440\u0432\u0438\u0441, \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\/\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\/\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c OData. \u041a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f Read-Only Service:<\/p>\n<ol>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e \u0431\u0430\u0437\u043e\u0432\u044b\u0439 URL <code>https:\/\/services.odata.org\/V3\/OData\/OData.svc\/<\/code> <\/p>\n<\/li>\n<li>\n<p>\u041c\u043d\u0435 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0432\u0438\u0434\u0435 JSON. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>Accept: application\/json<\/code><\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u044e \u0441\u0445\u0435\u043c\u0443 OData: <code>https:\/\/services.odata.org\/V3\/OData\/OData.svc\/$metadata<\/code> <\/p>\n<\/li>\n<li>\n<p>\u0418\u0437\u0443\u0447\u0430\u044e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0438 \u0434\u0435\u043b\u0430\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043f\u043e \u0441\u0445\u0435\u043c\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u044e \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441: <code>https:\/\/services.odata.org\/V3\/OData\/OData.svc\/Products<\/code><\/p>\n<p>Read-Only Northwind \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0432 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c Read-Write. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u0435\u043d \u0432\u0430\u0448 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <a href=\"https:\/\/services.odata.org\/V3\/(S(readwrite))\/OData\/OData.svc\/\" rel=\"noopener noreferrer nofollow\">Browse the Full Access (Read-Write) Service<\/a> \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435. \u0412 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0432\u0430\u0448\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c. \u041b\u0438\u0431\u043e, \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435. \u0421\u0430\u043c \u0432\u0438\u0434 \u0441\u0442\u0440\u043e\u043a\u0438: <code>https:\/\/services.odata.org\/V3\/(S(&lt;\u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447>))\/OData\/OData.svc<\/code>. \u0410 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 (POST) \u043d\u0443\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u0438\u043f \u0440\u0435\u0441\u0443\u0440\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0442\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432 \u043f\u043e\u043b\u0435 &#171;odata.type&#187; (\u0442\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e Product \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<p><code>POST https:\/\/services.odata.org\/V3\/(S(j5lmqrfbgk1st4mmgrva1jtg))\/OData\/OData.svc\/Products<\/code><\/p>\n<pre><code class=\"json\">{    \"odata.type\" :\"ODataDemo.Product\",    \"Name\": \"Cottage cheese\",    \"ID\": 11,    \"Description\": \"Best cottage cheese\",    \"ReleaseDate\": \"2021-12-31T23:59:59\",    \"DiscontinuedDate\": \"2022-01-01T00:00:00\",    \"Rating\": 5,    \"Price\": 123 }<\/code><\/pre>\n<p><a class=\"anchor\" name=\"TOOLS\" id=\"TOOLS\"><\/a><\/p>\n<p>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=stansw.vscode-odata\" rel=\"noopener noreferrer nofollow\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435<\/a> VS Code \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 OData.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/pragmatiqa.com\/xodata\/\" rel=\"noopener noreferrer nofollow\">\u0412\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/a> \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f OData, \u043f\u043e \u0435\u0435 \u0441\u0445\u0435\u043c\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435: \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0435 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 &#8216;Metadata URL&#8217;. \u0412\u0431\u0435\u0439\u0442\u0435 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a URL \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 &#8216;Get Details&#8217;. <\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/656\/dcf\/819\/656dcf8197b9df13dbded10d3492af99.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f Timetta. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0441\u0445\u0435\u043c\u044b \u0431\u044b\u043b\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435.\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f Timetta. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0441\u0445\u0435\u043c\u044b \u0431\u044b\u043b\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435.\" width=\"774\" height=\"240\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/656\/dcf\/819\/656dcf8197b9df13dbded10d3492af99.png\"\/><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f Timetta. \u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0441\u0445\u0435\u043c\u044b \u0431\u044b\u043b\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435.<\/figcaption><\/figure>\n<p>\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u044b\u043b\u043e, \u0442\u043e \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u043d\u0435 \u043d\u0430\u0448\u0435\u043b &#171;\u043a\u0440\u0430\u0448 \u043a\u0443\u0440\u0441\u043e\u0432&#187; \u043f\u043e OData \u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u043d\u0438\u044f \u043f\u043e \u043a\u0443\u0441\u043e\u0447\u043a\u0430\u043c. \u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044f \u0434\u0430\u043b\u0430 \u0432\u0430\u043c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u0442\u0430\u0440\u0442, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0435 \u0431\u044b\u043b\u043e \u043d\u0435 \u0437\u0440\u044f.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \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\/post\/678614\/\"> https:\/\/habr.com\/ru\/post\/678614\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041d\u0435\u0434\u0430\u0432\u043d\u043e, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c API. \u0420\u0430\u0431\u043e\u0442\u0430\u043b, \u044f, \u043a \u0441\u043b\u043e\u0432\u0443, \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0438\u0431\u043e \u0441 \u043f\u0440\u043e\u0441\u0442\u044b\u043c REST, \u043b\u0438\u0431\u043e \u0441 GET\/POST only \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 API <a href=\"https:\/\/timetta.com\/\" rel=\"noopener noreferrer nofollow\">Timetta<\/a>. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 OData \u0438 \u0447\u0442\u043e \u0436\u0435 \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435?<\/p>\n<h2>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h2>\n<ol>\n<li>\n<p><a href=\"#REST-VS-ODATA\" rel=\"noopener noreferrer nofollow\">REST vs OData<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#SCHEMA\" rel=\"noopener noreferrer nofollow\">\u0421\u0445\u0435\u043c\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#DATA-TYPES\" rel=\"noopener noreferrer nofollow\">\u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#PRIMITIVES\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#ENTITY-TYPE\" rel=\"noopener noreferrer nofollow\">EntityType<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#COMPLEX-TYPE\" rel=\"noopener noreferrer nofollow\">ComplexType<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#ENUM-TYPE\" rel=\"noopener noreferrer nofollow\">EnumType<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#COLLECTION\" rel=\"noopener noreferrer nofollow\">Collection<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#ENTITY-SET\" rel=\"noopener noreferrer nofollow\">EntitySet<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#QUERIES\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043f\u0440\u043e\u0441\u044b<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#SELECT\" rel=\"noopener noreferrer nofollow\">$select<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#FILTER\" rel=\"noopener noreferrer nofollow\">$filter<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#EXPAND\" rel=\"noopener noreferrer nofollow\">$expand<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#ORDERBY\" rel=\"noopener noreferrer nofollow\">$orderby<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#TOP-SKIP\" rel=\"noopener noreferrer nofollow\">$top, $skip<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#COUNT\" rel=\"noopener noreferrer nofollow\">$count<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#FUNCTION-ACTION\" rel=\"noopener noreferrer nofollow\">\u0424\u0443\u043d\u043a\u0446\u0438\u0438, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#CRUD\" rel=\"noopener noreferrer nofollow\">\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\/\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"https:\/\/POST\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/PUT-PATCH\" rel=\"noopener noreferrer nofollow\">\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/DELETE\" rel=\"noopener noreferrer nofollow\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><a href=\"#SUMUP\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u044b\u0442\u043e\u0436\u0438\u043c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#FINALLY\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a<\/a><\/p>\n<ol>\n<li>\n<p><a href=\"#TOOLS\" rel=\"noopener noreferrer nofollow\">\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b<\/a><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><a class=\"anchor\" name=\"REST-VS-ODATA\" id=\"REST-VS-ODATA\"><\/a><\/p>\n<h2>REST vs OData<\/h2>\n<p>\u0412 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a REST &#8212; \u043d\u0430\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e API, OData &#8212; \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u0435\u0431-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0441\u043e\u0431\u0440\u0430\u0432\u0448\u0438\u0439 \u0432 \u0441\u0435\u0431\u044f &#171;\u043b\u0443\u0447\u0448\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438&#187;: <code>defines a set of best practices for building and consuming RESTful APIs<\/code> (\u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 <a href=\"https:\/\/www.odata.org\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435<\/a>). \u0421\u0430\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0437\u0430\u0442\u0440\u043e\u043d\u0443 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438-\u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b.<\/p>\n<p><a class=\"anchor\" name=\"SCHEMA\" id=\"SCHEMA\"><\/a><\/p>\n<h2>\u0421\u0445\u0435\u043c\u0430<\/h2>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f OData \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0441\u0445\u0435\u043c\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0432\u0441\u0435: \u043a\u0430\u043a\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0435\u0441\u0442\u044c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043a\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c. \u0421\u0445\u0435\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 XML \u0438\u043b\u0438 JSON. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0445\u0435\u043c\u044b \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443: <\/p>\n<p><code>&lt;root>\/$metadata<\/code><\/p>\n<p>\u0413\u0434\u0435 &lt;root> &#8212; \u043a\u043e\u0440\u0435\u043d\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u0430 OData. \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438\u0437 \u044d\u0442\u043e\u0433\u043e &lt;root>. \u0414\u043b\u044f Timetta \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u0442\u0430\u043a\u043e\u0439: <\/p>\n<p><a href=\"https:\/\/api.timetta.com\/odata\/%24metadata\" rel=\"noopener noreferrer nofollow\">https:\/\/api.timetta.com\/odata\/$metadata<\/a><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c XML \u0441\u0445\u0435\u043c.<\/p>\n<p><a class=\"anchor\" name=\"DATA-TYPES\" id=\"DATA-TYPES\"><\/a><\/p>\n<h2>\u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p><a class=\"anchor\" name=\"PRIMITIVIES\" id=\"PRIMITIVIES\"><\/a><\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435<\/strong><\/p>\n<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u044f\u0434 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u0441\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 &#171;Edm&#187;. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <\/p>\n<ul>\n<li>\n<p>Edm.Boolean<\/p>\n<\/li>\n<li>\n<p>Edm.String<\/p>\n<\/li>\n<li>\n<p>Edm.Int32<\/p>\n<\/li>\n<li>\n<p>Edm.Int16<\/p>\n<\/li>\n<li>\n<p>Edm.Stream<\/p>\n<\/li>\n<li>\n<p>Edm.Date<\/p>\n<\/li>\n<li>\n<p>Edm.Byte<\/p>\n<\/li>\n<li>\n<p>Edm.Decimal<\/p>\n<\/li>\n<li>\n<p>Edm.Binary<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"ENTITY-TYPE\" id=\"ENTITY-TYPE\"><\/a><\/p>\n<p><strong>EntityType<\/strong><\/p>\n<p>EntityType \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0438\u0437 DDD: \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0442\u0430\u043a \u0438 \u0441\u0432\u043e\u0439 ID (\u0432 \u0441\u0445\u0435\u043c\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e). \u0412 \u0441\u0445\u0435\u043c\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<ul>\n<li>\n<p>Property &#8212; \u043f\u043e\u043b\u044f \u0441\u043e \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 \u0447\u0438\u0441\u043b\u043e. \u0418\u043c\u0435\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b: <\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d)<\/p>\n<\/li>\n<li>\n<p>Type &#8212; \u0442\u0438\u043f \u043f\u043e\u043b\u044f (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d)<\/p>\n<\/li>\n<li>\n<p>Nullable &#8212; \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0431\u044b\u0442\u044c null<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>NavigationProperty &#8212; \u043f\u043e\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c<\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d)<\/p>\n<\/li>\n<li>\n<p>Type &#8212; \u0442\u0438\u043f (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d)<\/p>\n<\/li>\n<li>\n<p>ReferentialConstraint &#8212; &#171;\u043a\u0430\u043a&#187; \u043c\u044b \u0441\u0441\u044b\u043b\u0430\u0435\u043c\u0441\u044f<\/p>\n<ul>\n<li>\n<p>Property &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0432 \u0421\u0421\u042b\u041b\u0410\u042e\u0429\u0415\u041c\u0421\u042f \u0442\u0438\u043f\u0435<\/p>\n<\/li>\n<li>\n<p>ReferencedProperty &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0432 \u0442\u0438\u043f\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0421\u0421\u042b\u041b\u0410\u0415\u041c\u0421\u042f<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Key &#8212; \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f null. <\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u043e\u043c<\/p>\n<\/li>\n<li>\n<p>Alias &#8212; \u043f\u0441\u0435\u0432\u043e\u0434\u043d\u0438\u043c \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043a\u043b\u044e\u0447 &#8212; \u043f\u043e\u043b\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 TimeSheet, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0442\u0430\u0431\u0435\u043b\u044c) \u0437\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<pre><code class=\"xml\">&lt;EntityType Name=\"TimeSheet\" OpenType=\"true\">   &lt;Key>     &lt;PropertyRef Name=\"id\"\/>   &lt;\/Key>   &lt;Property Name=\"dueDate\" Type=\"Edm.Date\"\/>   &lt;Property Name=\"dateFrom\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"dateTo\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"approvalStatusId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"submitted\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"approved\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"userId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"departmentId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"approvalInstanceId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"templateId\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Property Name=\"name\" Type=\"Edm.String\"\/>   &lt;Property Name=\"rowVersion\" Type=\"Edm.Binary\"\/>   &lt;Property Name=\"createdById\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"modifiedById\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"id\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Property Name=\"created\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"modified\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"isActive\" Type=\"Edm.Boolean\" Nullable=\"false\"\/>   &lt;NavigationProperty Name=\"approvalStatus\" Type=\"WP.ApprovalStatus\">   &lt;ReferentialConstraint Property=\"approvalStatusId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"user\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"department\" Type=\"WP.Department\">   &lt;ReferentialConstraint Property=\"departmentId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"approvalInstance\" Type=\"WP.ApprovalInstance\">   &lt;ReferentialConstraint Property=\"approvalInstanceId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"timeSheetLines\" Type=\"Collection(WP.TimeSheetLine)\"\/>   &lt;NavigationProperty Name=\"timeAllocations\" Type=\"Collection(WP.TimeAllocation)\"\/>   &lt;NavigationProperty Name=\"approvalRecords\" Type=\"Collection(WP.TimeSheetApprovalRecord)\"\/>   &lt;NavigationProperty Name=\"lineApprovals\" Type=\"Collection(WP.TimeSheetLineApproval)\"\/>   &lt;NavigationProperty Name=\"template\" Type=\"WP.TimeSheetTemplate\"\/>   &lt;NavigationProperty Name=\"total\" Type=\"WP.TimeSheetTotal\"\/>   &lt;NavigationProperty Name=\"timeOffRequests\" Type=\"Collection(WP.TimeOffRequest)\"\/>   &lt;NavigationProperty Name=\"createdBy\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"modifiedBy\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty> &lt;\/EntityType><\/code><\/pre>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0435 &#171;id&#187; &#8212; \u043f\u0435\u0440\u0432\u0438\u0447\u044b\u0439 \u043a\u043b\u044e\u0447<\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0439 \u0441 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p>dueDate &#8212; \u0434\u043e \u043a\u0430\u043a\u043e\u0439 \u0434\u0430\u0442\u044b \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c<\/p>\n<\/li>\n<li>\n<p>dateFrom &#8212; \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442<\/p>\n<\/li>\n<li>\n<p>dateTo &#8212; \u043a\u043e\u0433\u0434\u0430 \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442<\/p>\n<\/li>\n<li>\n<p>approvalInstanceId &#8212; Id \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 (\u0440\u0435\u0441\u0443\u0440\u0441\u0430), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0430 (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d, \u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#8212; null, \u043d\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 Nullable, \u0447\u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 null)<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 null: <\/p>\n<ul>\n<li>\n<p>dueDate &#8212; \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u0437\u043d\u0430\u0435\u043c \u0434\u0435\u0434\u043b\u0430\u0439\u043d<\/p>\n<\/li>\n<li>\n<p>approvalInstanceId &#8212; \u0440\u0430\u0431\u043e\u0442\u0443 \u0435\u0449\u0435 \u043c\u043e\u0433\u043b\u0438 \u043d\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0418\u043c\u0435\u0435\u0442 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p>approvalInstance &#8212; \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>timeSheetLines &#8212; \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0447\u0430\u0441\u044b <\/p>\n<\/li>\n<li>\n<p>createdBy &#8212; \u043a\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d \u043f\u043b\u0430\u043d \u0440\u0430\u0431\u043e\u0442<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>approvalInstance \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e \u0437\u0430\u043d\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u043b\u044f approvalInstanceId \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u043e\u043b\u044e id \u0438\u0441\u043a\u043e\u043c\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>timeSheetLines &#8212; &#171;\u0441\u043b\u0430\u0431\u0430\u044f&#187; \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c. \u0414\u043b\u044f \u043d\u0435\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d Id, \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044e<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"COMPLEX-TYPE\" id=\"COMPLEX-TYPE\"><\/a><\/p>\n<p><strong>ComplexType<\/strong><\/p>\n<p>ComplexType \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 Value type \u0438\u0437 DDD &#8212; \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u043b\u0435\u0439. \u041c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0442\u0435\u0445 \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0447\u0442\u043e \u0438 EntityType \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c Key.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 2 \u043f\u043e\u043b\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u043c\u0435\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/p>\n<pre><code class=\"xml\">&lt;ComplexType Name=\"DateHours\">   &lt;Property Name=\"date\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"hours\" Type=\"Edm.Decimal\"\/> &lt;\/ComplexType><\/code><\/pre>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u0422\u0438\u043f DateHours \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u043c (ComplexType)<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 2 \u043f\u043e\u043b\u0435\u0439:<\/p>\n<ul>\n<li>\n<p>date &#8212; \u0434\u0430\u0442\u0430 (Type=&#187;Edm.Date&#187;), \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438\u0434\u0435\u0442 \u043e\u0442\u0441\u0447\u0435\u0442.<\/p>\n<\/li>\n<li>\n<p>hours &#8212; \u0432\u0440\u0435\u043c\u044f, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435 \u0434\u0440\u043e\u0431\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c (Type=&#187;Edm.Decimal&#187;)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0413\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>date &#8212; \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c null, \u0442.\u043a. \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u043d\u0430\u0442\u044c \u0434\u0430\u0442\u0443<\/p>\n<\/li>\n<li>\n<p>hours &#8212; \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c null, \u0442.\u043a. \u0432\u0440\u0435\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e\/\u0443\u043a\u0430\u0437\u0430\u043d\u043e<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"ENUM-TYPE\" id=\"ENUM-TYPE\"><\/a><\/p>\n<p><strong>EnumType<\/strong><\/p>\n<p>EnumType &#8212; \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b &#8212; \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f Enum, \u0437\u0430\u0442\u0435\u043c \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c <code>PlanningMethod.Manual<\/code>, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c <code>PlanningMethod'Manual'<\/code>. \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)<\/p>\n<\/li>\n<li>\n<p>UnderlyingType &#8212; \u0442\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, Edm.Int32)<\/p>\n<\/li>\n<li>\n<p>IsFlags &#8212; \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0444\u043b\u0430\u0433\u043e\u043c. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u0437\u043e\u0432\u0430\u0442\u044c \u0432 UnderlyingType \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e &#171;true&#187;<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043d\u0447\u0435\u043d\u0438\u0439 &#8212; \u044d\u043b\u0435\u043c\u0435\u043d\u0442 Member:<\/p>\n<ul>\n<li>\n<p>Name &#8212; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>Value &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"xml\">&lt;EnumType Name=\"PlanningMethod\">   &lt;Member Name=\"Manual\" Value=\"0\"\/>   &lt;Member Name=\"FrontLoad\" Value=\"1\"\/>   &lt;Member Name=\"RemainingCapacity\" Value=\"2\"\/>   &lt;Member Name=\"Evenly\" Value=\"3\"\/> &lt;\/EnumType><\/code><\/pre>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u0422\u0438\u043f PlanningMethod \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u043c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f (EnumType)<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>Manual, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 0<\/p>\n<\/li>\n<li>\n<p>FrontLoad, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 1<\/p>\n<\/li>\n<li>\n<p>RemainingCapacity, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 2<\/p>\n<\/li>\n<li>\n<p>Evenly, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c 3<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>P.S. \u0412 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a\u043e\u0439 \u0432\u0438\u0434 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e \u0432\u0441\u0435\u043c \u0442\u0438\u043f\u0430\u043c \u0438 \u0438\u043c\u0435\u0435\u0442 \u0432\u0438\u0434: \u041f\u043e\u043b\u043d\u044b\u0439\u0422\u0438\u043f\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438&#8217;\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435&#8217;. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0434\u0430\u0442\u044b &#8212; date&#8217;2022-07-01&#8242;<\/p>\n<p><a class=\"anchor\" name=\"COLLECTION\" id=\"COLLECTION\"><\/a><\/p>\n<p><strong>Collection<\/strong><\/p>\n<p>\u0422\u0438\u043f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a <code>Collection(\u041f\u043e\u043b\u043d\u043e\u0435\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u0422\u0438\u043f\u0430)<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>Collection(WP.TimeSheet)<\/code>. <\/p>\n<pre><code class=\"xml\">&lt;EntityType Name=\"TimeSheet\" OpenType=\"true\">   &lt;Key>     &lt;PropertyRef Name=\"id\"\/>   &lt;\/Key>   &lt;Property Name=\"dueDate\" Type=\"Edm.Date\"\/>   &lt;Property Name=\"dateFrom\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"dateTo\" Type=\"Edm.Date\" Nullable=\"false\"\/>   &lt;Property Name=\"approvalStatusId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"submitted\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"approved\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"userId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"departmentId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"approvalInstanceId\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"templateId\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Property Name=\"name\" Type=\"Edm.String\"\/>   &lt;Property Name=\"rowVersion\" Type=\"Edm.Binary\"\/>   &lt;Property Name=\"createdById\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"modifiedById\" Type=\"Edm.Guid\"\/>   &lt;Property Name=\"id\" Type=\"Edm.Guid\" Nullable=\"false\"\/>   &lt;Property Name=\"created\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"modified\" Type=\"Edm.DateTimeOffset\"\/>   &lt;Property Name=\"isActive\" Type=\"Edm.Boolean\" Nullable=\"false\"\/>   &lt;NavigationProperty Name=\"approvalStatus\" Type=\"WP.ApprovalStatus\">   &lt;ReferentialConstraint Property=\"approvalStatusId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"user\" Type=\"WP.User\">   &lt;ReferentialConstraint Property=\"userId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"department\" Type=\"WP.Department\">   &lt;ReferentialConstraint Property=\"departmentId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"approvalInstance\" Type=\"WP.ApprovalInstance\">   &lt;ReferentialConstraint Property=\"approvalInstanceId\" ReferencedProperty=\"id\"\/>   &lt;\/NavigationProperty>   &lt;NavigationProperty Name=\"timeSheetLines\" Type=\"Collection(WP.TimeSheetLine)\"\/>   &lt;NavigationProperty Name=\"timeAllocations\" Type=\"Collection(WP.TimeAllocation)\"\/>   &lt;NavigationProperty Name=\"approvalRecords\"<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-336088","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/336088","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=336088"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/336088\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=336088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=336088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=336088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}