<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3618588772304760293</id><updated>2012-02-06T19:59:23.020+04:00</updated><category term='Яндекс'/><category term='Фотография'/><category term='Team Foundation Server'/><category term='MSN'/><category term='Разное'/><category term='Управление проектами'/><category term='Трекинг продаж'/><category term='Visual Studio.NET'/><category term='TFS'/><category term='Pay per click'/><category term='SQL Server'/><category term='Baidu'/><category term='Selenium'/><category term='Серверы'/><category term='SharePoint'/><category term='Интернет-магазин'/><category term='UML'/><category term='Мотивация'/><category term='События'/><category term='Тестирование'/><category term='Трекинг сайтов'/><category term='Visual Studio 2010'/><category term='Google'/><category term='RUP'/><category term='Weighting'/><category term='Agile'/><category term='Поисковые системы'/><category term='Базы данных'/><category term='Yandex'/><category term='Баги'/><category term='Yahoo'/><category term='PPC'/><category term='Overture'/><category term='.NET'/><title type='text'>Михаил Смирнов</title><subtitle type='html'>руководитель подразделения разработки программного обеспечения, руководитель проектов</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>78</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-5231076443761182295</id><published>2011-10-30T22:11:00.000+04:00</published><updated>2011-10-30T22:11:43.730+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Интернет-магазин'/><title type='text'>Партионный учет в интернет-магазине</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Пару лет назад передо мной стояла задача организации &lt;b&gt;партионного учета&lt;/b&gt; в &lt;b&gt;интернет-магазине&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Здесь я расскажу о том, как это было сделано.&lt;br /&gt;&lt;br /&gt;Для начала коротко о том, что такое &lt;b&gt;партионный учет&lt;/b&gt; и зачем он нужен в интернет-магазине. &lt;br /&gt;Представьте, что ваш магазин продает, скажем, кроссовки. При этом он периодически делает закупки у поставщиков и производит отгрузку покупателям.&lt;br /&gt;&lt;br /&gt;Перед вами стоит задача определения размера прибыли, приносимой магазином.&lt;br /&gt;&lt;br /&gt;Для того, чтобы определить торговую &lt;b&gt;маржу&lt;/b&gt;, нам нужно знать стоимость закупки и цену продажи каждой единицы отгруженного товара. И если с &lt;b&gt;ценой продажи&lt;/b&gt; все понятно – ее можно взять из заказа, то с &lt;b&gt;ценой закупки&lt;/b&gt; ситуация сложнее.&lt;br /&gt;&lt;br /&gt;Продемонстрирую это на примере.&lt;br /&gt;Предположим, вы закупили 10 пар кроссовок по 100 рублей и через месяц еще 10 пар 200 рублей. Затем у вас возник заказ на 12 пар кроссовок, которые вы продали по 300 рублей (общая сумма заказа 12 x 300 = 3600 р.).&lt;br /&gt;&lt;br /&gt;Теперь определим &lt;b&gt;маржу&lt;/b&gt;. Она составляет (300 – 100) х 10 + (300 - 200) х 2 = 2200 р.&lt;br /&gt;&lt;br /&gt;Т.е. мы видим, что в данном заказе присутствовало 10 пар кроссовок из первой партии, которая была закуплена по 100 рублей и 2 пары из второй партии, которая была закуплена по 200 рублей.&lt;br /&gt;&lt;br /&gt;Для правильного подсчета маржи нам и необходим &lt;b&gt;партионный учет&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Теперь о том, как это было реализовано на практике.&lt;br /&gt;&lt;br /&gt;Прежде всего приведу схему базы данных.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/-a7NsYPQH_eA/Tq1-4KaN6CI/AAAAAAAAAVM/ITmvHnD50EU/s1600-h/image15.png"&gt;&lt;img alt="image" border="0" height="484" src="http://lh4.ggpht.com/-shybgPEY3Ls/Tq1-46wLboI/AAAAAAAAAVU/q4LH6ecblMw/image_thumb9.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="605" /&gt;&lt;/a&gt;&lt;br /&gt;Рассмотрим таблицы этой схемы.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Products&lt;/b&gt; – справочник продуктов.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;ProductModifications&lt;/b&gt; – таблица, содержащая разновидности, модификации или варианты продукта. Например, вышеупомянутые кроссовки могут быть разного размера или цвета и для каждого из них нужен свой учет.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Orders&lt;/b&gt; – таблица заказов  &lt;/li&gt;&lt;li&gt;&lt;b&gt;OrderItems&lt;/b&gt; – табличная часть заказов  &lt;/li&gt;&lt;li&gt;&lt;b&gt;ProductIncomes&lt;/b&gt; – таблица поступлений товаров на склад  &lt;/li&gt;&lt;li&gt;&lt;b&gt;ProductOutcomes&lt;/b&gt; – таблица списаний товаров со склада  &lt;/li&gt;&lt;li&gt;&lt;b&gt;ProductOutcomesToParties&lt;/b&gt; – вспомогательная таблица, определяющая закупочные цены.&lt;/li&gt;&lt;/ul&gt;Теперь более подробно об этих таблицах.&lt;br /&gt;&lt;br /&gt;Таблица &lt;b&gt;ProductModifications&lt;/b&gt; содержит &lt;b&gt;закупочную цену&lt;/b&gt; последней партии (поле &lt;b&gt;OriginalPrice&lt;/b&gt;) и текущую &lt;b&gt;продажную цену&lt;/b&gt; (поле &lt;b&gt;Price&lt;/b&gt;). &lt;b&gt;Закупочная цена&lt;/b&gt; последней партии не участвует непосредственно в &lt;b&gt;партионном учете&lt;/b&gt;. Она имеет чисто информационный характер.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Цена продажи&lt;/b&gt; (&lt;b&gt;Price&lt;/b&gt;) определяет по какой цене в настоящий момент происходит продажа товара.&lt;br /&gt;&lt;br /&gt;Таблица &lt;b&gt;OrderItems&lt;/b&gt; содержит ссылку на модификацию товара, &lt;b&gt;количество&lt;/b&gt; (&lt;b&gt;Count&lt;/b&gt;) и &lt;b&gt;цену продажи&lt;/b&gt; (&lt;b&gt;Price&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;Таблица &lt;b&gt;ProductIncomes&lt;/b&gt; позволяет содержит историю поступления товаров на склад. Для каждого поступления содержится дата (&lt;b&gt;IncomeDate&lt;/b&gt;), закупочная цена (&lt;b&gt;OriginalPrice&lt;/b&gt;) и количество поступившего товара (&lt;b&gt;Count&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;Таблица &lt;b&gt;ProductOutcomes&lt;/b&gt; содержит историю списаний товаров со склада. Она также содержит дату списания (&lt;b&gt;OutcomeDate&lt;/b&gt;), количество товара (&lt;b&gt;Count&lt;/b&gt;) и отпускную цену (&lt;b&gt;Price&lt;/b&gt;). Кроме продаж, могут существовать и другие причины списания товаров со склада – например, возврат некондиционного товара или временное резервирование. Для отметки таких списаний применяются поля &lt;b&gt;ReturnToAuthour&lt;/b&gt; и &lt;b&gt;IsReserved&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Все вышеперечисленные таблицы заполняются в процессе работы &lt;b&gt;интернет-магазина&lt;/b&gt;. Справочники товаров и поступлений заполняются администраторами, заказов – покупателями и администраторами, списания заполняются автоматически при создании заказов, либо администраторами для случая списаний без заказов.&lt;br /&gt;&lt;br /&gt;Для того, чтобы подсчитать &lt;b&gt;маржу&lt;/b&gt; каждого конкретного проданного товара, нам надо заполнять таблицу &lt;b&gt;ProductOutcomesToParties&lt;/b&gt;. Для каждого списания со склада эта таблица содержит несколько записей, которые содержат закупочную цену товара и количество закупленного по данной цене товара. Если рассматривать приведенный выше пример с кроссовками, то эта таблица должна содержать две записи – для каждой из закупленных партий.&lt;br /&gt;&lt;br /&gt;Итак, наша задача состоит в том, что правильно рассчитать закупочные цены и заполнить таблицу &lt;b&gt;ProductOutcomesToParties&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Для этого мы должны полностью отследить историю движения по складу каждой модификации товара.&lt;br /&gt;&lt;br /&gt;Для начала создадим представление &lt;b&gt;ProductMoves&lt;/b&gt;, которое будет содержать всю историю движения товара – т.е. объединение историй поступлений и списаний.&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;CREATE&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;VIEW&lt;/span&gt; &lt;span style="color: #808030;"&gt;[&lt;/span&gt;dbo&lt;span style="color: #808030;"&gt;]&lt;/span&gt;&lt;span style="color: #808030;"&gt;.&lt;/span&gt;&lt;span style="color: #808030;"&gt;[&lt;/span&gt;ProductMoves&lt;span style="color: #808030;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;SELECT&lt;/span&gt; MovType&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;ID&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; ProductModificationID&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;Date&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; Price&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #bb7977; font-weight: bold;"&gt;Count&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; OrderID&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;br /&gt;       &lt;span style="color: #bb7977; font-weight: bold;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;bit&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; ReturnToAuthor&lt;span style="color: #808030;"&gt;)&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; ReturnToAuthor&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #bb7977; font-weight: bold;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;bit&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; IsReserved&lt;span style="color: #808030;"&gt;)&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; IsReserved&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;FROM&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #008c00;"&gt;1&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; MovType&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;ID&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; ProductModificationID&lt;span style="color: #808030;"&gt;,&lt;/span&gt; IncomeDate &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;Date&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; OriginalPrice &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; Price&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;br /&gt;            &lt;span style="color: #bb7977; font-weight: bold;"&gt;Count&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #008c00;"&gt;0&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; OrderID&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #008c00;"&gt;0&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; ReturnToAuthor&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #008c00;"&gt;0&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;as&lt;/span&gt; IsReserved&lt;br /&gt;     &lt;span style="color: maroon; font-weight: bold;"&gt;FROM&lt;/span&gt; ProductIncomes&lt;br /&gt;     &lt;span style="color: maroon; font-weight: bold;"&gt;UNION&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;ALL&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: maroon; font-weight: bold;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #008c00;"&gt;2&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; MovType&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;ID&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; ProductModificationID&lt;span style="color: #808030;"&gt;,&lt;/span&gt; OutcomeDate &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;Date&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; Price&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;br /&gt;            &lt;span style="color: #bb7977; font-weight: bold;"&gt;Count&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; OrderID&lt;span style="color: #808030;"&gt;,&lt;/span&gt; ReturnToAuthor&lt;span style="color: #808030;"&gt;,&lt;/span&gt; IsReserved&lt;br /&gt;     &lt;span style="color: maroon; font-weight: bold;"&gt;FROM&lt;/span&gt; ProductOutcomes&lt;span style="color: #808030;"&gt;)&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;a&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Теперь создадим вспомогательную таблицу &lt;b&gt;ProductWarehouse&lt;/b&gt;, которая будет содержать список партий и количество товара в каждой из них. Эта таблица будет вспомогательной в процессе расчета закупочных цен.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://lh4.ggpht.com/-YtiLbVRBj6E/Tq1-5lGApRI/AAAAAAAAAVY/voxM43c8Kwk/s1600-h/image%25255B3%25255D.png"&gt;&lt;img alt="image" border="0" height="177" src="http://lh5.ggpht.com/-B1m3ZDO9ZWU/Tq1-6C2_Z1I/AAAAAAAAAVk/Y_xrwObx_VQ/image_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border-color: -moz-use-text-color; border-style: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="215" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;В данной таблице у нас хранится ссылка на партию (&lt;b&gt;PartyID&lt;/b&gt;) – т.е. на запись в таблице &lt;b&gt;ProductIncomes&lt;/b&gt;, текущее количество товара данной партии на складе (&lt;b&gt;CurrentCount&lt;/b&gt;), закупочная цена (&lt;b&gt;Price&lt;/b&gt;), дата партии (&lt;b&gt;PartyDate&lt;/b&gt;) и ссылка на модификацию продукта.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Для расчета закупочных цен создадим хранимую процедуру &lt;b&gt;RecalculateWarehouse&lt;/b&gt;, которая решает эту задачу цен для заданной модификации товара.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Рассмотрим код процедуры. В коде процедуры приведены комментарии, объясняющие ее работу.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;nobr&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;nobr&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;CREATE&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: blue;"&gt;PROCEDURE&lt;/span&gt; &lt;span style="color: teal;"&gt;[dbo]&lt;/span&gt;&lt;span style="color: grey;"&gt;.&lt;/span&gt;&lt;span style="color: teal;"&gt;[RecalculateWarehouse]&lt;/span&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/div&gt;&lt;nobr&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;@PMID&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&amp;nbsp; &lt;span style="color: green;"&gt;-- ID &lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;модификации&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;товара&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: teal; font-family: Consolas; font-size: 9.5pt;"&gt;@Result&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;nvarchar &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;max&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;output&lt;/span&gt; &lt;span style="color: green;"&gt;-- Результат работы процедуры&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;AS&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;set&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;@Result&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;''&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Сохраняем историю движения товара вовременную таблицу.&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Делаем это для того, чтобы расчетомне мешать работе магазина.&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;select&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: grey;"&gt;*&lt;/span&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;#ProductMoves&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;from&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: teal;"&gt;ProductMoves&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nolock&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;where&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: teal;"&gt;ProductModificationID&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: teal;"&gt;@PMID&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;declare&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveType&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Price&lt;/span&gt; &lt;span style="color: blue;"&gt;money&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt; &lt;span style="color: blue;"&gt;datetime&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MovOrderID&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Определяем курсор по историидвижения товара.&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Данный курсор будет пробегаться повсем фактам поступлений и списаний по мере их&lt;br /&gt; -- наступления &lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Для этого в курсоре примененасортировка по дате и типу движения&lt;br /&gt;-- (чтобы в случае одинаковых дат &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;поступления всегда шли перед списаниями).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;declare&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: teal;"&gt;cur&lt;/span&gt; &lt;span style="color: blue;"&gt;cursor&lt;/span&gt; &lt;span style="color: blue;"&gt;local&lt;/span&gt; &lt;span style="color: blue;"&gt;for&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;select&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: teal;"&gt;MovType&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;ID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;Price&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;[Count]&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;date&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;OrderID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;from&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: teal;"&gt;#ProductMoves&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;order&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: blue;"&gt;by&lt;/span&gt; &lt;span style="color: blue;"&gt;date&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;MovType&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;--&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;Открываем&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;курсор&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;open&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: teal;"&gt;cur&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;fetch&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: blue;"&gt;next&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;cur&lt;/span&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveType&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Price&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MovOrderID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- И бежим по всей истории движенийтовара по складу&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;while&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: magenta;"&gt;@@fetch_status&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; 0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Обрабатываем поступления на склад&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveType&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; 1&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Если данная партия товара еще не зарегистрирована наскладе&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;if &lt;/span&gt;&lt;span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt;"&gt;(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;select&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: magenta;"&gt;count&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(*)&lt;/span&gt; &lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt; &lt;span style="color: blue;"&gt;where&lt;/span&gt;&lt;span style="color: teal;"&gt;PartyID&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; 0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Регистрируем даннуюпартию товара на складе&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;insert&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: teal;"&gt;PartyID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;CurrentCount&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;Price&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;PartyDate&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductModificationID&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Price&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PMID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;else&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: green;"&gt;-- Еслиданная партия уже была зарегистрирована на складе&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Обновляем информацию о ней&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;update&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;set&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;CurrentCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;Price&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@Price&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;PartyID&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;end&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Обрабатываем списания со склада&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveType&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; 2&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Определяем временную таблицу, в которую будут помещены&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- результаты определения закупочных цен&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;declare&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;@parties&lt;/span&gt; &lt;span style="color: blue;"&gt;table &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: teal;"&gt;ID&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;Date&lt;/span&gt; &lt;span style="color: blue;"&gt;datetime&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;Price&lt;/span&gt; &lt;span style="color: blue;"&gt;money&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;declare&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;@PresentedCount&lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Определяем количество товара на складе на моментсписания&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;select&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;@PresentedCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: magenta;"&gt;isnull&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;sum&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: teal;"&gt;[CurrentCount]&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;/span&gt; 0&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nolock&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductModificationID&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@PMID&lt;/span&gt; &lt;span style="color: grey;"&gt;and&lt;/span&gt; &lt;span style="color: teal;"&gt;PartyDate&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Если количествотовара на складе достаточно для списания&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; &lt;span style="color: teal;"&gt;@PresentedCount&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Заполняем таблицу закупочных цен теми партиями,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- текущихколичеств на складе которых &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;достаточно&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;для&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;списания&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;insert&lt;/span&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;@parties&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: teal;"&gt;ID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;Date&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;Price&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: teal;"&gt;ID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;PartyDate&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;Price&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nolock&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductModificationID&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@PMID&lt;/span&gt; &lt;span style="color: grey;"&gt;and&lt;/span&gt; &lt;span style="color: teal;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CurrentCount&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;gt;&lt;/span&gt; 0 &lt;span style="color: grey;"&gt;and&lt;/span&gt; &lt;span style="color: teal;"&gt;PartyDate&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;order&lt;/span&gt; &lt;span style="color: blue;"&gt;by&lt;/span&gt; &lt;span style="color: teal;"&gt;PartyDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;declare&lt;/span&gt; &lt;span style="color: teal;"&gt;@pid&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PPrice&lt;/span&gt; &lt;span style="color: blue;"&gt;money&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PDate&lt;/span&gt; &lt;span style="color: blue;"&gt;datetime&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Определяем курсорпо всем партиям, которые на&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- данный момент есть на нашем складе&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;declare&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;pcur&lt;/span&gt; &lt;span style="color: blue;"&gt;cursor&lt;/span&gt; &lt;span style="color: blue;"&gt;local&lt;/span&gt; &lt;span style="color: blue;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: teal;"&gt;id&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;Price&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;Date&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;@parties&lt;/span&gt; &lt;span style="color: blue;"&gt;order&lt;/span&gt; &lt;span style="color: blue;"&gt;by&lt;/span&gt; &lt;span style="color: blue;"&gt;Date&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;open&lt;/span&gt; &lt;span style="color: teal;"&gt;pcur&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;declare&lt;/span&gt; &lt;span style="color: teal;"&gt;@SaleCount&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@SaleCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Удаляем результатыпредыдущих расчетов&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;delete&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductOutcomesToParties&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt;&lt;span style="color: teal;"&gt;ProductOutcomeID&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;fetch&lt;/span&gt; &lt;span style="color: blue;"&gt;next&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;pcur&lt;/span&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;@pid&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PPrice&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Пробегаем по всемпартиям товара до тех пор, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- пока не наберем достаточное &lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- количество товара, для заполнения всего списания&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;while&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: magenta;"&gt;@@fetch_status&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; 0 &lt;span style="color: grey;"&gt;and&lt;/span&gt; &lt;span style="color: teal;"&gt;@SaleCount&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;gt;&lt;/span&gt; 0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;declare&lt;/span&gt; &lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@DecCount&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Определяем текущееколичество товара на складе &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- для данной партии&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;select&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;CurrentCount&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;ID&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@pid&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;-- Если текущегоколичества товара достаточно&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@SaleCount&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Уменьшаем текущее количество товара на &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- количествотребуемого товара&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;set&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;@DecCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@SaleCount&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt;&lt;span style="color: grey;"&gt;-&lt;/span&gt; &lt;span style="color: teal;"&gt;@SaleCount&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;set&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;@SaleCount&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; 0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Обновляем количество товара на складе&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;update&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;CurrentCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;ID&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@pid&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- &lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;Сохраняем&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;закупочные&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;цены&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;insert&lt;/span&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductOutcomesToParties&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: teal;"&gt;ProductOutcomeID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;[Count]&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: teal;"&gt;IncomePrice&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;IncomeDate&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@DecCount&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PPrice&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;else&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Если текущего количества товара НЕ достаточно&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Полностью забираем товар из данной партии&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Затем уменьшаем кол-во требуемого товара&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@DecCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@SaleCount&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: teal;"&gt;SaleCount&lt;/span&gt; &lt;span style="color: grey;"&gt;-&lt;/span&gt; &lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; 0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Обновляем количество товара на складе&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;update&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;CurrentCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@CurrentCount&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;ID&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@pid&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Сохраняем закупочные цены&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;insert&lt;/span&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductOutcomesToParties&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: teal;"&gt;ProductOutcomeID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;[Count]&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IncomePrice&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;IncomeDate&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@DecCount&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PPrice&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;fetch&lt;/span&gt; &lt;span style="color: blue;"&gt;next&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;pcur&lt;/span&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;@pid&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PPrice&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;close&lt;/span&gt; &lt;span style="color: teal;"&gt;pcur&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;deallocate&lt;/span&gt; &lt;span style="color: teal;"&gt;pcur&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Если количество товара на складе НЕ достаточно длясписания&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Вообще говоря, такая ситуация является ошибочной &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Но все же мы ее обрабатываем на тот случай, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- еслиинформация о поступлениях товара&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- еще не была занесена в базу данных&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;begin&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;declare&lt;/span&gt; &lt;span style="color: teal;"&gt;@PsevdoPrice&lt;/span&gt; &lt;span style="color: blue;"&gt;money&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PsevdoDate&lt;/span&gt; &lt;span style="color: blue;"&gt;datetime&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- В качестве закупочной цены берем последнюю закупочнуюцену&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@PsevdoPrice&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: magenta;"&gt;isnull&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/span&gt;&lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: blue;"&gt;top&lt;/span&gt; 1 &lt;span style="color: blue;"&gt;Price from&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nolock&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductModificationID&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@PMID&lt;/span&gt; &lt;span style="color: grey;"&gt;and&lt;/span&gt; &lt;span style="color: teal;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PartyDate&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;order&lt;/span&gt; &lt;span style="color: blue;"&gt;by&lt;/span&gt; &lt;span style="color: teal;"&gt;PartyDate&lt;/span&gt; &lt;span style="color: blue;"&gt;desc&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;/span&gt; 0&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Тоже самое делаем и с датой&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@PsevdoDate&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: magenta;"&gt;isnull&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/span&gt;&lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: blue;"&gt;top&lt;/span&gt; 1 &lt;span style="color: blue;"&gt;PartyDate from&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nolock&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductModificationID&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@PMID&lt;/span&gt; &lt;span style="color: grey;"&gt;and&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: teal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PartyDate&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;order&lt;/span&gt; &lt;span style="color: blue;"&gt;by&lt;/span&gt; &lt;span style="color: teal;"&gt;PartyDate&lt;/span&gt; &lt;span style="color: blue;"&gt;desc&lt;/span&gt;&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Удаляем результаты предыдущих рассчетов&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;delete&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductOutcomesToParties&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt;&lt;span style="color: teal;"&gt;ProductOutcomeID&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Сохраняем закупочные цены&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;insert&lt;/span&gt; &lt;span style="color: blue;"&gt;into&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductOutcomesToParties&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/span&gt;&lt;span style="color: teal;"&gt;ProductOutcomeID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;[Count]&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;IncomePrice&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;IncomeDate&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PsevdoPrice&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@PsevdoDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;-- Обновляем количество товара на складе&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;update&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductWarehouse&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;CurrentCount&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; 0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; &lt;span style="color: teal;"&gt;ProductModificationID&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@PMID&lt;/span&gt; &lt;span style="color: grey;"&gt;and&lt;/span&gt; &lt;span style="color: teal;"&gt;PartyDate&lt;/span&gt; &lt;span style="color: grey;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@Result&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: teal;"&gt;@Result&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;N'Ошибка рассчета. В заказе'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;convert&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nvarchar &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;16&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: teal;"&gt;@MovOrderID&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;N' на дату '&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;convert&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nvarchar &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;16&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; 104&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +&lt;/span&gt; &lt;span style="color: red;"&gt;N' '&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;convert&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nvarchar &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;16&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; 108&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N' требуется списать '&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt;&lt;span style="color: magenta;"&gt;convert&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nvarchar &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;50&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;N' шт. товара, на складе -'&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; convert&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nvarchar &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;50&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: teal;"&gt;@PresentedCount&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;N'&amp;lt;/b&amp;gt; шт. Товар был продан по цене &amp;lt;b&amp;gt;'&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; convert&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nvarchar &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;50&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: teal;"&gt;@Price&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;N', закупочная цена определена как '&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; convert&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;nvarchar &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;50&lt;span style="color: grey;"&gt;),&lt;/span&gt; &lt;span style="color: teal;"&gt;@PsevdoPrice&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;N''&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;fetch&lt;/span&gt; &lt;span style="color: blue;"&gt;next&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; &lt;span style="color: teal;"&gt;cur&lt;/span&gt; &lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveType&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveID&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Price&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@Count&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MoveDate&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: teal;"&gt;@MovOrderID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;close&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;cur&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;deallocate&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;cur&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;drop&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;table&lt;/span&gt; &lt;span style="color: teal;"&gt;#ProductMoves&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;if&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: teal;"&gt;@Result&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;''&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;set&lt;/span&gt; &lt;span style="color: teal;"&gt;@Result&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'OK'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;Теперь создадим процедуру, которая выполняет рассчет закупочных цен для всех товаров.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;CREATE&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;PROCEDURE&lt;/span&gt; &lt;span style="color: #808030;"&gt;[&lt;/span&gt;dbo&lt;span style="color: #808030;"&gt;]&lt;/span&gt;&lt;span style="color: #808030;"&gt;.&lt;/span&gt;&lt;span style="color: #808030;"&gt;[&lt;/span&gt;RecalculateAllWarehouse&lt;span style="color: #808030;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;AS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;create&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;table&lt;/span&gt; &lt;span style="color: #808030;"&gt;#&lt;/span&gt;res &lt;span style="color: #808030;"&gt;(&lt;/span&gt;ProductID &lt;span style="color: maroon; font-weight: bold;"&gt;int&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; Result nvarchar &lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;max&lt;/span&gt;&lt;span style="color: #808030;"&gt;)&lt;/span&gt;&lt;span style="color: #808030;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;declare&lt;/span&gt; &lt;span style="color: #797997;"&gt;@PMID&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;int&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #797997;"&gt;@ProductID&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;declare&lt;/span&gt; cur &lt;span style="color: maroon; font-weight: bold;"&gt;cursor&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;local&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;for&lt;/span&gt; &lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;ID&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; ProductID &lt;span style="color: maroon; font-weight: bold;"&gt;from&lt;/span&gt; ProductModifications &lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;nolock&lt;/span&gt;&lt;span style="color: #808030;"&gt;)&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;order&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;by&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;ID&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;open&lt;/span&gt; cur&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;fetch&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;next&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;from&lt;/span&gt; cur &lt;span style="color: maroon; font-weight: bold;"&gt;into&lt;/span&gt; &lt;span style="color: #797997;"&gt;@PMID&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #797997;"&gt;@ProductID&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;while&lt;/span&gt; &lt;span style="color: #797997;"&gt;@@fetch_status&lt;/span&gt; &lt;span style="color: #808030;"&gt;=&lt;/span&gt; &lt;span style="color: #008c00;"&gt;0&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: maroon; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: maroon; font-weight: bold;"&gt;declare&lt;/span&gt; &lt;span style="color: #797997;"&gt;@res&lt;/span&gt; nvarchar &lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: #bb7977; font-weight: bold;"&gt;max&lt;/span&gt;&lt;span style="color: #808030;"&gt;)&lt;/span&gt;        &lt;br /&gt;&lt;br /&gt;        &lt;span style="color: maroon; font-weight: bold;"&gt;exec&lt;/span&gt; RecalculateWarehouse &lt;span style="color: #797997;"&gt;@PMID&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #797997;"&gt;@res&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;output&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: maroon; font-weight: bold;"&gt;insert&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;into&lt;/span&gt; &lt;span style="color: #808030;"&gt;#&lt;/span&gt;res &lt;span style="color: #808030;"&gt;(&lt;/span&gt;ProductID&lt;span style="color: #808030;"&gt;,&lt;/span&gt; Result&lt;span style="color: #808030;"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: maroon; font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: #797997;"&gt;@ProductID&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #797997;"&gt;@res&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: maroon; font-weight: bold;"&gt;fetch&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;next&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;from&lt;/span&gt; cur &lt;span style="color: maroon; font-weight: bold;"&gt;into&lt;/span&gt; &lt;span style="color: #797997;"&gt;@PMID&lt;/span&gt;&lt;span style="color: #808030;"&gt;,&lt;/span&gt; &lt;span style="color: #797997;"&gt;@ProductID&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: maroon; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;close&lt;/span&gt; cur&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;deallocate&lt;/span&gt; cur&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;select&lt;/span&gt; &lt;span style="color: #808030;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;from&lt;/span&gt; &lt;span style="color: #808030;"&gt;#&lt;/span&gt;res&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;order&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;by&lt;/span&gt; ProductID&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;drop&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;table&lt;/span&gt; &lt;span style="color: #808030;"&gt;#&lt;/span&gt;res&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="color: black; font-size: small;"&gt;Данная процедура пробегается по всем товарам и выполняет для них необходимый расчет, возвращая затем результаты работы пользователю.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: black; font-family: Consolas; font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-5231076443761182295?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/5231076443761182295/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/10/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/5231076443761182295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/5231076443761182295'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/10/blog-post.html' title='Партионный учет в интернет-магазине'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-shybgPEY3Ls/Tq1-46wLboI/AAAAAAAAAVU/q4LH6ecblMw/s72-c/image_thumb9.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-1486086928864313582</id><published>2011-10-20T15:28:00.001+04:00</published><updated>2011-10-20T15:28:16.844+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='События'/><category scheme='http://www.blogger.com/atom/ns#' term='Разное'/><title type='text'>70-433</title><content type='html'>&lt;p&gt;Эх, давненько я не брал в руки шашек!&lt;/p&gt; &lt;p&gt;Позавчера сдал экзамен &lt;strong&gt;70-433 “&lt;span id="ctl00_mslMyCertification_lblCert0"&gt;Microsoft SQL Server 2008, Database Development&lt;/span&gt;”&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;При этом набрал максимальный балл – 1000 из 1000 возможных.&lt;/p&gt; &lt;p&gt;Экзамен, в общем-то, не сложный, но все равно приятно &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Улыбка" src="http://lh6.ggpht.com/-tgO5XILI2es/TqAF0EmZEWI/AAAAAAAAAU8/5wP_vd4gysw/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-1486086928864313582?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/1486086928864313582/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/10/70-433.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/1486086928864313582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/1486086928864313582'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/10/70-433.html' title='70-433'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-tgO5XILI2es/TqAF0EmZEWI/AAAAAAAAAU8/5wP_vd4gysw/s72-c/wlEmoticon-smile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-4754669864587582045</id><published>2011-08-18T15:12:00.003+04:00</published><updated>2011-08-18T15:13:00.455+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Как заставить работать filtered indexes в MS SQL Server 2008.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Недавно мы столкнулись со следующей проблемой – создали несколько &lt;b&gt;filtered indexes&lt;/b&gt;, которые не хотели работать – оптимизатор не хотел их использовать, даже если условия запроса удовлетворяли условиям индекса.&lt;br /&gt;&lt;br /&gt;В &lt;b&gt;Books online&lt;/b&gt; проблема описана довольно скупо, но вот что удалось выяснить – для нормальной работы &lt;b&gt;filtered indexes&lt;/b&gt; необходимо произвести те же настройки, которые нужны для &lt;b&gt;indexed views&lt;/b&gt; или &lt;b&gt;indexed computed columns&lt;/b&gt;, а именно (&lt;a href="http://msdn.microsoft.com/en-us/library/ms175088.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms175088.aspx&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;ANSI_NULLS ON   &lt;br /&gt;ANSI_PADDING ON    &lt;br /&gt;ANSI_WARNINGS ON    &lt;br /&gt;ARITHABORT ON    &lt;br /&gt;CONCAT_NULL_YIELDS_NULL ON    &lt;br /&gt;NUMERIC_ROUNDABORT OFF    &lt;br /&gt;QUOTED_IDENTIFIER ON&lt;br /&gt;&lt;br /&gt;После включения этих опций &lt;b&gt;filtered indexes &lt;/b&gt;начинают работать как надо.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-4754669864587582045?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/4754669864587582045/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/08/filtered-indexes-ms-sql-server-2008.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/4754669864587582045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/4754669864587582045'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/08/filtered-indexes-ms-sql-server-2008.html' title='Как заставить работать filtered indexes в MS SQL Server 2008.'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-481322691212200446</id><published>2011-08-15T21:08:00.003+04:00</published><updated>2011-08-15T21:10:18.874+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Тестирование'/><category scheme='http://www.blogger.com/atom/ns#' term='События'/><title type='text'>Первая встреча Костромского клуба тестировщиков</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Сегодня состоялось первое собрание &lt;b&gt;Костромского клуба тестировщиков&lt;/b&gt; (&lt;a href="http://www.clubqa.ru/"&gt;http://www.clubqa.ru&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Честно говоря, я не ожидал такого количества народу на данном мероприятии. По моим оценкам там присутствовало порядка 40-50 человек.&lt;br /&gt;&lt;br /&gt;Собрание было достаточно коротким – было прочитано всего два доклада.&lt;br /&gt;&lt;br /&gt;Первый доклад читала &lt;b&gt;&lt;a href="http://v-ptitsyina.moikrug.ru/"&gt;Виктория Птицына&lt;/a&gt;&lt;/b&gt;. Ее доклад назывался “&lt;b&gt;Азы тест-анализа и тест-дизайна&lt;/b&gt;”. Доклад был посвящен основным понятиям и подходам процесса тестирования.&lt;br /&gt;&lt;br /&gt;Второй доклад назывался “&lt;b&gt;Что должен знать тестировщик&lt;/b&gt;”. Читал доклад &lt;a href="http://www.linkedin.com/in/iosifitkin"&gt;&lt;b&gt;Иосиф Иткин&lt;/b&gt;&lt;/a&gt;. Его доклад освящал основные компетенции тестировщика и направления его развития.&lt;br /&gt;&lt;br /&gt;В целом доклады имели уровень “для начинающих”, но, собственно говоря, это была первая встреча клуба и видимо доклады были специально подобраны таким образом, чтобы иметь подобный уровень сложности. Но даже это уже хорошо для Костромы.&lt;br /&gt;&lt;br /&gt;В будущем хотелось бы послушать более сложные доклады, направленные в первую очередь на практическую деятельность.&lt;br /&gt;&lt;br /&gt;И напоследок несколько фотографий с собрания.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellpadding="2" cellspacing="0" style="width: 400px;"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;a href="http://lh4.ggpht.com/-aVt9ea4sCc8/TklSXPZSibI/AAAAAAAAAUU/LElTft-877s/s1600-h/DSC02378%25255B3%25255D.jpg"&gt;&lt;img alt="DSC02378" border="0" height="164" src="http://lh4.ggpht.com/-TMyZwJmzK4U/TklSY1PzYpI/AAAAAAAAAUY/4RNetoqNUVQ/DSC02378_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC02378" width="244" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;a href="http://lh4.ggpht.com/-mztOr-PoIuQ/TklSZb2hVSI/AAAAAAAAAUc/tBo5z9f5x9I/s1600-h/DSC02386%25255B3%25255D.jpg"&gt;&lt;img alt="DSC02386" border="0" height="164" src="http://lh5.ggpht.com/-0eZ4sLNzbUw/TklSaHXvtWI/AAAAAAAAAUg/5_4iqJ2VQ6A/DSC02386_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC02386" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;a href="http://lh4.ggpht.com/-3s-l985S4-g/TklSamI0jvI/AAAAAAAAAUk/5IabN8SDFiU/s1600-h/DSC02381%25255B3%25255D.jpg"&gt;&lt;img alt="DSC02381" border="0" height="164" src="http://lh4.ggpht.com/-uIM1k7sODhQ/TklSbCOWzkI/AAAAAAAAAUo/C07FAzfgzkI/DSC02381_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC02381" width="244" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;a href="http://lh6.ggpht.com/-yi2fn7R-NVo/TklSbnCimJI/AAAAAAAAAUs/dX7NYc2r0OY/s1600-h/DSC02385%25255B3%25255D.jpg"&gt;&lt;img alt="DSC02385" border="0" height="164" src="http://lh5.ggpht.com/-hZ2N7VzRiSI/TklScHkXNhI/AAAAAAAAAUw/FpMQun3b_qg/DSC02385_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC02385" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-481322691212200446?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/481322691212200446/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/08/blog-post_15.html#comment-form' title='Комментарии: 17'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/481322691212200446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/481322691212200446'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/08/blog-post_15.html' title='Первая встреча Костромского клуба тестировщиков'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-TMyZwJmzK4U/TklSY1PzYpI/AAAAAAAAAUY/4RNetoqNUVQ/s72-c/DSC02378_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-9096370163222913428</id><published>2011-08-11T17:46:00.001+04:00</published><updated>2011-08-11T17:46:59.831+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Разное'/><title type='text'>Шаблон договора на разработку сайта - в помощь фрилансеру</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;В помощь фрилансерам выкладываю шаблон договора для заключение контрактов на разработку сайтов.&lt;br /&gt;Скачать шаблон договора можно по следующей ссылке: &lt;a href="http://www.msmirnov.ru/public/ContractForSite.doc"&gt;http://www.msmirnov.ru/public/ContractForSite.doc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В принципе этот шаблон можно изменить таким образом, чтобы использовать не только для сайта, но и для любого другого программного обеспечения.&lt;br /&gt;&lt;br /&gt;Текст шаблона привожу ниже.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; mso-hyphenate: none; mso-outline-level: 1; page-break-after: avoid; page-break-before: always; text-align: center;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Договор № _______&lt;br /&gt;на проведение работ по разработке интернет-сайта «___________».&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; tab-stops: right 496.15pt;"&gt;г. &lt;span lang="EN-US"&gt;______________________&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; «__» __________ 20&lt;span lang="EN-US"&gt;__&lt;/span&gt; г.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt;"&gt;&lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Ref118691564"&gt;&lt;/a&gt;&lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Ref109124343"&gt;&lt;/a&gt;&lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Ref95534054"&gt;&lt;/a&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;___________________________________________________________,зарегистрирован(а) по адресу _________________________________________________________________&lt;/i&gt;,с одной стороны, и&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt;"&gt;_______________________________________________________________________________________________________________________________________________________,с другой стороны,&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt;"&gt;вместеи по отдельности именуемые в дальнейшем Стороны, заключили настоящий Договор онижеследующем.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ПРЕДМЕТ &lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ДОГОВОРА&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;1.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Исполнитель по поручению Заказчика выполняет работы поразработке и внедрению интернет-сайта «______________» в объеме, определяемом Приложением №1 к настоящему Договору «Техническое задание»,в сроки, предусмотренные Приложением №2 к настоящему Соглашению,«Календарный план».&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ОБЯЗАННОСТИИСПОЛНИТЕЛЯ&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;u&gt;Исполнитель обязуется:&lt;/u&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;2.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;оказать услуги в соответствии с разделом 1настоящего Договора;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;2.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;сформировать рабочую группу из числа сотрудниковИсполнителя, в которой определить ответственных за оказание услуг в целом и наконкретных участках. &lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ОБЯЗАННОСТИЗАКАЗЧИКА&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;u&gt;Заказчик обязуется:&lt;/u&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;3.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;оплатить оказанные услуги в размерах и в сроки,установленные настоящим Договором;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;3.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;выпустить приказ о формировании группы сопровожденияпроекта, ответственной за своевременное и правильное выполнение обязательств понастоящему Договору со стороны Заказчика. В данной группе определяетсяответственный исполнитель. Список членов группы, копии приказа о назначенииответственного исполнителя передать Заказчику в течение 5 дней с датыподписания настоящего Договора.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;3.3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;обеспечить согласование документов в сроки,определенные Календарным планом (Приложение №2 к настоящему Соглашению).&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;3.4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;при наличии согласованной Сторонами необходимости, обеспечитьсотрудникам Исполнителя возможность оказания услуг в помещениях Заказчика неменее 10 (десяти) рабочих часов в сутки по рабочим дням и в выходные дни;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;3.5.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;обеспечить сотрудникам Исполнителя, прибывшим наобъекты Заказчика для оказания услуг по Договору, безопасные условия труда ипроведения инструктажей в соответствии с правилами техники безопасности.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;&lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Ref137266764"&gt;&lt;/a&gt;3.6.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Предоставлятьпо запросу сотрудников Исполнителя, выполняющих работы, необходимые данные,документы и материалы в согласованные сроки и в согласованном объеме.&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;СТОИМОСТЬРАБОТ И ПОРЯДОК РАСЧЕТОВ&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;&lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Ref130898509"&gt;&lt;/a&gt;4.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Общаястоимость работ Исполнителя по настоящему Договору составляет ____________________рублей.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;4.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Заказчик выплачивает аванс в размере ________________рублей в сроки определенные в Приложении № 2 к настоящему Договору, «Графикработ».&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;4.3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Сумму, эквивалентную __________________ рублей,Заказчик оплачивает в сроки определенные в Приложении № 2 к настоящему Договору,«График работ».&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;4.4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Дополнительные работы по проекту осуществляются израсчета ________ руб / чел.час. При этом исполнитель предоставляет переченьдополнительно выполненных работ с указанием даты их проведения и стоимости.Оплата дополнительных работ производится в течении _____ рабочих дней со дняпредоставления перечня.&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;5.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;СРОКИ ОКАЗАНИЯУСЛУГ&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;5.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Сроки работ определяются Приложением № 1 к настоящему Договору,«Календарный план».&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;5.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;В случае задержки предоставления Заказчиком исходныхданных (п. 3.6)срок действия Договора и сроки выполнения обязательств Исполнителем переноситсяна время задержки.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;5.3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Сроки оказания услуг могут быть изменены в процессе ихоказания только по соглашению Сторон.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;5.4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;При появлении новых деталей и обстоятельств, неуказанных в Техническом задании, стоимость и время разработки проекта будетувеличено в соответствии с пунктом 4.4 настоящего Договора.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;6.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ПОРЯДОКСДАЧИ-ПРИЕМКИ&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;6.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Исполнитель обязан своевременно оказать услуги.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;6.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Оказанныепо настоящему Договору услуги Заказчик принимает путем подписания Актасдачи-приемки услуг, оформляемого в 2 (двух) экземплярах. &lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;7.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ОТВЕТСТВЕННОСТЬСТОРОН&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;7.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Исполнительне несет ответственность за невыполнение или несвоевременное выполнение имобязательств по настоящему Договору, вызванное не предоставлением ему ответственнымипредставителями Заказчика необходимой информации, либо предоставлением неполнойили некорректной информации.&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="text-transform: uppercase;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;8.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="text-transform: uppercase;"&gt;Гарантийныеобязательства&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;8.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Исполнитель предоставляет услуги гарантийной поддержкипрограммного обеспечения разработанного по настоящему Договору. Гарантийнаяподдержка включает исправление обнаруженных ошибок в работе разработанных илидоработанных Исполнителем частей программного обеспечения без изменениясогласованного перечня требований к соответствующему программному обеспечению,зафиксированных Сторонами при выполнении работ по настоящему Договору к нему,при условии соблюдения Заказчиком порядка эксплуатации программногообеспечения, описанного в эксплуатационной документации к нему. &lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;8.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Гарантийные обязательства Исполнителя теряют силу в случаевнесения изменений в находящееся на гарантийной поддержке программноеобеспечение силами Заказчика или третьих лиц.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;8.3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Под ошибкой понимается несоответствие документациифункционалу программного обеспечения (ошибка в документации) либосистематическое невыполнение или некорректное выполнение функций программы(ошибка в коде), которое отвечает одному из критериев:&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 2.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level3 lfo1; tab-stops: list 2.0cm; text-indent: -1.0cm;"&gt;8.3.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;несоответствует документации на программное обеспечение;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 2.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level3 lfo1; tab-stops: list 2.0cm; text-indent: -1.0cm;"&gt;8.3.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;явноприсутствует (проявляется) в обслуживаемом программном обеспечении;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 2.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level3 lfo1; tab-stops: list 2.0cm; text-indent: -1.0cm;"&gt;8.3.3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;неявляется явным следствием одного или нескольких обстоятельств:&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 99.25pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level4 lfo1; tab-stops: list 99.25pt; text-indent: -42.55pt;"&gt;8.3.3.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ошибочногопользования программное обеспечение;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 99.25pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level4 lfo1; tab-stops: list 99.25pt; text-indent: -42.55pt;"&gt;8.3.3.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;несанкционированногоизменения или дополнения ПО;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 99.25pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level4 lfo1; tab-stops: list 99.25pt; text-indent: -42.55pt;"&gt;8.3.3.3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;сбоясмежного программного либо аппаратного обеспечения;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 99.25pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level4 lfo1; tab-stops: list 99.25pt; text-indent: -42.55pt;"&gt;8.3.3.4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;недостаточностиаппаратных или телекоммуникационных ресурсов;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 99.25pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level4 lfo1; tab-stops: list 99.25pt; text-indent: -42.55pt;"&gt;8.3.3.5.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;неисправностиили изменения оборудования, на котором ПО установлено;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 2.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level3 lfo1; tab-stops: list 2.0cm; text-indent: -1.0cm;"&gt;8.3.4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt; &lt;/span&gt;неявляется следствием изменения регламентов деловых процессов Заказчика.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;8.4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Гарантийный срок составляет ________ месяцев с датыподписания Сторонами Акта сдачи-приемки выполненных работ.&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;9.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ИМУЩЕСТВЕННЫЕПРАВА&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;9.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Заказчику принадлежат исключительные имущественныеправа на разработанное по настоящему Договору программное обеспечение интернет-сайта«_______________________». &lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;9.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Исключительные права Сторон и иных Правообладателей напрограммные средства, программное обеспечение и иные объекты интеллектуальнойсобственности, использованные при выполнении работ по настоящему Договору,сохраняются за соответствующими Сторонами и соответствующими Правообладателями.&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;10.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ПРОЧИЕУСЛОВИЯ&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;10.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Настоящий Договор вступает в силу с момента егоподписания Сторонами и действует до выполнения ими принятых на себяобязательств. &lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;10.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Договор в письменной форме. Письменная форма считаетсявыполненной при наличии подписей уполномоченных лиц и оттисков печатей Сторон.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;10.3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Настоящий Договор составлен в двух экземплярах, имеющиходинаковую юридическую силу и по одному для каждой Стороны.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;10.4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Настоящий Договор может быть изменен либо дополнен наосновании письменного соглашения Сторон.&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;10.5.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Все Приложения, Дополнения и Соглашения к настоящему Договоруявляются неотъемлемой его частью и действительны при условии соблюденияписьменной формы и подписей сторон.&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 18.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;11.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ПРИЛОЖЕНИЯ&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 1.0cm; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level2 lfo1; page-break-after: avoid; tab-stops: list 1.0cm; text-indent: -1.0cm;"&gt;11.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Всеперечисленные ниже Приложения к настоящему Договору являются его неотъемлемойчастью и действительны при наличии подписей должностных лиц, наделенных правомподписи данных документов и оттисков печатей Сторон.&lt;/div&gt;&lt;div align="left" class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 63.8pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level3 lfo1; page-break-after: avoid; tab-stops: list 2.0cm 63.8pt; text-align: left; text-indent: -35.45pt;"&gt;11.1.1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;Приложение № 1- «Техническое задание» &lt;/div&gt;&lt;div align="left" class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 63.8pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level3 lfo1; page-break-after: avoid; tab-stops: list 2.0cm 63.8pt; text-align: left; text-indent: -35.45pt;"&gt;11.1.2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;Приложение № 2 - «Календарныйплан» &lt;/div&gt;&lt;div align="center" class="MsoNormal" style="margin-bottom: 6.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 15.0pt; mso-list: l0 level1 lfo1; mso-outline-level: 1; mso-text-indent-alt: 0cm; page-break-after: avoid; tab-stops: list 0cm; text-align: center; text-indent: 0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;/span&gt;12.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ЮРИДИЧЕСКИЕАДРЕСА И БАНКОВСКИЕ РЕКВИЗИТЫ СТОРОН&lt;/b&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; mso-padding-alt: 1.4pt 1.4pt 1.4pt 1.4pt; mso-table-layout-alt: fixed; mso-yfti-tbllook: 480;"&gt; &lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0; page-break-inside: avoid;"&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 50.0%;" valign="top" width="50%"&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Заказчик:&lt;/b&gt;&lt;i style="mso-bidi-font-style: normal;"&gt; &lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: .76%;" valign="top" width="0%"&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 49.24%;" valign="top" width="49%"&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Исполнитель: &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="page-break-after: avoid;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes; page-break-inside: avoid;"&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 50.0%;" valign="top" width="50%"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;«____» ___________  20&lt;span lang="EN-US"&gt;___&lt;/span&gt; г.&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: .76%;" valign="top" width="0%"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 49.24%;" valign="top" width="49%"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;«____»____________  20&lt;span lang="EN-US"&gt;___&lt;/span&gt; г.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div align="right" class="MsoCaption" style="margin-bottom: .0001pt; margin: 0cm; page-break-before: always; text-align: right;"&gt;Приложение № 1&lt;span style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="right" class="MsoNormal" style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;«ТЕХНИЧЕСКОЕ ЗАДАНИЕ»&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Техническое заданиевключает в себя следующие пункты:&lt;/div&gt;&lt;div align="right" class="MsoNormal" style="page-break-before: always; text-align: right; text-indent: 1.0cm;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Приложение № &lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;2&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;«КАЛЕНДАРНЫЙ ПЛАН »&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; margin-left: -21.55pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 1.4pt 1.4pt 1.4pt 1.4pt; mso-yfti-tbllook: 480; width: 106.88%;"&gt; &lt;thead&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0; page-break-inside: avoid;"&gt;   &lt;td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 5.7%;" width="5%"&gt;&lt;div align="center" class="MsoNormal" style="mso-hyphenate: none; page-break-after: avoid; text-align: center;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;№ этапа&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 37.14%;" width="37%"&gt;&lt;div align="center" class="MsoNormal" style="mso-hyphenate: none; page-break-after: avoid; text-align: center;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Наименование этапа&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 35.84%;" valign="top" width="35%"&gt;&lt;div align="center" class="MsoNormal" style="mso-hyphenate: none; page-break-after: avoid; text-align: center;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Сроки выполнения работ&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 21.32%;" width="21%"&gt;&lt;div align="center" class="MsoNormal" style="mso-hyphenate: none; page-break-after: avoid; text-align: center;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Стоимость Работ, руб. &lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/thead&gt; &lt;tbody&gt;&lt;tr style="mso-yfti-irow: 1; page-break-inside: avoid;"&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 5.7%;" valign="top" width="5%"&gt;&lt;div class="MsoNormal" style="mso-hyphenate: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 37.14%;" valign="top" width="37%"&gt;&lt;div align="left" class="MsoNormal" style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 35.84%;" width="35%"&gt;&lt;div align="center" class="MsoNormal" style="margin-right: 7.1pt; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 21.32%;" valign="top" width="21%"&gt;&lt;div align="right" class="MsoNormal" style="margin-right: 7.1pt; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2; page-break-inside: avoid;"&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 5.7%;" valign="top" width="5%"&gt;&lt;div class="MsoNormal" style="mso-hyphenate: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 37.14%;" valign="top" width="37%"&gt;&lt;div align="left" class="MsoNormal" style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 35.84%;" width="35%"&gt;&lt;div align="center" class="MsoNormal" style="margin-right: 7.1pt; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 21.32%;" valign="top" width="21%"&gt;&lt;div align="right" class="MsoNormal" style="margin-right: 7.1pt; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3; page-break-inside: avoid;"&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 5.7%;" valign="top" width="5%"&gt;&lt;div class="MsoNormal" style="mso-hyphenate: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 37.14%;" valign="top" width="37%"&gt;&lt;div align="left" class="MsoNormal" style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 35.84%;" width="35%"&gt;&lt;div align="center" class="MsoNormal" style="margin-right: 7.1pt; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 21.32%;" valign="top" width="21%"&gt;&lt;div align="right" class="MsoNormal" style="margin-right: 7.1pt; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4; page-break-inside: avoid;"&gt;  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 5.7%;" valign="top" width="5%"&gt;&lt;div class="MsoNormal" style="mso-hyphenate: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 37.14%;" valign="top" width="37%"&gt;&lt;div align="left" class="MsoNormal" style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 35.84%;" width="35%"&gt;&lt;div align="center" class="MsoNormal" style="margin-right: 7.1pt; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 21.32%;" valign="top" width="21%"&gt;&lt;div align="right" class="MsoNormal" style="margin-right: 7.1pt; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5; page-break-inside: avoid;"&gt;  &lt;td colspan="3" style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 78.68%;" valign="top" width="78%"&gt;&lt;div align="right" class="MsoNormal" style="mso-hyphenate: none; text-align: right;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Итого  за работы:&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 21.32%;" valign="top" width="21%"&gt;&lt;div align="right" class="MsoNormal" style="margin-right: 7.1pt; mso-hyphenate: none; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6; mso-yfti-lastrow: yes; page-break-inside: avoid;"&gt;  &lt;td colspan="3" style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 78.68%;" valign="top" width="78%"&gt;&lt;div align="right" class="MsoNormal" style="mso-hyphenate: none; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 21.32%;" valign="top" width="21%"&gt;&lt;div align="right" class="MsoNormal" style="margin-right: -1.4pt; mso-hyphenate: none; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="margin-left: 14.2pt; text-indent: -14.2pt;"&gt;* Примечание:Формы представления результатов работ, требования к их составу, содержанию иоформлению устанавливаются Руководителями проекта (п. 4.1 Договора) в рабочемпорядке.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; mso-padding-alt: 1.4pt 1.4pt 1.4pt 1.4pt; mso-table-layout-alt: fixed; mso-yfti-tbllook: 480;"&gt; &lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0; page-break-inside: avoid;"&gt;  &lt;td colspan="2" style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 49.82%;" valign="top" width="49%"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 1.1%;" valign="top" width="1%"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 49.08%;" valign="top" width="49%"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes; page-break-inside: avoid;"&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 49.82%;" valign="top" width="49%"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 11pt;"&gt;&lt;br clear="all" style="page-break-before: always;" /&gt;  &lt;/span&gt;&lt;/b&gt;  &lt;br /&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&amp;nbsp;&lt;b style="mso-bidi-font-weight: normal;"&gt;ОТ  ЗАКАЗЧИКА&lt;/b&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&amp;nbsp;«____» ___________ 2011 г.&lt;/div&gt;&lt;/td&gt;  &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 1.1%;" valign="top" width="1%"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td colspan="2" style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 49.08%;" valign="top" width="49%"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;ОТ ИСПОЛНИТЕЛЯ&lt;/b&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;«____»____________  2011 г.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr height="0"&gt;  &lt;td style="border: none;" width="373"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;td style="border: none;" width="8"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;td style="border: none;" width="8"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;td style="border: none;" width="359"&gt;&lt;br /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-9096370163222913428?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/9096370163222913428/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/08/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/9096370163222913428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/9096370163222913428'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/08/blog-post.html' title='Шаблон договора на разработку сайта - в помощь фрилансеру'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-2982872971070934464</id><published>2011-07-26T00:15:00.008+04:00</published><updated>2011-07-26T00:15:53.346+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Работа со старыми DTS-пакетами MS SQL Server 2000 в MS SQL Server 2008</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Недавно мне пришлось столкнуться с необходимостью работы с набором &lt;b&gt;DTS&lt;/b&gt;-пакетов, созданных много лет назад в &lt;b&gt;MS SQL Server 2000&lt;/b&gt; и импортированных в &lt;b&gt;SQL Server 2008&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Отказаться от их использования было нельзя - приложение было написано очень давно и задачи перехода на &lt;b&gt;SSIS&lt;/b&gt; не стояло.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SQL Server 2008&lt;/b&gt; обеспечивает корректную работу старых &lt;b&gt;DTS&lt;/b&gt;-пакетов, но вот &lt;b&gt;Management Studio 2008 &lt;/b&gt;не открывает &lt;b&gt;DTS&lt;/b&gt;-пакеты для просмотра и редактирования, выдавая следуюшую ошибку:&lt;br /&gt;&lt;br /&gt;"&lt;b&gt;&lt;i&gt;SQL Server 2000 DTS Designer components are		  required to edit DTS packages. Install the special Web download, “SQL Server		  2000 DTS Designer Components” to use this feature.&lt;/i&gt;&lt;/b&gt;		  "&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Microsoft&lt;/b&gt; предлагает скачать и установить &lt;b&gt;SQL Server		  2000 DTS Designer Components&lt;/b&gt; - см. &lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms143755.aspx"&gt;здесь&lt;/a&gt;&lt;/b&gt; - (для этого надо будет скопировать 6 файлов (&lt;b&gt;SEMSFC.DLL, SQLGUI.DLL, SQLSVC.DLL, SEMSFC.RLL, SQLGUI.RLL, и SQLSVC.RLL&lt;/b&gt;) из установки &lt;b&gt;SQL Server 2000&lt;/b&gt; в каталог с &lt;b&gt;SQL Server 2008&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;Однако, это&amp;nbsp; не решит проблему для случая &lt;b&gt;SQL Server 2008&lt;/b&gt; - после копирования файлов &lt;b&gt;Server		  2000 DTS Designer&lt;/b&gt; будет запускаться из &lt;b&gt;Management Studio&lt;/b&gt; &lt;b&gt;2008&lt;/b&gt;, но корректно работать все равно не будет. Этот способ работает только для случая &lt;b&gt;SQL Server 2005&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;В &lt;b&gt;SQL Server 2008&lt;/b&gt; будет выдаваться следующая ошибка:&lt;br /&gt;&lt;br /&gt;"&lt;b&gt;&lt;i&gt;Error Source :		  Microsoft Data Transformation Services (DTS) Package&lt;br /&gt;Error Description :		  The DTS host failed to load or save the package properly.&lt;/i&gt;&lt;/b&gt;" &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;В &lt;b&gt;Microsoft&lt;/b&gt; пока не создали решения этой проблемы для &lt;b&gt;SQL Server 2008&lt;/b&gt;, но есть один обходной вариант - пусть не очень удобный, но в случае необходимости он работает.&lt;br /&gt;&lt;br /&gt;Следует поставить старый добрый &lt;b&gt;SQL Server 2000&lt;/b&gt; - причем не только сам &lt;b&gt;Enterprise manager&lt;/b&gt;, а и ядро сервера - без инстанса работать с &lt;b&gt;DTS&lt;/b&gt;-пакетами не получиться.&lt;br /&gt;Причем, ставить нужно &lt;b&gt;SQL Server 2000 SP3&lt;/b&gt; или &lt;b&gt;SP4&lt;/b&gt;. С &lt;b&gt;SP2&lt;/b&gt; работать не будет.&lt;br /&gt;&lt;br /&gt;После этого необходимо сохранить &lt;b&gt;DTS&lt;/b&gt;-пакеты из &lt;b&gt;Management Studio 2008&lt;/b&gt; на диск и открыть файлы на редактирование в &lt;b&gt;Enterprise manager&lt;/b&gt;. Сам инстанс &lt;b&gt;SQL 2000&lt;/b&gt; при этом не понадобиться - &lt;b&gt;Enterprise manager&lt;/b&gt; будет просто работать с файлами. Затем файлы необходимо опять импортировать в &lt;b&gt;SQL Server 2008&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;Способ не очень удобный - каждый &lt;b&gt;DTS&lt;/b&gt;-пакет приходится каждый раз гонять туда-сюда, но он работает и поскольку ничего другого сейчас все равно нет - приходится пользоваться таким.&lt;br /&gt;&lt;br /&gt;Хорошей новостью является то, что &lt;b&gt;DTS&lt;/b&gt;-пакетами можно при этом управлять без каких-либо ограничений, так параметры подключений, которые в них указаны, в этом случае подключаются, как правило не к текущему серверу, а к &lt;b&gt;SQL Server 2008&lt;/b&gt;, что облегчает работу с ними.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-2982872971070934464?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/2982872971070934464/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/07/dts-ms-sql-server-2000-ms-sql-server.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/2982872971070934464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/2982872971070934464'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/07/dts-ms-sql-server-2000-ms-sql-server.html' title='Работа со старыми DTS-пакетами MS SQL Server 2000 в MS SQL Server 2008'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-3391390688219340366</id><published>2011-07-20T17:06:00.000+04:00</published><updated>2011-07-20T17:06:32.746+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><title type='text'>Какие вопросы задавать заказчику на первой встрече?</title><content type='html'>Я руковожу в основном продуктовой разработкой.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;Однако, некоторое время назад на горизонте появился достаточно крупный гос. заказчик, что предполагало реализацию крупного проекта под заказ, чего я обычно раньше не занимался, по крайней мере не в таких объемах.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;В связи с этим я подготовил список вопросов для первой встречи с заказчиком, которые я должен с ним обсудить.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Привожу этот список здесь - как заметку для себя на будущее, как способ поделиться опытом, а также с целью послушать критику и внести возможные изменения.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&amp;nbsp;Итак, вопросы.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Общие вопросы.&lt;/b&gt;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Как называется проект?&lt;/li&gt;&lt;li&gt;Каковы цели реализации проекта?&lt;/li&gt;&lt;li&gt;Каковы предпосылки (в том числе экономические), приводящие к инициации проекта?&lt;/li&gt;&lt;li&gt;Как вы сможете понять, что проект успешен?&lt;/li&gt;&lt;li&gt;Кто, кому и как будет сдавать проект?&lt;/li&gt;&lt;li&gt;Каковы должны быть результаты проекта, по которым можно будет судить о степени его завершенности?&lt;/li&gt;&lt;li&gt;Какие ограничения проекта существуют (по времени, по бюджету, по техническому обеспечению, оборудованию, доступу к информации и пр.)?&lt;/li&gt;&lt;li&gt;Существуют ли какие-либо стандарты либо законодательные акты, которые необходимо соблюдать при работе над проектом?&lt;/li&gt;&lt;li&gt;В каком виде предполагается последующая поддержка проекта?&lt;b&gt; &lt;br /&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Команда проекта.&lt;/b&gt;&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Кто будет осуществлять руководство проектом со стороны заказчика?&lt;/li&gt;&lt;li&gt;Обладает ли он достаточными полномочиями для этого?&lt;/li&gt;&lt;li&gt;Кто ответственен за принятие ключевых решений со стороны заказчика?&lt;/li&gt;&lt;li&gt;Кто обладает достаточными знаниями для формирования требований к проекту?&lt;/li&gt;&lt;li&gt;Кто еще будет входить в состав проектной группы со стороны заказчика?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Влияние проекта.&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Кто будет затронут результатами внедрения проекта?&lt;/li&gt;&lt;li&gt;Какие могут быть сложности или особые условия в процессе внедрения?&lt;/li&gt;&lt;li&gt;Предполагается ли какая-либо миграция или одновременная работы с некими старыми системами?&lt;/li&gt;&lt;li&gt;Предполагается ли обучение персонала как часть проекта?&lt;/li&gt;&lt;li&gt;Кто будет пользователями проекта?&lt;/li&gt;&lt;li&gt;При работе над проектом, либо при его внедрении - будут ли задействованы какие-либо сторонние организации либо ваши подразделения, не являющиеся непосредственными пользователями (например, поставщики либо получатели каких-либо данных)?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Риски&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Какова квалификация пользователей проекта?&lt;/li&gt;&lt;li&gt;Будет ли обеспечен доступ в рабочую среду для проведения тестирования и раннего внедрения результатов проекта?&lt;/li&gt;&lt;li&gt;Существуют ли сотрудники, на стороне заказчика, не заинтересованные в реализации проекта? &lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-3391390688219340366?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/3391390688219340366/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/07/blog-post_20.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/3391390688219340366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/3391390688219340366'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/07/blog-post_20.html' title='Какие вопросы задавать заказчику на первой встрече?'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-2327562989842821961</id><published>2011-07-19T17:10:00.001+04:00</published><updated>2011-07-19T17:11:00.704+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>Visual Paradigm for UML</title><content type='html'>На днях мне довелось поработать с &lt;b&gt;Visual Paradigm for UML 8.0.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Инструмент не плохой - довольно функциональный и мощный.&lt;br /&gt;Довольно легко можно можно строить различные диаграммы - я поэкспериментировал с диаграммами баз данных, диаграммами состояний, диаграммами последовательностей.&lt;br /&gt;&lt;br /&gt;Но, как мне показалось, что инструмент слегка перегружен. Тот же &lt;b&gt;Enterprise Architect&lt;/b&gt; от &lt;b&gt;Sparx&lt;/b&gt; мне показался более стройным и логичным что-ли.&lt;br /&gt;&lt;br /&gt;К сожалению, не удалось толком сделать &lt;b&gt;reverse engeneering&lt;/b&gt; базы &lt;b&gt;MS SQL&lt;/b&gt; - нужного драйвера для &lt;b&gt;Java&lt;/b&gt; в поставке не оказалось, а качать и устанавливать не хотелось.&lt;br /&gt;&lt;br /&gt;Вообще, в плане инструментов моделирования, мне кажется что наиболее пригодны к использованию те, которые непосредственно интегрированы в среду разработки и позволяют как можно легче выполнять преобразования диаграмм в код и обратно (т.е. поддерживать диаграммы в актуальном состоянии). В этом плане &lt;b&gt;Visual Studio&lt;/b&gt;, конечно, находится в выигрышной позиции - она позволяет все это делать, но, правда, в самой дорогой своей редакции &lt;b&gt;Ultimate&lt;/b&gt; (что, конечно же, не является плюсом).&lt;br /&gt;&lt;br /&gt;Для меня эталоном удобства по работе с &lt;b&gt;UML&lt;/b&gt; остается &lt;b&gt;Rational XDE&lt;/b&gt; - очень удобный продукт времен &lt;b&gt;Visual Studio 2003&lt;/b&gt;, который, к сожалению, не выпускается уже наверное лет 8. Очень жаль что &lt;b&gt;IBM&lt;/b&gt; прекратила его поддержку - очень мощный и удобный был инструмент.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-2327562989842821961?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/2327562989842821961/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/07/visual-paradigm-for-uml.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/2327562989842821961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/2327562989842821961'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/07/visual-paradigm-for-uml.html' title='Visual Paradigm for UML'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-298750763412453261</id><published>2011-07-15T15:47:00.001+04:00</published><updated>2011-07-15T15:47:19.756+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Разное'/><title type='text'>Небольшой образчик китайского кода</title><content type='html'>Не смог удержаться, чтобы не запостить небольшой образчик китайского кода, который попался на глаза мне на днях.&lt;br /&gt;Это не прикол – это реальный кусочек кода приложения.&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;br /&gt;    &lt;br /&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string &lt;/span&gt;s = Request.QueryString[&lt;span style="color: #b45f06;"&gt;"action"&lt;/span&gt;];&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #38761d;"&gt;// s may have "restore" or "remove" values&lt;/span&gt;&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;switch &lt;/span&gt;(s[2])&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case &lt;/span&gt;'s':&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case &lt;/span&gt;'S':&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ..............&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case &lt;/span&gt;'m':&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case &lt;/span&gt;'M':&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ..............&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/span&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;br style="font-family: Verdana,sans-serif;" /&gt;&lt;span style="font-family: Verdana,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Как говорится, это было бы смешно, если бы не было так грустно……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-298750763412453261?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/298750763412453261/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/07/blog-post.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/298750763412453261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/298750763412453261'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/07/blog-post.html' title='Небольшой образчик китайского кода'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-7459674021925819677</id><published>2011-06-26T16:04:00.001+04:00</published><updated>2011-06-26T16:06:43.247+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='События'/><title type='text'>Летний Аналитический Фестиваль-2011 (ЛАФ-2011)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Вчера я посетил наверное уже ставший традиционным &lt;b&gt;&lt;a href="http://conf.uml2.ru/"&gt;Летний Аналитический Фестиваль-2011&lt;/a&gt;&lt;/b&gt; (&lt;b&gt;ЛАФ-2011&lt;/b&gt;), который как и в прошлом году проходил в Иваново и был посвящен &lt;b&gt;системному анализу&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;О &lt;b&gt;ЛАФ-2010&lt;/b&gt; я писал &lt;a href="http://michaelsmirnov.blogspot.com/2010/07/2010.html"&gt;здесь&lt;/a&gt; и &lt;a href="http://michaelsmirnov.blogspot.com/2010/07/2010-2.html"&gt;здесь&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Было приятно увидеть множество знакомых лиц с прошлого фестиваля.&lt;br /&gt;&lt;br /&gt;Как и в прошлый раз фестиваль прошел в теплой непринужденной, я бы даже сказал дружеской, и вместе с тем, профессиональной обстановке.&lt;br /&gt;&lt;br /&gt;Профессиональный уровень докладов в этом году, на мой взгляд, был значительно выше чем в прошлом. Было много полезной информации, полученной именно из конкретной практической деятельности.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Лично для себя я отметил следующие доклады:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://conf.uml2.ru/trainer/levenets-irina.html"&gt;&lt;b&gt;Ирина Левенец&lt;/b&gt;&lt;/a&gt; "&lt;b&gt;Управление ожиданиями в продуктовой разработке&lt;/b&gt;". На мой взгляд интереснейший доклад.&lt;br /&gt;&lt;br /&gt;Ирина рассказала о том, как решать проблему поддержания удовлетворенности заказчиков при длительном сотрудничестве.&lt;br /&gt;&lt;br /&gt;Проблема состоит в том, что при длительном взаимодействии с заказчиками их ожидания имеют свойство повышаться и то, что в начале работы они воспринимали с благодарностью, с течением времени начинают воспринимать как нечто обычное, само собой разумеющееся и требуют уже большего сервиса. При предоставлении большего сервиса эффект опять же бывает временным.&lt;br /&gt;&lt;br /&gt;Поэтому, с течением времени уровень сервиса, который предоставляются заказчику, растет, но не смотря на это, недовольство заказчика тоже растет.&lt;br /&gt;&lt;br /&gt;Соответственно, ценность сервиса для заказчика снижается.&lt;br /&gt;&lt;br /&gt;Какие пути решения проблемы предлагает Ирина:&lt;br /&gt;- Доносить ценность новых возможностей систем до заказчиков. Т.е. при обновлении систем им необходимо сообщать не о новых возможностях, которыми теперь обладает система, а о новых проблемах и задачах, которые она умеет решать. И расписывать в красках, как здорово она умеет это делать.&lt;br /&gt;&lt;br /&gt;Мне кажется это довольно интересный ход. Лично мы сейчас в своей работе сейчас, когда у нас выходит новая версия системы, сообщаем клиентам именно об изменении ее функционала, а не о новых задачах, которые теперь можно решать. Надо будет учесть это.&lt;br /&gt;&lt;br /&gt;- Поскольку ресурсы по разработке обычно ограничены, а множество клиентов генерирует поток запросов на изменение, необходимо выполнять сортировку новых требований.&lt;br /&gt;Здесь Ирина привела интересный термин "&lt;b&gt;Triage&lt;/b&gt;".&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Triage&lt;/b&gt; - это сортировка раненых на поле боя - кому требуется помочь немедленно, кто может подождать, а кому вообще помогать уже нет смысла - за это время могут пострадать большее количество других раненых. С требованиями точно так же. Необходимо выполнять сортировку требований учитывая их ценность для всех заказчиков.&lt;br /&gt;&lt;br /&gt;- Меньше обещать, больше делать. Т.е. если мы пообещаем заказчику сделать что-то например за неделю, и сделаем за неделю - это хорошо. А вот если мы пообещаем сделать за две недели, а сделаем за неделю - это будет просто отлично, заказчик будет счастлив.&lt;br /&gt;&lt;br /&gt;- Если что-то не может быть сделано - так и сообщать заказчику. Не говорить, что может быть мы когда-то потом это сделаем.&lt;br /&gt;&lt;br /&gt;- Вовлекать заказчиков в процесс сортировки требований. Это способствует повышению адекватности заказчиков.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;b&gt;&lt;a href="http://blog.shumoos.com/"&gt;Сергей Мартыненко&lt;/a&gt; "Варианты управления требованиями"&lt;/b&gt;. Как и в прошлом году, у Сергей был очень интересный доклад.&lt;br /&gt;&lt;br /&gt;Наиболее интересные мысли, которые запомнились из его доклада:&lt;br /&gt;- Требований надо собрать большие, чем будет реализовано. Смысл в том, что среди требований, которые собирает аналитик присутствуют полезные, относительно полезные, бесполезные и вредные. Для того, чтобы сосредоточиться на полезных, аналитику придется сначала собрать так же бесполезные и вредный.&lt;br /&gt;&lt;br /&gt;- Плохие способы отбора требований в релиз:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;b&gt;Крик&lt;/b&gt;. Кто из заказчиков кричит громче, требования того реализуются быстрее.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;b&gt;Занудство&lt;/b&gt;. Кто из заказчиков настойчивее продвигает требования, требования того реализуются быстрее.&lt;br /&gt;&amp;nbsp; &amp;nbsp; - &lt;b&gt;Зарплата&lt;/b&gt;. Кто из заказчиков получает большую зарплату, требования того реализуются быстрее (актуально в случае внутреннего заказчика).&lt;br /&gt;&amp;nbsp; &amp;nbsp; - &lt;b&gt;Приоритет&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Почему все эти методы плохие? Потому что в релиз попадают фичи, без учета их общей ценности, зависимостей, влияния на архитектуру и пр.&lt;br /&gt;&lt;br /&gt;- Хороший способ распределения требований по релизам:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-vGSfMJok9ec/TgcXpAz8p6I/AAAAAAAAATc/5yLL_sBAnxQ/s1600/features_select.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-vGSfMJok9ec/TgcXpAz8p6I/AAAAAAAAATc/5yLL_sBAnxQ/s1600/features_select.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Как видим из диаграммы, порядок выполнения требований зависит от определенности их бюджета и критичности. Вообще говоря, это довольно понятно - идем по пути снижения рисков.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;b&gt;Денис Казика. "Внедрение ITIL/ITSM"&lt;/b&gt; Тоже довольно интересный доклад.&lt;br /&gt;&lt;br /&gt;Денис рассказал о своем опыте внедрения стандартов работы IT-подразделения в инвестиционной компании. Изначально IT-подразделение не бизнес-образующим и находилось в постоянном конфликте с отделами, ведущими непосредственную работу в компании. Однако, это сказывалось на положении компании на рынке и, если не предпринять никаких действий, могло вообще привести к гибели компании.&lt;br /&gt;&lt;br /&gt;Для решения проблем были предприняты следующие шаги:&lt;br /&gt;&lt;br /&gt;- Была внедрена система управления инцидентами (нечто типа внутренней системы баг-трекинга.) Все запросы в IT-подразделение могли теперь поступать только через нее (до внедрения этой системы ситуация была примерно такая, как говорил Сергей Мартыненко - кто громче кричит или у кого больше зарплата, того требования и реализуются быстрее). Для того, чтобы отучить сотрудников от старых привычек работы с IT-отделом, двери отдела даже пришлось запирать на две недели, чтобы никто из других отделов не мог попасть внутрь не соблюдая регламент.&lt;br /&gt;&lt;br /&gt;- Были внедрены внутренние регламенты работы IT-подразделения.&lt;br /&gt;&lt;br /&gt;- Был стандартизирован парк оборудования и программного обеспечения, использующего в кампании.&lt;br /&gt;&lt;br /&gt;- Была введена должность бизнес-аналитика.&lt;br /&gt;&lt;br /&gt;Весь процесс занял примерно 2.5 года.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;После всех преобразований:&lt;br /&gt;- IT-подразделение стало бизнес-образующим.&lt;br /&gt;&lt;br /&gt;- Исчезли конфликты между IT-подразделением и другими подразделенями.&lt;br /&gt;&lt;br /&gt;- Бизнес компании стал более эффективным.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. &lt;b&gt;&lt;a href="http://akiselev87.wordpress.com/"&gt;Алексей Киселев&lt;/a&gt; "Могут ли быть выгодны ошибки аналитика или история одного тендера"&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Алексей рассказал о сложностях работы с государственными заказчиками и участия в государственных тендерах.&lt;br /&gt;&lt;br /&gt;Наиболее интересными мне показались следующие замечания:&lt;br /&gt;- Иногда в тендерах побеждает тот, кто быстрее поднимет табличку с названием конторы, а не кто предложит лучше условия.&lt;br /&gt;&lt;br /&gt;- В конце года гос.заказчики должны израсходовать весь выделенный им бюджет, иначе не следующей год они получат бюджет меньше. В этом случае тендеры в конце года приобретают несколько неадекватный характер как по бюджету так и по срокам.&lt;br /&gt;&lt;br /&gt;- Если после сдачи проекта в нем требуется какая-то доработка (здесь имеются в виду новые функции, а не исправление ошибок), то на них объявляется новый тендер, который может выиграть совсем другой подрядчик, нежели первый.&lt;br /&gt;&lt;br /&gt;- Гос.заказчики не признают &lt;b&gt;итеративную разработку&lt;/b&gt;. Только &lt;b&gt;водопад&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Пожалуй, это были самые интересные для меня доклады.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;К сожалению мне не удалось попасть на мастер класс &lt;b&gt;Дмитрия Безуглова&lt;/b&gt;, но я надеюсь увидеть его как-нибудь позже.&lt;br /&gt;&lt;br /&gt;Кроме того, не удалось побывать на интересном мастер-классе &lt;a href="http://www.uml2.ru/index.php?option=com_content&amp;amp;task=view&amp;amp;id=448&amp;amp;Itemid=77"&gt;Ирины Векленко&lt;/a&gt;&lt;b&gt; "Анализируй это: Жизнь как Проект"&lt;/b&gt;, но я также надеюсь пообщаться с ней позже.&lt;br /&gt;&lt;br /&gt;Еще хотелось бы отметить, что несколько раз в перерывах между докладами, аналитик &lt;b&gt;&lt;a href="http://www.uml2.ru/index.php?option=com_content&amp;amp;task=view&amp;amp;id=666&amp;amp;Itemid=77"&gt;Павел Сафин&lt;/a&gt;&lt;/b&gt; радовал всех собравшихся виртуозной игрой на рояле, за что ему отдельное большое спасибо!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Я надеюсь, что в следующем году состоится ЛАФ-2012 и буду очень рад присутствовать на нем.&lt;br /&gt;&lt;br /&gt;Хотелось бы поблагодарить всех организаторов и участников фестиваля за то, что они делают!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All you need is... ЛАФ!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-7459674021925819677?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/7459674021925819677/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/06/2011-2011.html#comment-form' title='Комментарии: 9'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/7459674021925819677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/7459674021925819677'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/06/2011-2011.html' title='Летний Аналитический Фестиваль-2011 (ЛАФ-2011)'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-vGSfMJok9ec/TgcXpAz8p6I/AAAAAAAAATc/5yLL_sBAnxQ/s72-c/features_select.jpeg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-2619473855286931250</id><published>2011-06-22T16:38:00.000+04:00</published><updated>2011-06-22T16:38:47.765+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><title type='text'>Сложности распределенных команд и проектов</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;В данном сообщении я решил описать сложности, которые возникают в процессе работы над большими проектами в составе распределенных команд.&lt;br /&gt;&lt;br /&gt;Сразу хочу оговориться, что в данном сообщении речь пойдет только о тех сложностях, с которыми лично мне пришлось столкнуться в последнее время. Т.е. здесь не будет обобщения всех возможных сложностей – здесь будет только мой личный опыт.&lt;br /&gt;&lt;br /&gt;Еще хочу обратить внимание, что &lt;b&gt;данные проблемы не являются не решаемыми&lt;/b&gt;.    &lt;br /&gt;&lt;br /&gt;Пути решения их есть. Здесь я просто хочу обратить внимание к ряду проблем, с которыми можно столкнуться и о которых лучше знать заранее.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Часовые пояса.&lt;/b&gt;    &lt;br /&gt;Большая разница во времени (например, 12 часов) существенно замедляет процесс разработки.&lt;br /&gt;&lt;br /&gt;Если вам в ходе работы требуется решить какой-то вопрос, который вы не можете согласовать без участия членов команды из другого часового пояса, то вам придется ждать, пока они не проснутся и не придут в офис. При этом вам самому придется задержаться после работы.&lt;br /&gt;&lt;br /&gt;Регулярно задерживаться вам будет проблематично, если у вас есть семья и дети. К тому же, даже если вы задержитесь и решите ваш вопрос, продолжить работу вы уже сможете только на следующий день.    &lt;br /&gt;&lt;br /&gt;Если же окажется так, что вопрос решен не целиком (а это выяснится только на следующий день, когда вы начнете работу), то вам опять придется ждать до вечера.    &lt;br /&gt;&lt;br /&gt;Можно, конечно, не задерживаться, а просто написать письмо, но это еще хуже.     &lt;br /&gt;&lt;br /&gt;Письмо могут не так понять и ответить не то, о чем вы спрашивали. Или вообще забыть и не ответить. В результате переписка затянется на несколько дней.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Языковой барьер.     &lt;br /&gt;&lt;/b&gt;Де-факто инструментом общения сейчас является английский язык.    &lt;br /&gt;&lt;br /&gt;Писать и читать на нем все более или менее уже научились.    &lt;br /&gt;&lt;br /&gt;Намного сложнее слушать и быстро отвечать.    &lt;br /&gt;&lt;br /&gt;Еще сложнее, когда твой собеседник сам не очень хорошо говорит по-английски и при этом у него сильный акцент, например, китайский или индийский.    &lt;br /&gt;&lt;br /&gt;Еще хуже когда таких собеседников несколько одновременно и нужно успевать понимать, что все они говорят.    &lt;br /&gt;&lt;br /&gt;Ну и совсем плохо, когда все они с сильным акцентом быстро и одновременно говорят по conference-связи с плохим качеством, при котором часть звуков и слов просто пропадает.    &lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Сложности в поддержании архитектуры.     &lt;br /&gt;&lt;/b&gt;Поскольку коммуникации между членами команды затруднены, это приводит к принятию ими независимых друг от друга архитектурных решений. В результате возникает дублирование кода, расползание архитектуры и пр.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.&lt;/b&gt; Поскольку структура удаленных команд проекта может разной и довольно сложной, не всегда бывают понятны пути решения тех или иных вопросов – как технических, так и организационных. Так же бывает невозможно выяснить как и кем было принято то или иное решение. Поэтому, зачастую члены команды вынуждены выполнять действия, не понимая цели, ради которой они выполняются&lt;b&gt;.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Демотивация.&lt;/b&gt;    &lt;br /&gt;Предыдущий пункт приводит к демотивации членов команд, так как они не чувствуют глубокой причастности к работе над проектом. Проект на становиться для них, что называется “своим”.&lt;br /&gt;&lt;br /&gt;Кроме того, демотивирующим является так же тот факт, что разработчики не имеют возможности оказывать существенного влияния на ход процесса разработки из-за сложностей коммуникаций.    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Зачастую бывает проще не задавать вопросов, нежели пытаться чего-то добиться.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Сложности в соблюдении единого стиля разработки.     &lt;br /&gt;&lt;/b&gt;Это касается как стандартов кодирования, так и технических и архитектурных решений.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Исторически сложившиеся традиции разработки разных стран и команд бывают очень трудны для использования другими командами.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Сложности во вскрытии проблем.     &lt;br /&gt;&lt;/b&gt;Проектные подгруппы и отдельные сотрудники незаинтересованны в потере собственного авторитета. Поэтому они, при возможности, могут перекрывать путь для негативной информации. Это возможно в силу затрудненности коммуникаций. Такое развитие событий может приводить к неразрешимым проблемам в проекте.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8&lt;/b&gt;. Важные вопросы могут решаться не по принципу выбора верного решения из нескольких возможных, а по принципу близости протеже решений к руководству. Последствия, я думаю, очевидны.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-2619473855286931250?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/2619473855286931250/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/06/blog-post_22.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/2619473855286931250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/2619473855286931250'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/06/blog-post_22.html' title='Сложности распределенных команд и проектов'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-3835517002310208112</id><published>2011-06-20T22:20:00.000+04:00</published><updated>2011-06-20T22:20:41.410+04:00</updated><title type='text'>Поздравляю Андрея Маркеева!</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Хочу поздравить &lt;b&gt;&lt;a href="http://omlin.blogspot.com/"&gt;Андрея Маркеева&lt;/a&gt;&lt;/b&gt; с отличным выступлением на &lt;b&gt;Sharepoint User Group&lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;Всегда приятно видеть, как человек своими личными усилиями достигает новых планок в своей профессии.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-3835517002310208112?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/3835517002310208112/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/06/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/3835517002310208112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/3835517002310208112'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/06/blog-post.html' title='Поздравляю Андрея Маркеева!'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-4715871722576842493</id><published>2011-05-30T14:37:00.004+04:00</published><updated>2011-06-10T00:06:09.422+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Selenium'/><category scheme='http://www.blogger.com/atom/ns#' term='Тестирование'/><title type='text'>Создание тестов для Selenium на C# для web-приложений на ASP.NET</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Как я и обещал ранее &lt;a href="http://michaelsmirnov.blogspot.com/2011/05/qtp-selenium.html" target="_blank"&gt;здесь&lt;/a&gt;, привожу пример разработки тестовых сценариев для автоматизированного тестирования web-приложений на &lt;b&gt;C#&lt;/b&gt; с использованием библиотеки &lt;b&gt;Selenium 2.0b3&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Для первой версии &lt;b&gt;Selenium&lt;/b&gt; разработка скриптов на &lt;b&gt;C#&lt;/b&gt; также возможна, но она довольно сильно отличается и обладает гораздо меньшими возможностями, так что я бы не рекомендовал ее использовать. При этом, такой продукт, как &lt;b&gt;Selenium IDE&lt;/b&gt;, позволяет осуществлять генерацию &lt;b&gt;C#&lt;/b&gt; кода только для первой версии &lt;b&gt;Selenium&lt;/b&gt;, поэтому для нас он также получается не актуален.&lt;br /&gt;&lt;br /&gt;Далее по шагам рассмотрим пример создания тестового сценария проверки логина на тестируемый сайт.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;В &lt;b&gt;Visual Studio.NET&lt;/b&gt; cоздаем новый проект – библиотеку классов на &lt;b&gt;C#&lt;/b&gt;.       &lt;br /&gt;В данную библиотеку помещаем ссылки на библиотеки &lt;b&gt;Selenium&lt;/b&gt;:       &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Selenium.WebDriverBackedSelenium &lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;WebDriver.Common &lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;WebDriver.Remote &lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;WebDriver.Remote.Common &lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;WebDriver.Firefox &lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;WebDriver.IE &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Все эти библиотеки доступны для загрузки с сайта &lt;a href="http://seleniumhq.org/download"&gt;http://seleniumhq.org/download&lt;/a&gt; – Скачать необходимо &lt;b&gt;Selenium WebDriver&lt;/b&gt; версии &lt;b&gt;2.0b3&lt;/b&gt; – речь в статье пойдет о ней.      &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Создаем класс &lt;span style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;TestFramework&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;который будет предоставлять нам основные функции по выполнению скриптов.      &lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; TestFramework&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; RemoteWebDriver _WebDriver;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; RemoteWebDriver WebDriver&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            get&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (_WebDriver == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                    _WebDriver = &lt;span class="kwrd"&gt;new&lt;/span&gt; FirefoxDriver();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; _WebDriver;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OpenURL (&lt;span class="kwrd"&gt;string&lt;/span&gt; URL)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            WebDriver.Navigate().GoToUrl(URL);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IWebElement FindWebElement(WebItem webItem)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (webItem.ID != &lt;span class="str"&gt;""&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; WebDriver.FindElementById(webItem.ID);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (webItem.ClassName != &lt;span class="str"&gt;""&lt;/span&gt;)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; WebDriver.FindElementByClassName(webItem.ID);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (webItem.XPathQuery != &lt;span class="str"&gt;""&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; WebDriver.FindElementByXPath(webItem.ID);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Delay(&lt;span class="kwrd"&gt;int&lt;/span&gt; Seconds = 10)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;            System.Threading.Thread.Sleep(Seconds * 1000);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt; Основу для выполнения тестов представляет собой экземпляр класса &lt;span style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;RemoteWebDriver&lt;/span&gt;, который предоставляет доступ ко все основным функциям &lt;b&gt;Selenium&lt;/b&gt;.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;При этом, экземпляр класса &lt;span style="color: #2b91af; font-family: Consolas;"&gt;RemoteWebDriver&lt;/span&gt; содержит ссылку на объект драйвера, реализующего работу с конкретным браузером – &lt;b&gt;IE, FireFox, Chrome&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;Таким образом, меняя ссылку на конкретный драйвер мы организуем выполнение скриптов на разных браузерах. В данном примере я использую &lt;b&gt;FireFox&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Метод &lt;span style="color: #010001; font-family: Consolas; font-size: small;"&gt;OpenURL&lt;/span&gt;,как видно из названия предназначен для открытия различного рода ссылок.&lt;br /&gt;&lt;br /&gt;Метод &lt;span style="color: #010001; font-family: Consolas; font-size: small;"&gt;FindWebElement&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;реализует поиск элементов на текущей странице браузера. При этом на вход ему подается экземпляр класса &lt;span style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;WebItem&lt;/span&gt;, который будет описан позднее. Пока лишь отмечу, что этот класс предоставляет возможность работы с элементами на странице.&lt;br /&gt;&lt;br /&gt;Данный метод возвращает экземпляр интерфейса &lt;span style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;IWebElement&lt;/span&gt;, который реализуется всеми страничными элементами &lt;b&gt;Selenium&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Метод использует возможности поиска объектов на странице по их &lt;b&gt;ID&lt;/b&gt;, имени &lt;b&gt;css-класса &lt;/b&gt;или запросу &lt;b&gt;XPath&lt;/b&gt;. Вообще говоря, &lt;b&gt;Selenium&lt;/b&gt; предоставляет больше возможностей поиска, но в данном примере я оставил только эти три, как наиболее часто применяемые.&lt;br /&gt;&lt;br /&gt;Последний метод &lt;span style="color: #010001; font-family: Consolas; font-size: small;"&gt;Delay&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;предназначен для приостановки тестов до момент окончания загрузки страниц.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Создаем класс &lt;span style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;WebItem&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, который я упоминал выше.&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; WebItem&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ID;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ClassName;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; XPathQuery;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; WebItem(&lt;span class="kwrd"&gt;string&lt;/span&gt; ID, &lt;span class="kwrd"&gt;string&lt;/span&gt; ClassName, &lt;span class="kwrd"&gt;string&lt;/span&gt; XPathQuery)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.ID = ID;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.ClassName = ClassName;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.XPathQuery = XPathQuery;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Click()&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            TestFramework.FindWebElement(&lt;span class="kwrd"&gt;this&lt;/span&gt;).Click();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SetValue(&lt;span class="kwrd"&gt;string&lt;/span&gt; Value)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            TestFramework.FindWebElement(&lt;span class="kwrd"&gt;this&lt;/span&gt;).SendKeys(Value);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Как видим, это наш собственный класс, который предназначен для работы с элементами на веб-страницах.&lt;br /&gt;&lt;br /&gt;Класс содержит описание способа поиска нашего элемента, а также предоставляет нам возможность задать значение элемента и выполнить нажатие на элемент.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Создаем класс &lt;span style="color: #2b91af; font-family: Consolas; font-size: x-small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: x-small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: x-small;"&gt;&lt;span style="font-size: small;"&gt;LoginWebItems&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana;"&gt;, который будет содержать набор элементов для работы с формой логина.&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; LoginWebItems&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; WebItem LoginLink&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            get&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; WebItem(&lt;span class="str"&gt;"ctl00_Header1_TopHeader1_ExitLinkButton"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; WebItem UserNameTextBox&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            get&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; WebItem(&lt;span class="str"&gt;"ctl00_ContentPlaceHolder1_EMailTextBox"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; WebItem PasswordTextBox&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            get&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; WebItem(&lt;span class="str"&gt;"ctl00_ContentPlaceHolder1_PasswordTextBox"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; WebItem LoginButton&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;            get&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;            {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; WebItem(&lt;span class="str"&gt;"ctl00_ContentPlaceHolder1_LoginButton"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;            }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Как видим, класс содержит ссылки на следующие элементы – ссылку на страницу логина, текстовые поля для имени пользователя и пароля, а также непосредственно кнопку логина.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Создадим класс &lt;span style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;PagesActions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, который будет выполнять действия по открытию различных страниц нашего сайта. Он нужен нам для того, чтобы исключить жесткое упоминание ссылок в коде тестовых сценариев.&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; PagesActions&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OpenHomePage()&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            TestFramework.OpenURL(&lt;span class="str"&gt;"http://www.test.com/"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Теперь создадим класс &lt;span style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;LoginAction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, который будет нам реализовывать действия входа на сайт.&lt;br /&gt;&lt;br /&gt;Впоследствии это действие может быть использовано во многих &lt;b&gt;тест-кейсах&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; LoginAction&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DoLogin()&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            LoginWebItems.LoginLink.Click();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            LoginWebItems.UserNameTextBox.SetValue(&lt;span class="str"&gt;"test login"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            LoginWebItems.PasswordTextBox.SetValue(&lt;span class="str"&gt;"test password"&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            LoginWebItems.LoginButton.Click();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            TestFramework.Delay();&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;Как видим, наше действие описано простым языком, в понятных терминах и не содержит кода, зависимого от библиотеки, реализующей выполнение скриптов, т.е. от &lt;b&gt;Selenium&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ну и наконец мы создаем класс тест-кейса &lt;span style="color: #2b91af; font-family: Consolas; font-size: small;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;LoginTestCase&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, который реализует непосредственно тестирование входа на сайт&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; LoginTestCase&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DoTestCase()&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            PagesActions.OpenHomePage();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            LoginAction.DoLogin();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Таким образом, расширяя впоследствии наши классы, мы можем описывать новые элементы страниц и сами страницы.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Кроме того, мы можем создавать тестовые действия, непривязанные к конкретному инструменту запуска тестов и комбинировать из наших действий тестовые сценарии.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Затем, мы можем использовать наши сценарии в рамках или встроенного &lt;b&gt;unit-тестирования&lt;/b&gt; или для тестирования посредством собственного приложения.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Кроме того, мы можем также добавлять дополнительную функциональность для сохранения логов, отчетов, ошибок, замеры времени выполнения тестов и пр.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Мы можем также организовать автоматическое создание багов в &lt;b&gt;TFS&lt;/b&gt; – о том, как это сделать я писал в посте “&lt;a href="http://michaelsmirnov.blogspot.com/2010/10/work-item-tfs-team-foundation-server.html" target="_blank" title="Как создать work item в TFS (Team Foundation Server) из письма в Outlook"&gt;Как создать work item в TFS (Team Foundation Server) из письма в Outlook&lt;/a&gt;”&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;Другие мои посты на тему &lt;b&gt;Selenium&lt;/b&gt;: &lt;br /&gt;1. &lt;a href="http://michaelsmirnov.blogspot.com/2011/05/qtp-selenium.html"&gt;От QTP к Selenium&lt;/a&gt;&lt;br /&gt;2.&amp;nbsp;&lt;a href="http://michaelsmirnov.blogspot.com/2011/05/selenium-c-web-aspnet.html"&gt;Создание тестов для Selenium на C# для web-приложений на ASP.NET&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-4715871722576842493?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/4715871722576842493/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/05/selenium-c-web-aspnet.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/4715871722576842493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/4715871722576842493'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/05/selenium-c-web-aspnet.html' title='Создание тестов для Selenium на C# для web-приложений на ASP.NET'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-8861893644153235229</id><published>2011-05-23T10:57:00.001+04:00</published><updated>2011-05-30T14:39:41.120+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Selenium'/><category scheme='http://www.blogger.com/atom/ns#' term='Тестирование'/><title type='text'>От QTP к Selenium</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Последние несколько лет мы использовали &lt;b&gt;Mercury Quick Test Pro (QTP)&lt;/b&gt; для выполнения скриптов автоматизированного тестирования наших &lt;b&gt;web&lt;/b&gt;-приложений.&lt;br /&gt;&lt;br /&gt;В настоящий момент мы осуществляем переход к &lt;b&gt;Selenium&lt;/b&gt;. Именно &lt;b&gt;Selenium&lt;/b&gt; будет использоваться для выполнения скриптов регрессионного контроля.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Для нас &lt;b&gt;Selenium&lt;/b&gt; имеет целый ряд преимуществ по сравнению с &lt;b&gt;QTP&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;Selenium&lt;/b&gt; бесплатный. &lt;b&gt;QTP&lt;/b&gt; стоит очень дорого.&lt;br /&gt;&lt;br /&gt;2. &lt;b&gt;Selenium&lt;/b&gt; позволяет разрабатывать скрипты на том же языке программирования, на котором ведется основная разработка – &lt;b&gt;C#, Java&lt;/b&gt; и пр. Это избавляет от необходимости изучать еще один язык программирования для разработки тестовых сценариев. Благодаря этому, разработчики могут при случае легко вносить изменения в тестовые сценарии, а тестировщики избавлены от необходимости переучиваться, при переходе в разработчики.&lt;br /&gt;&lt;br /&gt;3. Так как разработка тестовых скриптов ведется в той же среде, что и основная разработка, скрипты &lt;b&gt;Selenium&lt;/b&gt; могут использовать библиотеки тестируемого приложения в своих тестах – например, библиотеки бизнес-логики и пр.&lt;br /&gt;&lt;br /&gt;4. Тестовые скрипты &lt;b&gt;Selenium&lt;/b&gt; можно включать в наборы &lt;b&gt;unit-тестов&lt;/b&gt; тестируемого приложения.&lt;br /&gt;&lt;br /&gt;5. Разрабатывая тестовые скрипты на &lt;b&gt;Selenium&lt;/b&gt; можно создавать дополнительную функциональность, которая требуется в данном конкретном случае – свой логгинг, свою отчетность, замеры времени тестирования и т.п.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Есть, конечно, и некоторые сложности во внедрении &lt;b&gt;Selenium&lt;/b&gt; (куда же без них?):&lt;br /&gt;&lt;br /&gt;1. Очень бедная документация.&lt;br /&gt;&lt;br /&gt;2. Более высокие требования к опыту тестировщиков в плане умений программировать.&lt;br /&gt;&lt;br /&gt;3. Полное отсутствие инструментария разработки.&lt;br /&gt;&lt;br /&gt;4. Отсутствие возможности тестировать &lt;b&gt;Windows&lt;/b&gt;-приложения. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Selenium&lt;/b&gt; продукт не новый, но поскольку мы его только осваиваем, в ближайшее время я планирую написать также заметку о том, как вести разработку тестовых скриптов для &lt;b&gt;Selenium&lt;/b&gt; на &lt;b&gt;C#&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;P.S.&lt;br /&gt;Другие мои посты на тему &lt;b&gt;Selenium&lt;/b&gt;: &lt;br /&gt;1. &lt;a href="http://michaelsmirnov.blogspot.com/2011/05/qtp-selenium.html"&gt;От QTP к Selenium&lt;/a&gt;&lt;br /&gt;2.&amp;nbsp;&lt;a href="http://michaelsmirnov.blogspot.com/2011/05/selenium-c-web-aspnet.html"&gt;Создание тестов для Selenium на C# для web-приложений на ASP.NET&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-8861893644153235229?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/8861893644153235229/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/05/qtp-selenium.html#comment-form' title='Комментарии: 13'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/8861893644153235229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/8861893644153235229'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/05/qtp-selenium.html' title='От QTP к Selenium'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-5253830775555661912</id><published>2011-05-10T17:10:00.001+04:00</published><updated>2011-05-11T10:49:34.073+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><category scheme='http://www.blogger.com/atom/ns#' term='Мотивация'/><title type='text'>Заметка о мотивации</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Пару лет назад я собирал информацию о теории &lt;b&gt;мотивации&lt;/b&gt; в ИТ и не только, а также о практических примерах внедрения различных систем &lt;b&gt;мотивации&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Целью данного исследования было, если возможно, перенять накопленный опыт и применить его в наших условиях.&lt;br /&gt;&lt;br /&gt;К сожалению особых результатов, кроме расширения собственного кругозора, это не принесло. Однако сейчас речь не об этом.&lt;br /&gt;&lt;br /&gt;С той поры мне всегда интересно послушать про практические примеры внедрения различных систем &lt;b&gt;мотивации&lt;/b&gt; в реально работающих коллективах. Особенно мне интересно, если эта система базируется на каких-либо числовых &lt;b&gt;KPI&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;И сегодня один мой коллега, имени которого я не называю, рассказал мне о той системе &lt;b&gt;мотивации&lt;/b&gt;, которая принята в их ИТ-подразделении.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Суть системы такова: зарплата программистов складывается из двух часть: &lt;b&gt;оклад + премия&lt;/b&gt; (50% от оклада).&lt;br /&gt;&lt;br /&gt;Для каждой задачи ставится срок ее сдачи. Если программист не сдает задачу во время, то от премии &lt;b&gt;всего ИТ-отдела&lt;/b&gt;, во главе с начальником, &lt;b&gt;вычитается 1% за каждый день просрочки&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Если после сдачи задачи в ней будут найдены баги, то аналогично: &lt;b&gt;минус 1% за каждый баг&lt;/b&gt; со &lt;b&gt;всего ИТ-отдела&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Как говорит коллега, такого, чтобы отдел получил 100% премии, &lt;b&gt;не было еще ни разу&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Интересная система &lt;b&gt;мотивации&lt;/b&gt;, не находите?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-5253830775555661912?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/5253830775555661912/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/05/blog-post.html#comment-form' title='Комментарии: 13'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/5253830775555661912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/5253830775555661912'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/05/blog-post.html' title='Заметка о мотивации'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-3455540014181848548</id><published>2011-04-18T10:40:00.001+04:00</published><updated>2011-04-18T10:40:32.303+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><title type='text'>Водопад жив…</title><content type='html'>&lt;p&gt;Недавно я с удивлением узнал, что не смотря на накопленный за последние десятилетия опыт в разработки программного обеспечения и большое количество написанной литературы, &lt;strong&gt;водопад&lt;/strong&gt; (&lt;strong&gt;Waterfall&lt;/strong&gt;) по-прежнему применяется, и причем даже в интернет-проектах.&lt;/p&gt;  &lt;p&gt;Причем &lt;strong&gt;водопад&lt;/strong&gt; именно в своем классическом понимании – с длинным циклом разработки, последовательными переходами между фазами, фиксацией требований, кода и пр.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-3455540014181848548?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/3455540014181848548/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/04/blog-post_18.html#comment-form' title='Комментарии: 52'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/3455540014181848548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/3455540014181848548'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/04/blog-post_18.html' title='Водопад жив…'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>52</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-4768297543576386094</id><published>2011-04-11T12:46:00.000+04:00</published><updated>2011-04-11T12:46:07.610+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><title type='text'>Где разместить тестовое окружение?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Некоторое время назад мы рассматривали вопрос о размещении тестового окружения.&lt;br /&gt;&lt;br /&gt;Изначально, тестовое окружение у нас располагалось рядом с рабочим – т.е. удаленно у нашего &lt;b&gt;ISP&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Схематично это выглядело так:&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_sZt9ktn2r1g/TaK_IIquAoI/AAAAAAAAAS0/q5R82Mjo3ok/s1600-h/image%5B3%5D.png"&gt;&lt;img alt="image" border="0" height="374" src="http://lh3.ggpht.com/_sZt9ktn2r1g/TaK_JHDIPXI/AAAAAAAAAS4/ghNhnzmn_eE/image_thumb%5B1%5D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Как видно на схеме, разработка происходила локально, затем происходило периодическое обновление тестовой системы, где выполнялись все тесты. И, в конце концов, происходило обновление рабочих систем.&lt;br /&gt;&lt;br /&gt;Это дает максимальную приближенность тестовой системы к рабочим условиям: быстрый доступ к сторонним поставщикам данных, схожая конфигурация железа и пр.    &lt;br /&gt;&lt;br /&gt;Однако, такой подход не был лишен и недостатков: он замедлял процесс тестирования и весь процесс разработки.&lt;br /&gt;&lt;br /&gt;Происходило это по нескольким причинам:   &lt;br /&gt;1. Тратилось очень длительное на время на сравнение &lt;b&gt;схем&lt;/b&gt; всех &lt;b&gt;баз данных&lt;/b&gt; – около двух часов.    &lt;br /&gt;Происходило это потому, что схемы были довольно большие и баз было несколько. Поэтому, приходилось скачивать локально большое количество &lt;b&gt;DDL-скриптов&lt;/b&gt;.    &lt;br /&gt;2. Очень медленно работало &lt;b&gt;регрессионное тестирование&lt;/b&gt; веб-интерфейса. Из-за низкой скорости доступа через интернет на выполнение всех автоматизированных скриптов, которые выполнят все &lt;b&gt;варианты тестирования&lt;/b&gt; требовалось около 2-х суток. Конечно, варианты тестирования можно запускать параллельно, но это не решает проблему кардинально.    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Было решено перенести тестовое окружение локально, т.е. получить в итоге следующую схему работы:&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_sZt9ktn2r1g/TaK_Jjt8nqI/AAAAAAAAAS8/pdsP_hkO0iQ/s1600-h/image%5B7%5D.png"&gt;&lt;img alt="image" border="0" height="374" src="http://lh3.ggpht.com/_sZt9ktn2r1g/TaK_KtqqgFI/AAAAAAAAATA/axAQjFPX98g/image_thumb%5B3%5D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Это должно в разы ускорить выполнение скриптов &lt;b&gt;регрессионного тестирования&lt;/b&gt; &lt;b&gt;веб-интерфейса&lt;/b&gt; и ускорить частый процесс обновления тестовой системы и, в конечном итоге, ускорить процесс разработки как таковой.&lt;br /&gt;&lt;br /&gt;При таком подходе, правда, тоже есть подводные камни: в частности не так явно видны проблемы передачи больших объемов данных через интернет – &lt;b&gt;“тяжелый” HTML&lt;/b&gt; или большие данные веб-форм и т.п.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-4768297543576386094?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/4768297543576386094/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/04/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/4768297543576386094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/4768297543576386094'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/04/blog-post.html' title='Где разместить тестовое окружение?'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_sZt9ktn2r1g/TaK_JHDIPXI/AAAAAAAAAS4/ghNhnzmn_eE/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-1114795871349898796</id><published>2011-03-11T17:13:00.000+03:00</published><updated>2011-03-11T17:13:44.689+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Разное'/><title type='text'>Индийский код</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Некоторое время назад мне пришлось столкнуться с достаточно большим объемом кода, написанного индийскими товарищами.&lt;br /&gt;&lt;br /&gt;Это был мой первый опыт и, к сожалению, впечатление у меня сложилось не самое лучшее.&lt;br /&gt;&lt;br /&gt;Я вовсе не хочу сказать, что весь код, который создают индусы, имеет столь серьезные недостатки, так как другого индийского кода я еще не встречал. Однако, огорчает то, что не смотря на явные проблемы в программировании, авторы такого кода имеют достаточный успех на западе.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;А теперь конкретные замечания по коду:&lt;br /&gt;1. Очень большой объем дублирования кода. Видно, что &lt;b&gt;Copy-Paste&lt;/b&gt; используется очень активно.    &lt;br /&gt;Идентичные куски кода повторяются и не выделяются в отдельные функции.&lt;br /&gt;&lt;br /&gt;2. Очень длинные многостраничные методы. Отсутствует разбиение на мелкие методы.&lt;br /&gt;&lt;br /&gt;3. Использование условий вместо наследований. Т.е. например, вместо того, чтобы создать несколько наследников базового класса, у которого имеется одноименный метод, реализующий различные виды одного алгоритма, создается один метод, поведение которого меняется множеством последовательных повторяющих условий в его теле.   &lt;br /&gt;Из-за этого код становиться трудно-расширяемым.&lt;br /&gt;&lt;br /&gt;4. Размытие слоев приложения – например, &lt;b&gt;SQL-&lt;/b&gt;код генерируется во всех слоях приложения, вплоть до &lt;b&gt;JavaScript&lt;/b&gt;’а, исполняемого в браузере.&lt;br /&gt;&lt;br /&gt;5. Активное использование именований переменных, при котором первым символом обозначается тип переменной. Например, &lt;b&gt;int iID&lt;/b&gt; или &lt;b&gt;string sName&lt;/b&gt;. На мой взгляд очень неудобно.&lt;br /&gt;&lt;br /&gt;6. Слабое понятие о &lt;b&gt;нормализации баз данных&lt;/b&gt;. Большое количество дублирования данных в БД.&lt;br /&gt;&lt;br /&gt;7. Именование всех полей в базах данных в верхнем регистре. Например, &lt;b&gt;AUTHOR_NAME&lt;/b&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-1114795871349898796?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/1114795871349898796/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/03/blog-post.html#comment-form' title='Комментарии: 12'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/1114795871349898796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/1114795871349898796'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/03/blog-post.html' title='Индийский код'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-8076586681798570269</id><published>2011-02-24T14:17:00.001+03:00</published><updated>2011-02-24T14:17:15.275+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><title type='text'>Изменение количества строк кода с течением времени</title><content type='html'>&lt;p&gt;Некоторое время назад решено было посмотреть график изменения &lt;strong&gt;общего количества строк кода &lt;/strong&gt;в проекте с течением времени.&lt;/p&gt;  &lt;p&gt;При этом был получен следующий график:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_sZt9ktn2r1g/TWY-OI_x2wI/AAAAAAAAAJ8/IoSZsCLj8Sw/s1600-h/image%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_sZt9ktn2r1g/TWY-OgeOLgI/AAAAAAAAAKA/aqI3ga2O5eQ/image_thumb%5B1%5D.png?imgmax=800" width="590" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Здесь четко видна фаза начала работы над проектом, проектирование и последующая работа по развитию проекта.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-8076586681798570269?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/8076586681798570269/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/02/blog-post_24.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/8076586681798570269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/8076586681798570269'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/02/blog-post_24.html' title='Изменение количества строк кода с течением времени'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_sZt9ktn2r1g/TWY-OgeOLgI/AAAAAAAAAKA/aqI3ga2O5eQ/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-6478142037405715112</id><published>2011-02-02T17:32:00.001+03:00</published><updated>2011-02-02T18:09:14.713+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><category scheme='http://www.blogger.com/atom/ns#' term='RUP'/><title type='text'>Шаблоны некоторых документов для разработки проектов</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Несколько лет назад я сформировал набор шаблонов документов, которые можно использовать в повседневной деятельности при работе над проектами по разработке программного обеспечения.&lt;br /&gt;&lt;br /&gt;Все эти шаблоны я либо использовал раньше в своей работе, либо использую сейчас.&lt;br /&gt;Эти шаблоны документов были сформированы с использованием шаблонов &lt;strong&gt;RUP (Rational Unified Process)&lt;/strong&gt;, а также при анализе различного рода интернет-источников и литературы.&lt;br /&gt;&lt;br /&gt;Наиболее интересные из этих шаблонов я решил поместить в открытый доступ. &lt;br /&gt;&lt;br /&gt;Шаблоны доступны по следующей ссылке &lt;a href="http://www.msmirnov.ru/public/pm_doc_templates.zip"&gt;http://www.msmirnov.ru/public/pm_doc_templates.zip&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Данный набор содержит следующие шаблоны документов:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Документ проекта&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;План осуществимости&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Концепция&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Общее описание архитектуры&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Общий план тестирования&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Список основных рисков&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;План проекта&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Документ описания архитектуры&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;План итерации&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;P.S. Описание структуры самого производственного процесса (это тоже своего рода шаблон производственного процесса) приведен в посте "&lt;a href="http://michaelsmirnov.blogspot.com/2010/05/my-process-roadmap.html"&gt;Схема и шаблон производственного процесса&lt;/a&gt;"&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-6478142037405715112?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/6478142037405715112/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/02/blog-post.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/6478142037405715112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/6478142037405715112'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/02/blog-post.html' title='Шаблоны некоторых документов для разработки проектов'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-8350275799732936607</id><published>2011-01-13T10:17:00.001+03:00</published><updated>2011-06-14T17:07:15.528+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Стандарты и правила оформления кода C# и T-SQL</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Последнее время меня несколько раз спрашивали относительно &lt;b&gt;стандартов и правил&lt;/b&gt; оформления кода на &lt;b&gt;C#&lt;/b&gt; и &lt;b&gt;T-SQL&lt;/b&gt; , поэтому я решил выложить их в открытый доступ.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Стандарты и правила&lt;/b&gt; доступны по следующим ссылкам на моем сайте:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Стандарт оформления кода &lt;b&gt;C#&lt;/b&gt;: &lt;a href="http://www.msmirnov.ru/public/CSharp_Coding_Standards.doc"&gt;http://www.msmirnov.ru/public/CSharp_Coding_Standards.doc&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Стандарт оформления кода &lt;b&gt;T-SQL&lt;/b&gt;: &lt;a href="http://www.msmirnov.ru/public/TSQL_Coding_Standards.doc"&gt;http://www.msmirnov.ru/public/TSQL_Coding_Standards.doc&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-8350275799732936607?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/8350275799732936607/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/01/c-t-sql.html#comment-form' title='Комментарии: 15'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/8350275799732936607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/8350275799732936607'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/01/c-t-sql.html' title='Стандарты и правила оформления кода C# и T-SQL'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-3608308712171524640</id><published>2011-01-12T15:51:00.005+03:00</published><updated>2011-07-14T16:57:25.223+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><title type='text'>Стандарты и правила оформления кода C#</title><content type='html'>Последнее время меня несколько раз спрашивали относительно &lt;b&gt;стандартов и правил&lt;/b&gt; оформления кода C#, поэтому я решил выложить их в открытый доступ.&lt;br /&gt;&lt;br /&gt;Для загрузки &lt;b&gt;Стандарты и правила&lt;/b&gt; доступны по следующей ссылке на моем сайте: &lt;a href="http://www.msmirnov.ru/public/TSQL_Coding_Standards.doc"&gt;http://www.msmirnov.ru/public/TSQL_Coding_Standards.doc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Либо с ними можно ознакомиться прямо здесь.&lt;br /&gt;&lt;style type="text/css"&gt;&lt;!--body {  margin: 5px 5px 5px 5px;  background-color: #ffffff;}/* ========== Text Styles ========== */hr { color: #000000}body, table, span.rvts0 /* Normal text */{ font-size: 10pt; font-family: 'Arial', 'Helvetica', sans-serif; font-style: normal; font-weight: normal; color: #000000; text-decoration: none;}span.rvts1 /* Heading */{ font-weight: bold; color: #0000ff;}span.rvts2 /* Subheading */{ font-weight: bold; color: #000080;}span.rvts3 /* Keywords */{ font-style: italic; color: #800000;}a.rvts4, span.rvts4 /* Jump 1 */{ color: #008000; text-decoration: underline;}a.rvts5, span.rvts5 /* Jump 2 */{ color: #008000; text-decoration: underline;}span.rvts6{ font-size: 11pt; font-family: 'calibri';}span.rvts7{ font-size: 11pt; font-family: 'calibri'; font-weight: bold;}span.rvts8{ font-size: 28pt; font-weight: bold;}span.rvts9{ font-size: 16pt;}span.rvts10{ font-size: 11pt; font-family: 'calibri'; color: #c0c0c0;}a.rvts11, span.rvts11{ font-size: 11pt; font-family: 'calibri'; color: #0000ff; text-decoration: underline;}span.rvts12{ font-size: 18pt; font-family: 'calibri'; font-weight: bold;}span.rvts13{ font-size: 11pt; font-family: 'calibri';}span.rvts14{ font-size: 11pt; font-family: 'calibri'; font-style: italic;}span.rvts15{ font-size: 11pt; font-family: 'calibri'; font-style: italic; font-weight: bold;}span.rvts16{ font-size: 14pt; font-family: 'calibri'; font-weight: bold;}span.rvts17{ font-size: 11pt; font-family: 'calibri'; font-style: italic;}span.rvts18{ font-size: 14pt; font-family: 'calibri'; font-weight: bold;}span.rvts19{ font-size: 18pt; font-family: 'calibri'; font-weight: bold;}/* ========== Para Styles ========== */p,ul,ol /* Paragraph Style */{ text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px;}.rvps1 /* Centered */{ text-align: center;}.rvps2{ margin: 0px 0px 0px 24px;}.rvps3{ text-align: right; margin: 0px 0px 0px 24px;}.rvps4{ text-align: left; text-indent: 0px; page-break-after: avoid; padding: 0px 0px 0px 0px; margin: 16px 0px 4px 0px;}.rvps5{ text-align: justify;}.rvps6{ text-align: justify; text-indent: 47px;}.rvps7{ text-align: justify; text-indent: 47px;}.rvps8{ text-align: justify; text-indent: -24px; margin: 0px 0px 0px 95px;}.rvps9{ text-align: justify; margin: 0px 0px 0px 71px;}.rvps10{ text-align: justify; text-indent: -24px; margin: 0px 0px 0px 95px;}.rvps11{ text-align: justify; text-indent: -24px; margin: 0px 0px 0px 48px;}.rvps12{ text-align: justify; margin: 0px 0px 0px 24px;}.rvps13{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps14{ text-align: justify; text-indent: 46px; margin: 0px 0px 0px 48px;}.rvps15{ text-align: justify; margin: 0px 0px 0px 48px;}.rvps16{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps17{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps18{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps19{ text-align: left; text-indent: 0px; page-break-after: avoid; padding: 0px 0px 0px 0px; margin: 16px 0px 4px 0px;}.rvps20{ text-align: justify; text-indent: 23px; margin: 0px 0px 0px 24px;}.rvps21{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps22{ text-align: justify; text-indent: 23px; margin: 0px 0px 0px 24px;}.rvps23{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps24{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps25{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps26{ text-align: justify; text-indent: 46px; margin: 0px 0px 0px 48px;}.rvps27{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps28{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps29{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps30{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps31{ text-align: justify; text-indent: 47px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps32{ text-align: justify; text-indent: 47px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps33{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps34{ text-align: justify; margin: 0px 0px 0px 47px;}.rvps35{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps36{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps37{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps38{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps39{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps40{ text-align: justify; text-indent: 46px; margin: 0px 0px 0px 48px;}.rvps41{ text-indent: 47px;}.rvps42{ text-indent: 47px;}.rvps43{ text-indent: 47px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px;}.rvps44{ text-align: justify; text-indent: 47px;}.rvps45{ text-align: justify; text-indent: 47px;}.rvps46{ text-align: justify; text-indent: 47px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px;}.rvps47{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps48{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps49{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps50{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps51{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps52{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps53{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps54{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps55{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps56{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps57{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps58{ text-align: justify; text-indent: 47px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps59{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps60{ text-align: justify; margin: 0px 0px 0px 47px;}.rvps61{ text-align: justify; margin: 0px 0px 0px 47px;}.rvps62{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps63{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps64{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps65{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps66{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps67{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps68{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps69{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps70{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps71{ text-indent: -24px; margin: 0px 0px 0px 48px;}.rvps72{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps73{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps74{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps75{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps76{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps77{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps78{ text-indent: 47px;}.rvps79{ text-indent: 47px;}.rvps80{ text-indent: 47px;}.rvps81{ text-indent: 47px;}.rvps82{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps83{ text-align: justify; margin: 0px 0px 0px 47px;}.rvps84{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps85{ text-align: justify; text-indent: 1px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps86{ text-align: justify; text-indent: 1px; margin: 0px 0px 0px 47px;}.rvps87{ text-align: justify; text-indent: 1px; margin: 0px 0px 0px 47px;}.rvps88{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps89{ text-align: justify; text-indent: 1px; margin: 0px 0px 0px 47px;}.rvps90{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps91{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps92{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps93{ margin: 0px 0px 0px 48px;}.rvps94{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps95{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps96{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps97{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps98{ text-align: justify; text-indent: 46px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps99{ margin: 0px 0px 0px 47px;}.rvps100{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps101{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps102{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps103{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps104{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps105{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps106{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps107{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps108{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps109{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps110{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps111{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps112{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps113{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps114{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 41px;}.rvps115{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps116{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps117{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps118{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps119{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps120{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps121{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps122{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps123{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps124{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps125{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps126{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps127{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps128{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps129{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps130{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps131{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps132{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps133{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps134{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps135{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps136{ border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px;}.rvps137{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps138{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps139{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps140{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps141{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps142{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps143{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps144{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps145{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps146{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps147{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps148{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps149{ text-indent: -24px; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 18px;}.rvps150{}--&gt;&lt;/style&gt;&lt;br /&gt;&lt;span class="rvts6"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div class="rvps1"&gt;&lt;span class="rvts7"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps1"&gt;&lt;span class="rvts7"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps1"&gt;&lt;span class="rvts7"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps1"&gt;&lt;span class="rvts8"&gt;Стандарт оформления кода C#&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps3"&gt;&lt;span class="rvts10"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701203"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Цель документа&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts6"&gt;Документ является соглашением по оформлению и написанию кода на языке C#. В документе приведены основные правила оформления кода и приемы, используемые при написании программ. &lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps6"&gt;&lt;span class="rvts6"&gt;Цели документа: &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps7"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 95px; text-indent: 0px;"&gt;&lt;li class="rvps8" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;предоставить общие правила, позволяющие сохранить единый стиль написания кода, облегчив тем самым его понимание всеми участниками команды; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps9"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 95px; text-indent: 0px;"&gt;&lt;li class="rvps10" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;ввести базовые правила написания программ, что позволит повысить предсказуемость выполнения программ, а также избежать ошибок при написании программ новыми участниками команды, не знакомыми с внутренними стандартами разработки.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701204"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Стили именования&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts7"&gt;Pascal case&lt;/span&gt;&lt;span class="rvts6"&gt; &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; первая буква каждого слова в имени идентификатора начинается с верхнего регистра. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps13"&gt;&lt;span class="rvts14"&gt;Пример: &lt;/span&gt;&lt;span class="rvts15"&gt;T&lt;/span&gt;&lt;span class="rvts14"&gt;heCategory;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps14"&gt;&lt;span class="rvts14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts7"&gt;Camel case&lt;/span&gt;&lt;span class="rvts6"&gt; &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; первая буква первого слова в идентификаторе в нижнем регистре, все первые буквы последующих слов &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; в верхнем. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps16"&gt;&lt;span class="rvts14"&gt;Пример: &lt;/span&gt;&lt;span class="rvts15"&gt;t&lt;/span&gt;&lt;span class="rvts14"&gt;heCategory;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts7"&gt;UpperCase&lt;/span&gt;&lt;span class="rvts6"&gt; &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; стиль используется только для сокращений, все буквы в имени идентификатора в верхнем регистре. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps17"&gt;&lt;span class="rvts14"&gt;Пример: &lt;/span&gt;&lt;span class="rvts15"&gt;ID&lt;/span&gt;&lt;span class="rvts14"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts7"&gt;Hungarian notation&lt;/span&gt;&lt;span class="rvts6"&gt; &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; перед именем идентификатора пишется его тип в сокращенной форме. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps18"&gt;&lt;span class="rvts14"&gt;Пример:&lt;/span&gt;&lt;span class="rvts15"&gt; str&lt;/span&gt;&lt;span class="rvts14"&gt;FirstName, &lt;/span&gt;&lt;span class="rvts15"&gt;i&lt;/span&gt;&lt;span class="rvts14"&gt;CurrentYear.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701205"&gt;&lt;/a&gt; &lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Правила именования идентификаторов&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170623706"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Общие правила именования идентификаторов&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При именовании идентификаторов не используются аббревиатуры или сокращения, если только они не являются общепринятыми. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps20"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps21"&gt;&lt;span class="rvts14"&gt;Пример: Get&lt;/span&gt;&lt;span class="rvts15"&gt;Window&lt;/span&gt;&lt;span class="rvts14"&gt;(), а не Get&lt;/span&gt;&lt;span class="rvts15"&gt;Win&lt;/span&gt;&lt;span class="rvts14"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps22"&gt;&lt;span class="rvts14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Если имя идентификатора включает в себя сокращение &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; сокращение пишется в &lt;/span&gt;&lt;span class="rvts7"&gt;upper case&lt;/span&gt;&lt;span class="rvts6"&gt;. Исключение - когда имя идентификатора должно быть указано в &lt;/span&gt;&lt;span class="rvts7"&gt;camel case&lt;/span&gt;&lt;span class="rvts6"&gt; и сокращение стоит в начале имени идентификатора. В этом случае сокращение пишется в нижнем регистре.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps23"&gt;&lt;span class="rvts14"&gt;Пример:&lt;/span&gt;&lt;span class="rvts15"&gt;&lt;br /&gt;PPC&lt;/span&gt;&lt;span class="rvts14"&gt;Account (PPC &lt;/span&gt;&lt;span class="rvts17"&gt;–&lt;/span&gt;&lt;span class="rvts14"&gt; сокращение от pay per click) для pascal case,&lt;/span&gt;&lt;span class="rvts15"&gt;&lt;br /&gt;ppc&lt;/span&gt;&lt;span class="rvts14"&gt;Account для camel case.&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps26"&gt;&lt;span class="rvts14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701207"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Использование верхнего и нижнего регистра в именах&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Запрещается создавать два различных &lt;/span&gt;&lt;span class="rvts7"&gt;namespace&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а, функции, типа или свойства с одинаковыми именами, отличающиеся только регистром. Запрещается создавать функции с именами параметров, отличающимися только регистром. Ниже приведены примеры &lt;/span&gt;&lt;span class="rvts7"&gt;НЕправильных&lt;/span&gt;&lt;span class="rvts6"&gt; названий.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps27"&gt;&lt;span class="rvts14"&gt;Пример: &lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Keyword&lt;/span&gt;&lt;span class="rvts15"&gt;M&lt;/span&gt;&lt;span class="rvts14"&gt;anager и Keyword&lt;/span&gt;&lt;span class="rvts15"&gt;m&lt;/span&gt;&lt;span class="rvts14"&gt;anager;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KeywordManager.&lt;/span&gt;&lt;span class="rvts15"&gt;Keyword&lt;/span&gt;&lt;span class="rvts14"&gt; и KeywordManager.&lt;/span&gt;&lt;span class="rvts15"&gt;KEYWORD&lt;/span&gt;&lt;span class="rvts14"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int &lt;/span&gt;&lt;span class="rvts15"&gt;id&lt;/span&gt;&lt;span class="rvts14"&gt; {get, set} и int &lt;/span&gt;&lt;span class="rvts15"&gt;ID&lt;/span&gt;&lt;span class="rvts14"&gt; {get, set};&lt;/span&gt;&lt;span class="rvts15"&gt;&lt;br /&gt;&lt;br /&gt;f&lt;/span&gt;&lt;span class="rvts14"&gt;indByID(int id) и &lt;/span&gt;&lt;span class="rvts15"&gt;F&lt;/span&gt;&lt;span class="rvts14"&gt;indByID(int id);&lt;br /&gt;void MyFunction(string &lt;/span&gt;&lt;span class="rvts15"&gt;s&lt;/span&gt;&lt;span class="rvts14"&gt;, string &lt;/span&gt;&lt;span class="rvts15"&gt;S&lt;/span&gt;&lt;span class="rvts14"&gt;).&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701208"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования классов&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Следует избегать имен классов, совпадающих с именами классов &lt;/span&gt;&lt;span class="rvts7"&gt;.NET Framework&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для классов используется стиль именования &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для классов, унаследованных от &lt;/span&gt;&lt;span class="rvts7"&gt;CollectionBase&lt;/span&gt;&lt;span class="rvts6"&gt; используется суффикс &lt;/span&gt;&lt;span class="rvts7"&gt;Collection&lt;/span&gt;&lt;span class="rvts6"&gt;, перед которым указывается тип объектов, для которых используется коллекция.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps33"&gt;&lt;span class="rvts14"&gt;Пример: UserCollection, CompanyCollection;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В качестве имен классов используются имена существительные;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Имя класса не должно совпадать с именем &lt;/span&gt;&lt;span class="rvts7"&gt;namespace&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="rvps34"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps35"&gt;&lt;span class="rvts14"&gt;Пример: namespace Debugging, класс Debug;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Если класс представляет собой сущность, хранимую в базе данных &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; имя класса соответствует имени таблицы. В этом случае имя класса &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; это название сущности в единственном числе, имя таблицы &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; во множественном числе.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps36"&gt;&lt;span class="rvts14"&gt;Пример: таблица User&lt;/span&gt;&lt;span class="rvts15"&gt;s&lt;/span&gt;&lt;span class="rvts14"&gt;, класс User;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При создании классов потомков их имена состоят из имени базового класса и суффикса класса потомка, если суффиксов несколько &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; они разделяются символом подчеркивания.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps37"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;базовый класс Figure,&lt;br /&gt;потомок Figure&lt;/span&gt;&lt;span class="rvts15"&gt;Circle&lt;/span&gt;&lt;span class="rvts14"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps40"&gt;&lt;span class="rvts14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Имена файлов, в которых находятся классы, совпадают с именами классов. Для именования файлов используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701209"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования интерфейсов&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts6"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="rvps41"&gt;&lt;span class="rvts6"&gt;Имена интерфейсов начинаются с буквы I, после которой следует название интерфейса в &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps42"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps43"&gt;&lt;span class="rvts14"&gt;Пример: &lt;/span&gt;&lt;span class="rvts15"&gt;I&lt;/span&gt;&lt;span class="rvts14"&gt;Disposable.&lt;/span&gt;&lt;/div&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701210"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования generic&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts18"&gt;’&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;ов&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="rvps44"&gt;&lt;span class="rvts6"&gt;Generic&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;и обозначаются буквой T, если generic&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов несколько их имена начинаются с буквы T.&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps45"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps46"&gt;&lt;span class="rvts14"&gt;Пример: GetItems&amp;lt;&lt;/span&gt;&lt;span class="rvts15"&gt;T&lt;/span&gt;&lt;span class="rvts14"&gt;&amp;gt;(int parentID)&lt;/span&gt;&lt;/div&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701211"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования функций&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для именования функций используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Функции объявляются согласно следующему шаблону:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&amp;lt;Модификатор доступа&amp;gt; [Другие модификаторы] &amp;lt;Тип&amp;gt; &amp;lt;Название функции&amp;gt;();&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps47"&gt;&lt;span class="rvts14"&gt;Пример: protected abstract void HelloWorld();&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Имена функций должны давать четкое представление о том, какое действие эта функция выполняет. Имя функции начинается с глагола, указывающего на то, какое действие она выполняет;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Большие функции, не умещающиеся на одном экране, делятся на несколько &lt;/span&gt;&lt;span class="rvts7"&gt;private&lt;/span&gt;&lt;span class="rvts6"&gt; функций меньшего размера, имена таких вспомогательных функций состоят из имени основной (большой) функции и существительного, глагола или фразы, которые уточняют действие вспомогательной функций, разделенные подчеркиванием. Основная и вспомогательная функции объединяются в регионы. Вспомогательные функции вызываются только из основной функции.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps48"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;основная функция &lt;/span&gt;&lt;span class="rvts17"&gt;–&lt;/span&gt;&lt;span class="rvts14"&gt; &lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt;CheckProduct, &lt;br /&gt;вспомогательные функции &lt;/span&gt;&lt;span class="rvts17"&gt;–&lt;/span&gt;&lt;span class="rvts14"&gt; &lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt;CheckProduct&lt;/span&gt;&lt;span class="rvts15"&gt;_Price&lt;/span&gt;&lt;span class="rvts14"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckProduct_&lt;/span&gt;&lt;span class="rvts15"&gt;Url&lt;/span&gt;&lt;span class="rvts14"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckProduct&lt;/span&gt;&lt;span class="rvts15"&gt;_SearchTerm&lt;/span&gt;&lt;span class="rvts14"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701212"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования параметров функций&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для именования параметров используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;camel case&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Имена параметров должны давать четкое представление о том для чего используется параметр, и какое значение следует передать при вызове функции.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps54"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;public void EncodeString(string &lt;/span&gt;&lt;span class="rvts15"&gt;sourceString&lt;/span&gt;&lt;span class="rvts14"&gt;, ref string &lt;/span&gt;&lt;span class="rvts15"&gt;encodedString&lt;/span&gt;&lt;span class="rvts14"&gt;),&lt;br /&gt;а &lt;/span&gt;&lt;span class="rvts15"&gt;не&lt;/span&gt;&lt;span class="rvts14"&gt; public void EncodeString(string &lt;/span&gt;&lt;span class="rvts15"&gt;string1&lt;/span&gt;&lt;span class="rvts14"&gt;, ref string &lt;/span&gt;&lt;span class="rvts15"&gt;string2&lt;/span&gt;&lt;span class="rvts14"&gt;).&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В том случае, когда это не препятствует понимаю кода, в качестве имени параметра функции используется имя соответствующего параметру класса. Для коллекций и массивов используется имя объектов, содержащихся в коллекции или массиве.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps57"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;UserFactory.Create(Company &lt;/span&gt;&lt;span class="rvts15"&gt;company&lt;/span&gt;&lt;span class="rvts14"&gt;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts14"&gt;CheckUsers(UserCollection &lt;/span&gt;&lt;span class="rvts15"&gt;users&lt;/span&gt;&lt;span class="rvts14"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Имена параметров не должны совпадать с именами членов класса, если этого не удается избежать, то для разрешения конфликтов используется ключевое слово &lt;/span&gt;&lt;span class="rvts7"&gt;this&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps60"&gt;&lt;span class="rvts6"&gt;Пример:&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps61"&gt;&lt;span class="rvts6"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps62"&gt;&lt;span class="rvts6"&gt;public void CreateUser(string firstName, string lastName)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts7"&gt;this&lt;/span&gt;&lt;span class="rvts6"&gt;.firstName&amp;nbsp; = firstName;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts7"&gt;this&lt;/span&gt;&lt;span class="rvts6"&gt;.lastName = lastName;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В именах параметров не используется венгерская нотация.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701213"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования свойств&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для именования свойств используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Свойства объявляются согласно следующему шаблону:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&amp;lt;Модификатор доступа&amp;gt; [Другие модификаторы] &amp;lt;Тип&amp;gt; &amp;lt;Название свойства&amp;gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps67"&gt;&lt;span class="rvts14"&gt;Пример: public static User CurrentUser&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt;{ get; }&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В том случае, когда это не препятствует понимаю кода, в качестве имени свойства используется имя соответствующего свойству класса. Для коллекций и массивов используется имя объектов, содержащихся в коллекции или массиве.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps68"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;public User User { get; set; }&lt;br /&gt;public UserCollection User&lt;/span&gt;&lt;span class="rvts15"&gt;s&lt;/span&gt;&lt;span class="rvts14"&gt;&amp;nbsp; { get; set; }&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Название свойства типа &lt;/span&gt;&lt;span class="rvts7"&gt;bool&lt;/span&gt;&lt;span class="rvts6"&gt; должно представлять из себя вопрос, требующий ответа да или нет. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps72"&gt;&lt;span class="rvts14"&gt;Примеры названий: “&lt;/span&gt;&lt;span class="rvts15"&gt;Can&lt;/span&gt;&lt;span class="rvts14"&gt;Download”, “&lt;/span&gt;&lt;span class="rvts15"&gt;Has&lt;/span&gt;&lt;span class="rvts14"&gt;Keywords”, “&lt;/span&gt;&lt;span class="rvts15"&gt;Is&lt;/span&gt;&lt;span class="rvts14"&gt;Checked”, “&lt;/span&gt;&lt;span class="rvts15"&gt;Needs&lt;/span&gt;&lt;span class="rvts14"&gt;Update”. &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701214"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования полей&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для именования полей, доступных вне класса, используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;, для &lt;/span&gt;&lt;span class="rvts7"&gt;private&lt;/span&gt;&lt;span class="rvts6"&gt; полей - &lt;/span&gt;&lt;span class="rvts7"&gt;camel case&lt;/span&gt;&lt;span class="rvts6"&gt;; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Поля объявляются согласно следующему шаблону:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&amp;lt;Модификатор доступа&amp;gt; [Другие модификаторы] &amp;lt;Тип&amp;gt; &amp;lt;Название поля&amp;gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps73"&gt;&lt;span class="rvts14"&gt;Пример: private static User currentUser = null;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В том случае, когда это не препятствует понимаю кода, в качестве имени поля используется имя соответствующего полю класса. Для коллекций и массивов используется имя объектов, содержащихся в коллекции или массиве.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps74"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;public User User = new User();&lt;br /&gt;public UserCollection User&lt;/span&gt;&lt;span class="rvts15"&gt;s&lt;/span&gt;&lt;span class="rvts14"&gt; = new UserCollection();&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Название поля типа &lt;/span&gt;&lt;span class="rvts7"&gt;bool&lt;/span&gt;&lt;span class="rvts6"&gt; должно представлять из себя вопрос, требующий ответа да или нет. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps77"&gt;&lt;span class="rvts14"&gt;Примеры названий: “&lt;/span&gt;&lt;span class="rvts15"&gt;Can&lt;/span&gt;&lt;span class="rvts14"&gt;Download”, “&lt;/span&gt;&lt;span class="rvts15"&gt;Has&lt;/span&gt;&lt;span class="rvts14"&gt;Keywords”, “&lt;/span&gt;&lt;span class="rvts15"&gt;Is&lt;/span&gt;&lt;span class="rvts14"&gt;Checked”, “&lt;/span&gt;&lt;span class="rvts15"&gt;Needs&lt;/span&gt;&lt;span class="rvts14"&gt;Update”. &lt;/span&gt;&lt;/div&gt;&lt;div class="rvps78"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps79"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps80"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps81"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701215"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования переменных&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для именования переменных используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;camel case&lt;/span&gt;&lt;span class="rvts6"&gt;; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Переменные объявляются согласно следующему шаблону:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&amp;lt;Тип&amp;gt; &amp;lt;Название поля&amp;gt;;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps82"&gt;&lt;span class="rvts14"&gt;Пример: int userID = null;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В циклах &lt;/span&gt;&lt;span class="rvts7"&gt;foreach&lt;/span&gt;&lt;span class="rvts6"&gt; имя переменной назначается как имя массива в единственном числе.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps83"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps84"&gt;&lt;span class="rvts14"&gt;Пример: foreach(Campaign &lt;/span&gt;&lt;span class="rvts15"&gt;newCampaign&lt;/span&gt;&lt;span class="rvts14"&gt; in &lt;/span&gt;&lt;span class="rvts15"&gt;NewCampaigns&lt;/span&gt;&lt;span class="rvts14"&gt;).&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701216"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования констант&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для именования констант используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701217"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования enum&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts18"&gt;’&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;ов&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для именования enum&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов и их значений используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;; &lt;/span&gt;&lt;/li&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Имена enum&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов указываются в единственном числе&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Имена, как правило, состоят из имени сущности, к которой относится &lt;/span&gt;&lt;span class="rvts7"&gt;enum&lt;/span&gt;&lt;span class="rvts6"&gt; и названия содержимого enum&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а (status, type, state). &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps85"&gt;&lt;span class="rvts14"&gt;Пример: Keyword&lt;/span&gt;&lt;span class="rvts15"&gt;Status&lt;/span&gt;&lt;span class="rvts14"&gt;, Connection&lt;/span&gt;&lt;span class="rvts15"&gt;State&lt;/span&gt;&lt;span class="rvts14"&gt;, Task&lt;/span&gt;&lt;span class="rvts15"&gt;Type&lt;/span&gt;&lt;span class="rvts14"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps86"&gt;&lt;span class="rvts14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701218"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования exception&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts18"&gt;’&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;ов&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div class="rvps87"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps11" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для exception&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов используется стиль &lt;/span&gt;&lt;span class="rvts7"&gt;pascal case&lt;/span&gt;&lt;span class="rvts6"&gt;; &lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Имена классов для создаваемых custom exception&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов заканчиваются суффиком &lt;/span&gt;&lt;span class="rvts7"&gt;Exception&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В качестве имени объекта исключения внтури &lt;/span&gt;&lt;span class="rvts7"&gt;catch&lt;/span&gt;&lt;span class="rvts6"&gt;, для исключений типа &lt;/span&gt;&lt;span class="rvts7"&gt;Exception&lt;/span&gt;&lt;span class="rvts6"&gt;, используется имя “ex”.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps88"&gt;&lt;span class="rvts14"&gt;Пример: catch(Exception &lt;/span&gt;&lt;span class="rvts15"&gt;ex&lt;/span&gt;&lt;span class="rvts14"&gt;).&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps89"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 class="rvps19"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701219"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;Правила именования control&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts18"&gt;’&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts16"&gt;ов в asp.net&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для именования control&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов используется венгерская нотация (стиль &lt;/span&gt;&lt;span class="rvts7"&gt;Hungarian notation&lt;/span&gt;&lt;span class="rvts6"&gt;). См. &lt;/span&gt;&lt;span class="rvts7"&gt;Приложение 1: Префиксы, используемые для именования контролов в asp.net.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701220"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Форматирование кода&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Используются стандартные настройки форматирования &lt;/span&gt;&lt;span class="rvts7"&gt;Visual Studio&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В одном файле не объявляется больше одного namespace&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а и одного класса (исключение &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; небольшие вспомогательные private классы);&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Фигурные скобки размещаются всегда на отдельной строке;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В условии &lt;/span&gt;&lt;span class="rvts7"&gt;if-else&lt;/span&gt;&lt;span class="rvts6"&gt; всегда используются фигурные скобки;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Размер tab&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; 4;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Использование строк длиннее 100 символов не желательно. При необходимости инструкция переносится на другую строку. При переносе части кода на другую строку вторая и последующая строки сдвигаются вправо на один символ табуляции;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Каждая переменная объявляется на отдельной строке;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Все подключения &lt;/span&gt;&lt;span class="rvts7"&gt;namespace&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов (&lt;/span&gt;&lt;span class="rvts7"&gt;using&lt;/span&gt;&lt;span class="rvts6"&gt;) размещаются в начале файла, системные &lt;/span&gt;&lt;span class="rvts7"&gt;namespace&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ы объявляются над custom &lt;/span&gt;&lt;span class="rvts7"&gt;namespace&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ами;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Если для свойства существует соответствующее поле (например, при загрузке по требованию), то поле объявляется над свойством.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps90"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private User &lt;/span&gt;&lt;span class="rvts15"&gt;user&lt;/span&gt;&lt;span class="rvts14"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public User &lt;/span&gt;&lt;span class="rvts15"&gt;User&lt;/span&gt;&lt;span class="rvts14"&gt; { get; set; }&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps93"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Если &lt;/span&gt;&lt;span class="rvts7"&gt;set&lt;/span&gt;&lt;span class="rvts6"&gt; или &lt;/span&gt;&lt;span class="rvts7"&gt;get&lt;/span&gt;&lt;span class="rvts6"&gt; свойства состоит из одной операции &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; весь &lt;/span&gt;&lt;span class="rvts7"&gt;set&lt;/span&gt;&lt;span class="rvts6"&gt; или &lt;/span&gt;&lt;span class="rvts7"&gt;get&lt;/span&gt;&lt;span class="rvts6"&gt; размещается на одной строке.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps94"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts14"&gt;Public User&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts14"&gt;{&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts15"&gt;get&lt;/span&gt;&lt;span class="rvts15"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts15"&gt;{&lt;/span&gt;&lt;span class="rvts15"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts15"&gt;return user;&lt;/span&gt;&lt;span class="rvts15"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts15"&gt;}&lt;/span&gt;&lt;span class="rvts15"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps93"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Функции, поля и свойства группируются внутри класса по своему назначению. Такие группы объединяются в регионы;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701221"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Комментирование кода&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Все комментарии должны быть на русском языке;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для функций, классов, enum&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов, свойств и полей комментарии необходимо указывать в таком виде, чтобы по ним можно было автоматически сгенерировать документацию. Для этого используются стандартные &lt;/span&gt;&lt;span class="rvts7"&gt;tag&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;и такие как &amp;lt;&lt;/span&gt;&lt;span class="rvts7"&gt;summary&amp;gt;, &amp;lt;param&amp;gt; и &amp;lt;return&amp;gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для функций создающих &lt;/span&gt;&lt;span class="rvts7"&gt;exception&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ы &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; возможные исключения необходимо указывать в &lt;/span&gt;&lt;span class="rvts7"&gt;tag&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ах &lt;/span&gt;&lt;span class="rvts7"&gt;&amp;lt;exception&amp;gt;&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для включения в документацию примеров использования необходимо применять &lt;/span&gt;&lt;span class="rvts7"&gt;tag&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;и &lt;/span&gt;&lt;span class="rvts7"&gt;&amp;lt;example&amp;gt;&lt;/span&gt;&lt;span class="rvts6"&gt;, &lt;/span&gt;&lt;span class="rvts7"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span class="rvts6"&gt; и &lt;/span&gt;&lt;span class="rvts7"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для ссылок в документации необходимо использовать &lt;/span&gt;&lt;span class="rvts7"&gt;tag&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;и&lt;/span&gt;&lt;span class="rvts7"&gt; &amp;lt;see cref=””/&amp;gt;&lt;/span&gt;&lt;span class="rvts6"&gt; и &lt;/span&gt;&lt;span class="rvts7"&gt;&amp;lt;seeAlso cref=””/&amp;gt;&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При использовании в тексте комментариев символов, использующихся в &lt;/span&gt;&lt;span class="rvts7"&gt;xml&lt;/span&gt;&lt;span class="rvts6"&gt; как спецсимволы,&amp;nbsp; необходимо использовать &lt;/span&gt;&lt;span class="rvts7"&gt;tag CDATA&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Комментарии к заголовкам функций, свойств, полей, интерфейсов и прочего необходимо указывать всегда;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps99"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для функций, выполняющих сложные алгоритмы, не очевидные для восприятия, необходимо указывать подробные комментарии не только к заголовку функции, но и самому алгоритму с пояснением каждого шага выполнения алгоритма;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В случае внесения изменений в критические участки кода, ядро системы, либо когда сложно проследить последствия, которые может повлечь такое изменение, необходимо указывать подробный комментарий о том кто внес изменение, когда и по какой причине;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В том случае если необходимо временно добавить заплатку, без которой система не может работать, но заплатку в дальнейшем планируется убрать &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; необходимо добавлять ключевое слово “&lt;/span&gt;&lt;span class="rvts7"&gt;//TODO:&lt;/span&gt;&lt;span class="rvts6"&gt; ”, после которого указывается когда и что должно быть исправлено. Кроме этого необходимо указывать подробный комментарий о том, для чего предназначено временное исправление, кто его внес и когда;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При разработке кода, изменения которого могут повлечь за собой сбой в других частях системы, при этом связь между этими двумя частями программы неочевидна&amp;nbsp; и ошибка не будет показана на этапе компиляции, либо если сам код неочевидным образом зависит от других частей системы &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; необходимо указывать подробное описания взаимосвязей.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701222"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Конфигурация&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В конфигурационном файле ключи необходимо группировать по назначению. Перед началом каждой такой группы в комментариях необходимо указывать открывающий &lt;/span&gt;&lt;span class="rvts7"&gt;tag&lt;/span&gt;&lt;span class="rvts6"&gt; с названием группы, в конце &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; закрывающий &lt;/span&gt;&lt;span class="rvts7"&gt;tag&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts14"&gt;Пример: &lt;/span&gt;&lt;/div&gt;&lt;div class="rvps100"&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts15"&gt;&amp;lt;!--Connection strings --&amp;gt;&lt;/span&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;lt;add key="MainDatabaseConnectionString" value="server=...;Integrated Security=SSPI;"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;lt;add key=" SupportDatabaseConnectionString" value="server=...;Integrated Security=SSPI;"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts15"&gt;&amp;lt;!-- /Connection strings --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для ключей, хранящих &lt;/span&gt;&lt;span class="rvts7"&gt;boolean&lt;/span&gt;&lt;span class="rvts6"&gt; значения, &lt;/span&gt;&lt;span class="rvts7"&gt;value&lt;/span&gt;&lt;span class="rvts6"&gt; может быть равно только &lt;/span&gt;&lt;span class="rvts7"&gt;true&lt;/span&gt;&lt;span class="rvts6"&gt; или &lt;/span&gt;&lt;span class="rvts7"&gt;false&lt;/span&gt;&lt;span class="rvts6"&gt;, а не &lt;/span&gt;&lt;span class="rvts7"&gt;0/1&lt;/span&gt;&lt;span class="rvts6"&gt; или &lt;/span&gt;&lt;span class="rvts7"&gt;yes/no&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps93"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701223"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Переменные и типы&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Свойства необходимо использовать только тогда, когда это имеет смысл. Если при получении и сохранении значений никакая дополнительная логика не участвует &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; вместо свойства необходимо использовать поле (исключение &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; когда класс bind&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ится на asp.net страницах, т.к. стандартный механизм bind&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а имеет доступ только к public свойствам);&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Необходимо использовать максимально простые типы данных. Так, например, необходимо использовать int, а не long, если известно, что для хранимых значений будет достаточно типа int;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Константы необходимо использовать только для простых типов данных;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для сложных типов вместо констант необходимо использовать &lt;/span&gt;&lt;span class="rvts7"&gt;readonly&lt;/span&gt;&lt;span class="rvts6"&gt; поля;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts7"&gt;Boxing&lt;/span&gt;&lt;span class="rvts6"&gt; и &lt;/span&gt;&lt;span class="rvts7"&gt;unboxing&lt;/span&gt;&lt;span class="rvts6"&gt; value типов необходимо использовать только когда это действительно необходимо;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При задании значений нецелых типов, значения должны содержать как минимум одну цифру до точки и одну после;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Необходимо использовать именования типов C#, а не .NET common type system (CTS).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps104"&gt;&lt;span class="rvts14"&gt;Пример: &lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts15"&gt;int&lt;/span&gt;&lt;span class="rvts14"&gt; userID = -1; , а не &lt;/span&gt;&lt;span class="rvts15"&gt;Int32&lt;/span&gt;&lt;span class="rvts14"&gt; userID=-1;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Модификаторы доступа необходимо указывать всегда. Не смотря на то, что по умолчанию назначается модификатор доступа &lt;/span&gt;&lt;span class="rvts7"&gt;private&lt;/span&gt;&lt;span class="rvts6"&gt;, поле модификатора не остается пустым &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; модификатор private необходимо указывать явным образом.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps105"&gt;&lt;span class="rvts14"&gt;Пример: &lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts15"&gt;private&lt;/span&gt;&lt;span class="rvts14"&gt; User CreateUser(string firstName, string lastName);&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Модификаторы доступа (&lt;/span&gt;&lt;span class="rvts7"&gt;private, protected, internal и public&lt;/span&gt;&lt;span class="rvts6"&gt;) необходимо указывать в зависимости от того, где требуется доступность соответствующего поля, свойства, функции, класса или конструктора. Модификатор &lt;/span&gt;&lt;span class="rvts7"&gt;public&lt;/span&gt;&lt;span class="rvts6"&gt; необходимо указывать только тогда, когда необходим доступ к полю из других проектов, &lt;/span&gt;&lt;span class="rvts7"&gt;internal&lt;/span&gt;&lt;span class="rvts6"&gt; &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; когда необходим доступ из других классов внутри одного проекта, &lt;/span&gt;&lt;span class="rvts7"&gt;protected&lt;/span&gt;&lt;span class="rvts6"&gt; &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; для предоставления доступа классам &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; потомкам, во всех остальных случаях используется &lt;/span&gt;&lt;span class="rvts7"&gt;private&lt;/span&gt;&lt;span class="rvts6"&gt;, т.е. доступ ограничивается самим классом;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Поля и переменные инициализируются при их объявлении, когда это возможно.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps106"&gt;&lt;span class="rvts14"&gt;Пример:&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt;private int&amp;nbsp; userID =&lt;/span&gt;&lt;span class="rvts15"&gt; -1;&lt;/span&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts14"&gt;private string firstName =&lt;/span&gt;&lt;span class="rvts15"&gt; “”;&lt;/span&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts14"&gt;private string lastName =&lt;/span&gt;&lt;span class="rvts15"&gt; “”;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Когда для создания класса необходимо передать параметры, используемые при его инициализации, на конструктор по умолчанию (MyClass() { }) необходимо накладывать модификатор доступа private, чтобы избежать создания клиентами неинициализированного объекта.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps109"&gt;&lt;span class="rvts14"&gt;Пример:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts15"&gt;private User()&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts15"&gt;{&lt;/span&gt;&lt;span class="rvts15"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts15"&gt;}&lt;/span&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts14"&gt;public User(int userID)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="rvts14"&gt;{&lt;/span&gt;&lt;span class="rvts14"&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="rvts14"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps5"&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Вместо использования “magic numbers” для идентификаторов статусов, состояний и т.п. необходимо указывать константы или enum&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ы. Идентификаторы состояний в виде чисел использовать нельзя.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps115"&gt;&lt;span class="rvts14"&gt;Пример не правильного использования: public GetUserByStatus(&lt;/span&gt;&lt;span class="rvts15"&gt;int&lt;/span&gt;&lt;span class="rvts14"&gt; statusID);&lt;br /&gt;Пример правильного использования: public GetUserByStatus(&lt;/span&gt;&lt;span class="rvts15"&gt;UserStatus&lt;/span&gt;&lt;span class="rvts14"&gt; userStatus);&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="rvps15"&gt;&lt;span class="rvts14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Тип &lt;/span&gt;&lt;span class="rvts7"&gt;object&lt;/span&gt;&lt;span class="rvts6"&gt; необходимо использовать только когда это действительно необходимо, в большинстве случаев вместо него используются generic&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;и. Вместо &lt;/span&gt;&lt;span class="rvts7"&gt;Hashtable&lt;/span&gt;&lt;span class="rvts6"&gt; необходимо использовать Dictionary&amp;lt;&amp;gt;, вместо ArrayList используется List&amp;lt;&amp;gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В том случае если в &lt;/span&gt;&lt;span class="rvts7"&gt;get&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;е или &lt;/span&gt;&lt;span class="rvts7"&gt;set&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;е какого-либо свойства выполняются сложные вычисления, если операция, выполняемая в &lt;/span&gt;&lt;span class="rvts7"&gt;get&lt;/span&gt;&lt;span class="rvts6"&gt; или &lt;/span&gt;&lt;span class="rvts7"&gt;set&lt;/span&gt;&lt;span class="rvts6"&gt; является преобразованием, имеет побочный эффект или долго выполняется &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; свойство должно быть заменено функциями;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Свойство не должно менять своего значения от вызова к вызову, если состояние объекта не изменяется. Если результат при новом вызове может быть другим при том же состоянии объекта, вместо свойства необходимо использовать функции;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Внутри &lt;/span&gt;&lt;span class="rvts7"&gt;get&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а и &lt;/span&gt;&lt;span class="rvts7"&gt;set&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а не должно быть обращений к коду, не связанному напрямую с получением или сохранением значения свойства, т.к. такие действия могут быть не очевидны для клиентов, использующих свойство;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Все настройки, влияющие на работу приложения, нельзя указывать жестко в коде, а необходимо выносить в config. Если&amp;nbsp; есть возможность прописать значение по умолчанию &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; они должны быть прописаны, если значение по умолчанию не может быть задано и соответствующий ключ не прописан в конфиге &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; необходимо создавать исключение.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps93"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701224"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Функции&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Функции, возвращающие массив, всегда должны возвращать массив. Если нет данных&amp;nbsp; &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; функции возвращают пустой массив, но не &lt;/span&gt;&lt;span class="rvts7"&gt;null&lt;/span&gt;&lt;span class="rvts6"&gt;. Это же касается коллекций;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В функциях никогда нельзя использовать больше 7-ми параметров. Если параметров больше &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; они объединяются в класс.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="rvts6"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701225"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Управление выполнением программы&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При использовании &lt;/span&gt;&lt;span class="rvts7"&gt;foreach&lt;/span&gt;&lt;span class="rvts6"&gt; по коллекции объектов &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; сама коллекция никогда нельзя модифицировать (новые элементы не добавляются, существующие не удаляются);&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Если задачу можно решить, используя рекурсию и используя циклы, предпочтение необходимо отдавать использованию циклов. Рекурсия необходимо применять только тогда, когда решение с использованием циклов сложнее, чем при использовании рекурсии;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Тернарные операции необходимо использовать только для простых проверок. В тех случаях, когда проверка сложная и включает в себя несколько условий &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; используются if/else;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;В aspx файлах нельзя использовать код. Т.е. tag&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;и &amp;lt;%= “C# code” %&amp;gt; использовать нельзя. Это связано с тем, что при компиляции такой код не проверяется;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Сложные проверки, состоящие из множества условий,&amp;nbsp; необходимо разбивать на несколько простых. Для сохранения промежуточных результатов необходимо использовать &lt;/span&gt;&lt;span class="rvts7"&gt;boolean&lt;/span&gt;&lt;span class="rvts6"&gt; переменные;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Классы, реализующие интерфейс &lt;/span&gt;&lt;span class="rvts7"&gt;IDisposable&lt;/span&gt;&lt;span class="rvts6"&gt;, создаются в директиве &lt;/span&gt;&lt;span class="rvts7"&gt;using&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="rvps93"&gt;&lt;span class="rvts14"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps117"&gt;&lt;span class="rvts14"&gt;Пример: using(SqlConnection sqlConnection = new SqlConnection) { }.&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rvps12"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701226"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;События, делегаты, потоки&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Перед вызовом делегатов и событий всегда необходимо выполнять проверку на &lt;/span&gt;&lt;span class="rvts7"&gt;null&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При создании простых &lt;/span&gt;&lt;span class="rvts7"&gt;event&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов необходимо использовать стандартные классы &lt;/span&gt;&lt;span class="rvts7"&gt;EventHandler&lt;/span&gt;&lt;span class="rvts6"&gt; и &lt;/span&gt;&lt;span class="rvts7"&gt;EventArgs&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При создании сложных &lt;/span&gt;&lt;span class="rvts7"&gt;event&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ов для передачи аргументов необходимо использовать классы потомки &lt;/span&gt;&lt;span class="rvts7"&gt;EventArgs&lt;/span&gt;&lt;span class="rvts6"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Для блокировок при написании многопоточных приложений необходимо использовать оператор &lt;/span&gt;&lt;span class="rvts7"&gt;lock&lt;/span&gt;&lt;span class="rvts6"&gt;, а не класс &lt;/span&gt;&lt;span class="rvts7"&gt;Monitor&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701227"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Exception&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts19"&gt;’&lt;/span&gt;&lt;/span&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;ы и их обработка&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Блоки &lt;/span&gt;&lt;span class="rvts7"&gt;try-catch&lt;/span&gt;&lt;span class="rvts6"&gt; нельзя использовать для управления ходом работы программы, а только для обработки непредвиденных ошибок;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При прокидывании исключений выше по &lt;/span&gt;&lt;span class="rvts7"&gt;StackTrace&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;у, необходимо использовать оператор “&lt;/span&gt;&lt;span class="rvts7"&gt;throw&lt;/span&gt;&lt;span class="rvts6"&gt;;”, а НЕ “&lt;/span&gt;&lt;span class="rvts7"&gt;throw ex&lt;/span&gt;&lt;span class="rvts6"&gt;;”;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts7"&gt;Custom exception&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;ы необходимо наследовать от класса &lt;/span&gt;&lt;span class="rvts7"&gt;Exception&lt;/span&gt;&lt;span class="rvts6"&gt; (а не &lt;/span&gt;&lt;span class="rvts7"&gt;ApplicationException&lt;/span&gt;&lt;span class="rvts6"&gt; или какого-то другого);&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Исключения необходимо создавать всякий раз, когда функция не может быть выполнена &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; переданы неверные параметры при вызове функции, нет доступа к базе данных, не известные идентификаторы и т.п.;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Все исключения должны быть записаны в log или показаны пользователю системы. Пустые секции catch использовать нельзя;&lt;/span&gt;&lt;br /&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps71" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;При записи информации об ошибке, как правило, пишется &lt;/span&gt;&lt;span class="rvts7"&gt;StackTrace&lt;/span&gt;&lt;span class="rvts6"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170623725"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Приложение 1: Префиксы, используемые для именования контролов в asp.net.&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="rvps2"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;ul style="list-style-position: outside; margin-left: -24px; text-indent: 0px;"&gt;&lt;li class="rvps118" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt; Button &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; btn,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps119" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;CheckBox &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; cb,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps120" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;DropDownList &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; ddl,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps121" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;HiddenField &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; hf,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps122" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;HyperLink &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; hl,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps123" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Image &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; img,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps124" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;ImageButton &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; ibtn&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps125" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Label &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; l,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps126" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;LinkButton &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; lbtn&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps127" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;ListBox &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; lb,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps128" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Literal &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; lt,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps129" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Panel &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; pnl&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps130" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;PlaceHolder &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; ph,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps131" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;RadioButton &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; rb,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps132" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;TextBox &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; tb,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps133" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Table &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; tbl,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps134" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Validator &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; val,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps135" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;ValidationSummary &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; vals,&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="rvps136"&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="list-style-position: outside; margin-left: 48px; text-indent: 0px;"&gt;&lt;ul style="list-style-position: outside; margin-left: -24px; text-indent: 0px;"&gt;&lt;li class="rvps137" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;AdRotator &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; ar,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps138" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;BulletList &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; bl,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps139" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Calendar &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; cld,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps140" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;CheckBoxList &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; cbl,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps141" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;FileUpload &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; fup,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps142" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;ImageMap &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; im,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps143" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Localize &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; loc,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps144" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;MultiView &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; mv,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps145" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;RadioButtonList &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; rbl,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps146" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Substitution &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; sbs&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps147" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;View &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; v,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps148" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Wizard &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; wiz,&lt;/span&gt;&lt;/li&gt;&lt;li class="rvps149" style="margin-left: 0; text-indent: 0px;"&gt;&lt;span class="rvts6"&gt;Xml &lt;/span&gt;&lt;span class="rvts13"&gt;–&lt;/span&gt;&lt;span class="rvts6"&gt; xml.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h1 class="rvps4"&gt; &lt;a href="http://draft.blogger.com/blogger.g?blogID=3618588772304760293" name="_Toc170701229"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;Приложение 2: Сводная таблица правил именования&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="rvps150"&gt;&lt;table border="1" cellpadding="4" cellspacing="-1" style="border-collapse: collapse; border-width: 0px;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts7"&gt;Идентификатор&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts7"&gt;Регистр&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts7"&gt;Пример&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Класс&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;User&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Локальная переменная&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Camel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;user&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Интерфейс&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;IDisposable&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt;  &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Generic&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;T, TKey, TValue&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Public функция&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt;  &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;Authenticate&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Private функция&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;Authenticate&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Параметр функции&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Camel&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;userID&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Public свойство&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;FirstName&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Private свойство&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;FirstName&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Public поле&lt;/span&gt;&lt;/td&gt;  &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;FirstName&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Private поле&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Camel&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;firstName&lt;/span&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Enum &lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;UserStatus&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Значение enum&lt;/span&gt;&lt;span class="rvts13"&gt;’&lt;/span&gt;&lt;span class="rvts6"&gt;а&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;Active&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Exception&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;UserAuthenticationException&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Event&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;StatusChanged&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="199"&gt;&lt;span class="rvts6"&gt;Namespace&lt;/span&gt;&lt;/td&gt;  &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="93"&gt;&lt;span class="rvts6"&gt;Pascal&lt;/span&gt;&lt;/td&gt; &lt;td style="background-color: #f2dbdb; border-color: #000000; border-style: solid; border-width: 1px;" valign="top" width="286"&gt;&lt;span class="rvts6"&gt;UserManager&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h1 class="rvps4"&gt; &lt;span class="rvts0"&gt;&lt;span class="rvts12"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="rvts6"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3618588772304760293-3608308712171524640?l=michaelsmirnov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://michaelsmirnov.blogspot.com/feeds/3608308712171524640/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/01/c.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/3608308712171524640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3618588772304760293/posts/default/3608308712171524640'/><link rel='alternate' type='text/html' href='http://michaelsmirnov.blogspot.com/2011/01/c.html' title='Стандарты и правила оформления кода C#'/><author><name>Michael Smirnov</name><uri>https://profiles.google.com/113344122505655345283</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-46dn5vF1akc/AAAAAAAAAAI/AAAAAAAAAAA/Dqz82MdmQnA/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3618588772304760293.post-1331186569224354722</id><published>2011-01-12T15:37:00.011+03:00</published><updated>2011-07-14T16:44:32.274+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Управление проектами'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Стандарты и правила оформления кода T-SQL</title><content type='html'>Последнее время меня несколько раз спрашивали относительно стандартов и правил оформления кода на  T-SQL , поэтому я решил выложить их в открытый доступ.&lt;br /&gt;&lt;br /&gt;Для загрузки &lt;b&gt;Стандарты и правила&lt;/b&gt; доступны по следующий ссылке на моем сайте: &lt;a href="http://www.msmirnov.ru/public/TSQL_Coding_Standards.doc"&gt;http://www.msmirnov.ru/public/TSQL_Coding_Standards.doc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Либо с ними можно ознакомиться прямо здесь.&lt;br /&gt;&lt;style type="text/css"&gt;&lt;!--body {  margin: 5px 5px 5px 5px;  background-color: #ffffff;}/* ========== Text Styles ========== */hr { color: #000000}body, table, span.rvts0 /* Normal text */{ font-size: 10pt; font-family: 'Arial', 'Helvetica', sans-serif; font-style: normal; font-weight: normal; color: #000000; text-decoration: none;}span.rvts1 /* Heading */{ font-weight: bold; color: #0000ff;}span.rvts2 /* Subheading */{ font-weight: bold; color: #000080;}span.rvts3 /* Keywords */{ font-style: italic; color: #800000;}a.rvts4, span.rvts4 /* Jump 1 */{ color: #008000; text-decoration: underline;}a.rvts5, span.rvts5 /* Jump 2 */{ color: #008000; text-decoration: underline;}span.rvts6{ font-family: 'Verdana', 'Geneva', sans-serif;}span.rvts7{ font-size: 16pt; font-family: 'Tahoma', 'Geneva', sans-serif; font-weight: bold;}span.rvts8{ font-size: 28pt; font-weight: bold;}span.rvts9{ font-size: 11pt; font-family: 'calibri';}a.rvts10, span.rvts10{ font-size: 11pt; font-family: 'calibri'; color: #0000ff; text-decoration: underline;}span.rvts11{ font-size: 11pt; font-family: 'calibri'; color: #c0c0c0;}span.rvts12{ font-size: 18pt; font-family: 'calibri'; font-weight: bold;}span.rvts13{ font-size: 11pt; font-family: 'calibri'; font-weight: bold;}span.rvts14{ font-size: 11pt; font-family: 'calibri';}span.rvts15{ font-size: 11pt; font-family: 'calibri'; font-style: italic;}span.rvts16{ font-size: 11pt; font-family: 'calibri'; font-style: italic; font-weight: bold;}span.rvts17{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #0000ff;}span.rvts18{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace;}span.rvts19{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #808080;}span.rvts20{ font-family: 'Verdana', 'Geneva', sans-serif; font-weight: bold;}span.rvts21{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace;}span.rvts22{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; font-weight: bold;}span.rvts23{ font-size: 9pt; font-family: 'Verdana', 'Geneva', sans-serif;}span.rvts24{ font-size: 9pt; font-family: 'Verdana', 'Geneva', sans-serif; font-weight: bold;}span.rvts25{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; background-color: #808080; text-decoration: underline;}span.rvts26{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; background-color: #cccccc; text-decoration: underline;}span.rvts27{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #808080; background-color: #c0c0c0; text-decoration: underline;}span.rvts28{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; background-color: #8c8c8c; text-decoration: underline;}span.rvts29{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; background-color: #8c8c8c;}span.rvts30{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #ff00ff;}span.rvts31{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #008000; background-color: #808080;}span.rvts32{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #008000;}span.rvts33{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; background-color: #c0c0c0;}span.rvts34{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; font-weight: bold; color: #008000; background-color: #808080;}span.rvts35{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #ff0000;}span.rvts36{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; font-weight: bold; color: #008000;}span.rvts37{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; background-color: #808080;}span.rvts38{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #ffffff; background-color: #808080;}span.rvts39{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #ffffff;}span.rvts40{ font-size: 9pt; font-family: 'Courier New', 'Courier', monospace; color: #ffffff; background-color: #c0c0c0;}span.rvts41{ font-family: 'Courier New', 'Courier', monospace; color: #0000ff;}span.rvts42{ font-family: 'Courier New', 'Courier', monospace;}span.rvts43{ font-family: 'Tahoma', 'Geneva', sans-serif;}span.rvts44{ font-size: 11pt; font-family: 'calibri'; background-color: #f2dbdb;}span.rvts45{ font-size: 11pt; font-family: 'calibri'; font-weight: bold; background-color: #f2dbdb;}span.rvts46{ font-size: 11pt; font-family: 'calibri'; color: #0000ff;}/* ========== Para Styles ========== */p,ul,ol /* Paragraph Style */{ text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px;}.rvps1 /* Centered */{ text-align: center;}.rvps2{ text-align: justify;}.rvps3{ text-align: right; margin: 0px 0px 0px 24px;}.rvps4{ text-align: left; text-indent: 0px; page-break-after: avoid; padding: 0px 0px 0px 0px; margin: 16px 0px 4px 0px;}.rvps5{ text-align: justify; text-indent: 47px;}.rvps6{ text-align: justify; text-indent: 47px;}.rvps7{ text-align: justify; text-indent: -24px; margin: 0px 0px 0px 95px;}.rvps8{ text-align: justify; margin: 0px 0px 0px 71px;}.rvps9{ text-align: justify; text-indent: -24px; margin: 0px 0px 0px 95px;}.rvps10{ text-align: justify; text-indent: -24px; margin: 0px 0px 0px 48px;}.rvps11{ text-align: justify; margin: 0px 0px 0px 24px;}.rvps12{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps13{ text-align: justify; text-indent: 46px; margin: 0px 0px 0px 48px;}.rvps14{ text-align: justify; margin: 0px 0px 0px 48px;}.rvps15{ text-align: justify; border-color: #000000; border-style: solid; border-width: 1px; background: #f2dbdb; padding: 1px 5px 1px 5px; margin: 0px 0px 0px 42px;}.rvps16{ text-align: justify; border-color: #000000; border
