8.х Вопрос по сворачиванию документов в 1С 8!

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем julia_nik, 31 окт 2013.

  1. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Добрый день! В 1С 8 необходимо реализовать следующую обработку: Свернуть табличные части документов реализации за период, таким образом чтобы сумма свернутого документа например № 1 была - 50тыс. № 2 - 40тыс. и т.д. ( ну где то по 2-3 документа за дату). Так вот никак не могу сообразить как сделать так чтобы происходило отделение строк таб. части в доке. к примере в таб. части след. стр№ 1 - 5тыс., стр №2 - 25тыс. стр № 3 - 30тыс. так вот нужно чтобы в примеру от стр№ 3 взялось только 20тыс. и собралось в реализацию. И еще как хранить оставшиеся позиции тоже не ясно...... Заранее спасибо.
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    1 что за конфа?
    2. По какому принципу (условию) Вы берете не 30 тыс из 3й строки, а 20? Есть такое?
  3. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    1. Конфигурация Управление Торговым Предприятием 8
    2. Есть регистр сведений оплат где содержится инфа по оплатам в этот день. Мне нужно свернуть строго по эти суммам.
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Что-то вообще не пойму, вам по сумме нужно сворачивать? И куда будут сворачиваемые строки? И что будет с остальными?
    Задача, в принципе, решаема.
    Делаете выборку нужных доков с табличными частями, цикл с условием, перебираете ТЧ доков и пишите куда нужно.
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    т.е Вам нужно распределить опты на реализацию??
    Ну тогда Вам надо брать из этого регистра суммы оплат за день - брать релаизации за день и делить суммы оплат либо пропорционально сумме или количеству реализации

    или Вы эти сумм реализаций по ФИФО закрываете?
  6. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Не совсем распределить. Нужно так есть очень много реализаций на дату, а нужно свернуть в 2-3 согласно пробитым чекам. Как получить данные чеков и таб части доков я знаю. Не могу сделать чтобы цикл отслеживал таким образом, чтобы от какой то строки отсечь часть кол-ва и где хранить этот остаток, чтобы при следующем прохождении цикла этот остаток взялся, но записался уже в другую реализацию.

    Да свертка по сумме в новый док. реализации. Остальные тоже должны свернуться но в след. реализацию и т.д. пока не кончаться суммы по оплатам.
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    "Не могу сделать чтобы цикл отслеживал таким образом, чтобы от какой то строки отсечь часть кол-ва" - что значит не можете отчет - отсекать вы должны по какому то условию. сформулируйте его и проверяйте и отсекакйте
    "где хранить этот остаток" - ну заведите ТЗ или массив и туда кидайте эти остатки. а потмо оттуда забирайте
  8. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Что то вроде этого да Если СуммаОплаты< Суммы реализ Тогда
    ЗаписывываемДок и в ТЗ сохраняем остатков (СуммаРеал - СуммаОплаты)
    КонецЕсли. Верно ??
  9. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Типа да, но это условие должно найти свое место в коде, я так предполагаю внутри цикла перебора доков.
  10. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Да это естественно!

    Спасибо большое за направление!
  11. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    А в чем тогда проблемааа? Или вам условие написать:)?
  12. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое вам вы меня уже второй раз спасаете :)))
  13. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Да как то так - мы просто всей картины не знаем же
  14. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Было бы хорошо если бы помогли написать условие :)
  15. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Если Вы нам его полностью опишите, дадите входные данные что у вас имеется, то мы постараемся.

    Хотя бы кусок кода приведите, где вы его вставлять думаете
  16. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Хорошо сейчас подготовлю!

    В каком виде лучше выходные данные дать ??
  17. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Вы кусок кода приведите, куда хотите это условие добавить и опишите само условие, со всеми возможными вариантами
  18. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    <div>ЗапросОплат = Новый Запрос; <span class="Apple-tab-span" style="white-space:pre"> </span></div>
    <div>запросОплат.Текст = &quot;ВЫБРАТЬ</div>
    <div>                   |<span class="Apple-tab-span" style="white-space:pre"> </span>ДанныеОплат.Сумма КАК СуммаОплаты</div>
    <div>                   |ИЗ</div>
    <div>                   |<span class="Apple-tab-span" style="white-space:pre"> </span>РегистрСведений.ДанныеОплат КАК ДанныеОплат</div>
    <div>                   |ГДЕ</div>
    <div>                   |<span class="Apple-tab-span" style="white-space:pre"> </span>ДанныеОплат.Дата = &amp;Дата&quot;;</div>
    <div>ЗапросОплат.УстановитьПараметр(&quot;Дата&quot;,ДатаОплаты);</div>
    <div>ТЗОплат = ЗапросОплат.Выполнить().Выгрузить();</div>
    <div>ВыборкаОплат = ЗапросОплат.Выполнить().Выбрать();</div>
    <div>ВыборкаОплат.Следующий();</div>
    <div> </div>
    <div>Запрос = Новый Запрос;</div>
    <div>Запрос.Текст = &quot;ВЫБРАТЬ</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.ВидОперации,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>МАКСИМУМ(РеализацияТоваровУслугТовары.Ссылка.КратностьВзаиморасчетов) КАК КратностьВзаиморасчетов,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>МАКСИМУМ(РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов) КАК КурсВзаиморасчетов,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.Склад,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.СчетУчетаРасчетовПоАвансам,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.СчетУчетаРасчетовСКонтрагентом,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.ТипЦен,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Номенклатура,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>МАКСИМУМ(РеализацияТоваровУслугТовары.КоличествоМест) КАК КоличествоМест,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.ЕдиницаИзмерения,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>МАКСИМУМ(РеализацияТоваровУслугТовары.Коэффициент) КАК Коэффициент,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>СУММА(РеализацияТоваровУслугТовары.Цена) КАК Цена,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.СтавкаНДС,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДС,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.СчетУчетаНДСПоРеализации,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.СчетУчетаБУ</div>
    <div>              |ИЗ</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары</div>
    <div>              |ГДЕ</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &amp;НачДата И &amp;КонДата</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>И РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления = ЛОЖЬ</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>И РеализацияТоваровУслугТовары.Ссылка.Торговля = ИСТИНА</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>И РеализацияТоваровУслугТовары.Ссылка.Склад = &amp;Склад</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>И РеализацияТоваровУслугТовары.Ссылка.СтатусОплаты &lt;&gt; ЗНАЧЕНИЕ(Перечисление.СтатусОплаты.НеОплачен)</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>И РеализацияТоваровУслугТовары.Ссылка.СтатусОплаты &lt;&gt; ЗНАЧЕНИЕ(Перечисление.СтатусОплаты.Ч_Оплата)</div>
    <div>              |</div>
    <div>              |СГРУППИРОВАТЬ ПО</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.ВидОперации,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.Склад,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.СчетУчетаРасчетовПоАвансам,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.СчетУчетаРасчетовСКонтрагентом,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Ссылка.ТипЦен,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.Номенклатура,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.ЕдиницаИзмерения,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.СтавкаНДС,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.СчетУчетаНДСПоРеализации,</div>
    <div>              |<span class="Apple-tab-span" style="white-space:pre"> </span>РеализацияТоваровУслугТовары.СчетУчетаБУ&quot;;</div>
    <div>Запрос.УстановитьПараметр(&quot;НачДата&quot;,НачалоДня(НачалоПериода));</div>
    <div>Запрос.УстановитьПараметр(&quot;КонДата&quot;,КонецДня(КонецПериода));</div>
    <div>Запрос.УстановитьПараметр(&quot;Склад&quot;,Склад);</div>
    <div>ТЗТовары = Запрос.Выполнить().Выгрузить();</div>
    <div>Выборка = Запрос.Выполнить().Выбрать();</div>
    <div> </div>
    <div> </div>
    <div>Док = Документы.Реализация_Частные.СоздатьДокумент();</div>
    <div>Док.Дата                    = ДатаОплаты;</div>
    <div>Док.Организация             = Организация;</div>
    <div>Док.Контрагент              = Справочники.Контрагенты.НайтиПоКоду(&quot;1719&quot;);</div>
    <div>    Док.Склад                   = Склад;</div>
    <div>Док.ДоговорКонтрагента      = Справочники.ДоговорыКонтрагентов.НайтиПоКоду(&quot;000003293&quot;);</div>
    <div>Док.ВидПередачи             = Перечисления.ВидыПередачиТоваров.СоСклада;</div>
    <div>Док.КратностьВзаиморасчетов = Выборка.КратностьВзаиморасчетов;</div>
    <div>Док.ВалютаДокумента         = Выборка.ВалютаДокумента;</div>
    <div>Док.ВидОперации             = Выборка.ВидОперации;</div>
    <div>Док.УчитыватьНДС            = Выборка.УчитыватьНДС;</div>
    <div>Док.Склад                   = Выборка.Склад;</div>
    <div>Док.ТипЦен                  = Выборка.ТипЦен;</div>
    <div>Док.СчетУчетаРасчетовПоАвансам = Выборка.СчетУчетаРасчетовПоАвансам;</div>
    <div>Док.СчетУчетаРасчетовСКонтрагентом = Выборка.СчетУчетаРасчетовСКонтрагентом;</div>
    <div>Док.УчитыватьКПН            = ИСТИНА;</div>
    <div>Док.ВидУчетаНУ              =Справочники.ВидыУчетаНУ.НУ;</div>
    <div>Док.ОтражатьВБухгалтерскомУчете = ИСТИНА;</div>
    <div>Док.ОтражатьВУправленческомУчете = Истина;</div>
    <div> </div>
    <div>Док.Записать();</div>
    <div> </div>
    <div> </div>
    <div> </div>
    <div>Для Каждого СтрОплаты Из ТЗОплат Цикл</div>
    <div>СуммаНовДока = 0;</div>
    <div>Для Каждого Стр Из ТЗТовары Цикл</div>
    <div>СтрТаб = Док.Товары.Добавить();</div>
    <div>//СуммаОплаты = СтрОплаты.Сумма;</div>
    <div>Если СтрОплаты.СуммаОплаты &lt;= СуммаНовДока Тогда</div>
    <div>СтрТаб.Сумма = Стр.Сумма - (СуммаНовДока - СтрОплаты.СуммаОплаты);</div>
    <div>СтрТаб.Номенклатура = Стр.Номенклатура;</div>
    <div>Док.Записать();</div>
    <div>Иначе<span class="Apple-tab-span" style="white-space:pre"> </span></div>
    <div>СтрТаб.Номенклатура = Стр.Номенклатура;</div>
    <div>СтрТаб.Количество   = Стр.Количество;</div>
    <div>СтрТаб.Цена         = Стр.Цена;</div>
    <div>СтрТаб.Сумма        = Стр.сумма; <span class="Apple-tab-span" style="white-space:pre"> </span></div>
    <div>КонецЕсли;</div>
    <div>СуммаНовДока = Стр.Сумма + СуммаНовДока; <span class="Apple-tab-span" style="white-space:pre"> </span></div>
    <div> </div>
    <div>КонецЦикла;</div>
    <div>КонецЦикла;</div>
    <div> </div>
    <div> </div>
    <div> </div>
    <div> </div>
    <div> </div>
    <div>КонецПроцедуры</div>
    <div> </div>


    ЗапросОплат = Новый Запрос;
    запросОплат.Текст = "ВЫБРАТЬ
    | ДанныеОплат.Сумма КАК СуммаОплаты
    |ИЗ
    | РегистрСведений.ДанныеОплат КАК ДанныеОплат
    |ГДЕ
    | ДанныеОплат.Дата = &Дата";
    ЗапросОплат.УстановитьПараметр("Дата",ДатаОплаты);
    ТЗОплат = ЗапросОплат.Выполнить().Выгрузить();
    ВыборкаОплат = ЗапросОплат.Выполнить().Выбрать();
    ВыборкаОплат.Следующий();

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента,
    | РеализацияТоваровУслугТовары.Ссылка.ВидОперации,
    | МАКСИМУМ(РеализацияТоваровУслугТовары.Ссылка.КратностьВзаиморасчетов) КАК КратностьВзаиморасчетов,
    | МАКСИМУМ(РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов) КАК КурсВзаиморасчетов,
    | РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС,
    | РеализацияТоваровУслугТовары.Ссылка.Склад,
    | РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС,
    | РеализацияТоваровУслугТовары.Ссылка.СчетУчетаРасчетовПоАвансам,
    | РеализацияТоваровУслугТовары.Ссылка.СчетУчетаРасчетовСКонтрагентом,
    | РеализацияТоваровУслугТовары.Ссылка.ТипЦен,
    | РеализацияТоваровУслугТовары.Номенклатура,
    | МАКСИМУМ(РеализацияТоваровУслугТовары.КоличествоМест) КАК КоличествоМест,
    | РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
    | МАКСИМУМ(РеализацияТоваровУслугТовары.Коэффициент) КАК Коэффициент,
    | СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
    | СУММА(РеализацияТоваровУслугТовары.Цена) КАК Цена,
    | СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма,
    | РеализацияТоваровУслугТовары.СтавкаНДС,
    | СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДС,
    | РеализацияТоваровУслугТовары.СчетУчетаНДСПоРеализации,
    | РеализацияТоваровУслугТовары.СчетУчетаБУ
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    | РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
    | И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
    | И РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
    | И РеализацияТоваровУслугТовары.Ссылка.Торговля = ИСТИНА
    | И РеализацияТоваровУслугТовары.Ссылка.Склад = &Склад
    | И РеализацияТоваровУслугТовары.Ссылка.СтатусОплаты <> ЗНАЧЕНИЕ(Перечисление.СтатусОплаты.НеОплачен)
    | И РеализацияТоваровУслугТовары.Ссылка.СтатусОплаты <> ЗНАЧЕНИЕ(Перечисление.СтатусОплаты.Ч_Оплата)
    |
    |СГРУППИРОВАТЬ ПО
    | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента,
    | РеализацияТоваровУслугТовары.Ссылка.ВидОперации,
    | РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС,
    | РеализацияТоваровУслугТовары.Ссылка.Склад,
    | РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС,
    | РеализацияТоваровУслугТовары.Ссылка.СчетУчетаРасчетовПоАвансам,
    | РеализацияТоваровУслугТовары.Ссылка.СчетУчетаРасчетовСКонтрагентом,
    | РеализацияТоваровУслугТовары.Ссылка.ТипЦен,
    | РеализацияТоваровУслугТовары.Номенклатура,
    | РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
    | РеализацияТоваровУслугТовары.СтавкаНДС,
    | РеализацияТоваровУслугТовары.СчетУчетаНДСПоРеализации,
    | РеализацияТоваровУслугТовары.СчетУчетаБУ";
    Запрос.УстановитьПараметр("НачДата",НачалоДня(НачалоПериода));
    Запрос.УстановитьПараметр("КонДата",КонецДня(КонецПериода));
    Запрос.УстановитьПараметр("Склад",Склад);
    ТЗТовары = Запрос.Выполнить().Выгрузить();
    Выборка = Запрос.Выполнить().Выбрать();


    Док = Документы.Реализация_Частные.СоздатьДокумент();
    Док.Дата = ДатаОплаты;
    Док.Организация = Организация;
    Док.Контрагент = Справочники.Контрагенты.НайтиПоКоду("1719");
    Док.Склад = Склад;
    Док.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000003293");
    Док.ВидПередачи = Перечисления.ВидыПередачиТоваров.СоСклада;
    Док.КратностьВзаиморасчетов = Выборка.КратностьВзаиморасчетов;
    Док.ВалютаДокумента = Выборка.ВалютаДокумента;
    Док.ВидОперации = Выборка.ВидОперации;
    Док.УчитыватьНДС = Выборка.УчитыватьНДС;
    Док.Склад = Выборка.Склад;
    Док.ТипЦен = Выборка.ТипЦен;
    Док.СчетУчетаРасчетовПоАвансам = Выборка.СчетУчетаРасчетовПоАвансам;
    Док.СчетУчетаРасчетовСКонтрагентом = Выборка.СчетУчетаРасчетовСКонтрагентом;
    Док.УчитыватьКПН = ИСТИНА;
    Док.ВидУчетаНУ =Справочники.ВидыУчетаНУ.НУ;
    Док.ОтражатьВБухгалтерскомУчете = ИСТИНА;
    Док.ОтражатьВУправленческомУчете = Истина;

    Док.Записать();



    Для Каждого СтрОплаты Из ТЗОплат Цикл
    СуммаНовДока = 0;
    Для Каждого Стр Из ТЗТовары Цикл
    СтрТаб = Док.Товары.Добавить();
    //СуммаОплаты = СтрОплаты.Сумма;
    Если СтрОплаты.СуммаОплаты <= СуммаНовДока Тогда
    СтрТаб.Сумма = Стр.Сумма - (СуммаНовДока - СтрОплаты.СуммаОплаты);
    СтрТаб.Номенклатура = Стр.Номенклатура;
    Док.Записать();
    Иначе
    СтрТаб.Номенклатура = Стр.Номенклатура;
    СтрТаб.Количество = Стр.Количество;
    СтрТаб.Цена = Стр.Цена;
    СтрТаб.Сумма = Стр.сумма;
    КонецЕсли;
    СуммаНовДока = Стр.Сумма + СуммаНовДока;

    КонецЦикла;
    КонецЦикла;





    КонецПроцедуры

    Ну вот что то мудрила я, но все равно правильно не могу сделать с условием и не знаю как остатки в ТЗ сохранить и потом их вытаскивать :(
  19. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    ну так а условие какое, что мы должны проверять?
    Я вижуу у Вас что Вы получили ТЗ оплат и ТЗ документов и перебераете их и что ....как я их должен закрывать - можете описать - судя по коду как то по ФИФО вы их закрываете
  20. TopicStarter Overlay
    julia_nik
    Offline

    julia_nik

    Регистрация:
    29 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Просматриваем строки ТЗ Документов, если строка меньше оплаты то делаем запись в документ, если больше, как я думаю нужно получить разницу Стр.Сумма - (СуммаНовДока - СтрОплаты.СуммаОплаты).
    Узнать тек цену это позиции и стр.сумма/цену - получим кол-во по этой позиции. Все закрываем этот документ и где то сохраняем остаток ??? Смотрим след сумму и доки которые еще не свернулись + остаток с прошлого документа и так далее пока не пройдем по всем оплатам за день.

Поделиться этой страницей