<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=331687&amp;view=findpost&amp;p=2893783</guid>
        <pubDate>Fri, 13 May 2011 13:21:38 +0000</pubDate>
        <title>Запрос Срез на момент Документа</title>
        <link>https://forum.sources.ru/index.php?showtopic=331687&amp;view=findpost&amp;p=2893783</link>
        <description><![CDATA[Outlander: Вдруг кому понадобится<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">ВЫБРАТЬ</div><div class="code_line">&nbsp;&nbsp; &nbsp;РеализацияТоваровУслуг.Ссылка,</div><div class="code_line">&nbsp;&nbsp; &nbsp;РеализацияТоваровУслуг.Дата,</div><div class="code_line">&nbsp;&nbsp; &nbsp;РеализацияТоваровУслуг.ВалютаДокумента КАК ВалютаДокумента</div><div class="code_line">ПОМЕСТИТЬ Доки</div><div class="code_line">ИЗ</div><div class="code_line">&nbsp;&nbsp; &nbsp;Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг</div><div class="code_line">ИНДЕКСИРОВАТЬ ПО</div><div class="code_line">&nbsp;&nbsp; &nbsp;ВалютаДокумента</div><div class="code_line">;</div><div class="code_line">&nbsp;</div><div class="code_line">////////////////////////////////////////////////////////////////////////////////</div><div class="code_line">ВЫБРАТЬ</div><div class="code_line">&nbsp;&nbsp; &nbsp;КурсыВалют.Валюта КАК Валюта,</div><div class="code_line">&nbsp;&nbsp; &nbsp;КурсыВалют.Курс,</div><div class="code_line">&nbsp;&nbsp; &nbsp;КурсыВалют.Кратность,</div><div class="code_line">&nbsp;&nbsp; &nbsp;Вн.ДатаСреза КАК ДатаСреза,</div><div class="code_line">&nbsp;&nbsp; &nbsp;Вн.ДатаУстановкиКурса</div><div class="code_line">ПОМЕСТИТЬ КурсыНаДатуДокумента</div><div class="code_line">ИЗ</div><div class="code_line">&nbsp;&nbsp; &nbsp;РегистрСведений.КурсыВалют КАК КурсыВалют</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ДатыСрезов.ДатаУстановкиКурса КАК ДатаУстановкиКурса,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ДатыСрезов.Валюта КАК Валюта,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ДатыСрезов.ДатаСреза КАК ДатаСреза</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ИЗ</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(ВЫБРАТЬ</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;МАКСИМУМ(КурсыВалют.Период) КАК ДатаУстановкиКурса,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;КурсыВалют.Валюта КАК Валюта,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Доки.Дата КАК ДатаСреза</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ИЗ</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;РегистрСведений.КурсыВалют КАК КурсыВалют</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ЛЕВОЕ СОЕДИНЕНИЕ Доки КАК Доки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ПО КурсыВалют.Период &#60;= Доки.Дата</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;СГРУППИРОВАТЬ ПО</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Доки.Дата,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;КурсыВалют.Валюта) КАК ДатыСрезов) КАК Вн</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ПО КурсыВалют.Валюта = Вн.Валюта</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;И КурсыВалют.Период = Вн.ДатаУстановкиКурса</div><div class="code_line">&nbsp;</div><div class="code_line">ИНДЕКСИРОВАТЬ ПО</div><div class="code_line">&nbsp;&nbsp; &nbsp;ДатаСреза,</div><div class="code_line">&nbsp;&nbsp; &nbsp;Валюта</div><div class="code_line">;</div><div class="code_line">&nbsp;</div><div class="code_line">////////////////////////////////////////////////////////////////////////////////</div><div class="code_line">ВЫБРАТЬ</div><div class="code_line">&nbsp;&nbsp; &nbsp;Доки.Ссылка,</div><div class="code_line">&nbsp;&nbsp; &nbsp;КурсыНаДатуДокумента.Курс,</div><div class="code_line">&nbsp;&nbsp; &nbsp;КурсыНаДатуДокумента.Кратность,</div><div class="code_line">&nbsp;&nbsp; &nbsp;Доки.Дата,</div><div class="code_line">&nbsp;&nbsp; &nbsp;Доки.ВалютаДокумента,</div><div class="code_line">&nbsp;&nbsp; &nbsp;КурсыНаДатуДокумента.ДатаУстановкиКурса</div><div class="code_line">ИЗ</div><div class="code_line">&nbsp;&nbsp; &nbsp;Доки КАК Доки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ЛЕВОЕ СОЕДИНЕНИЕ КурсыНаДатуДокумента КАК КурсыНаДатуДокумента</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ПО Доки.Дата = КурсыНаДатуДокумента.ДатаСреза</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;И Доки.ВалютаДокумента = КурсыНаДатуДокумента.Валюта</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Попробую рассказать принцип<br>
1) Сначала получем таблицу с <strong class='tag-b'>Датами</strong> и <strong class='tag-b'>Измерениями</strong> на которые нужны курсы<br>
2) Из таблицы регистра получем даты наиболее близкие к датам документа <em class='tag-i'>&quot;КурсыВалют.Период &lt;= Доки.Дата&quot;</em><br>
3) К полученной таблице пристраиваем значения <strong class='tag-b'>Ресурсов</strong> регистра. Не забываем указать ДатуДокумента<br>
Собственно полученный результат кладем в <em class='tag-i'>&quot;КурсыНаДатуДокумента&quot;</em><br>
4) Используем <em class='tag-i'>&quot;КурсыНаДатуДокумента&quot;</em> в своих целях соединяя левым соединением по <strong class='tag-b'>Датам</strong> и <strong class='tag-b'>Измерениям</strong><br>
<br>
<br>
Все работает достаточно быстро и без индексирования, но с индексированием все совсем хорошо  :D]]></description>
        <author>Outlander</author>
        <category>Заготовки для 1C:FAQ</category>
      </item>
	
      </channel>
      </rss>
	