Смотрел на релизе 5.1.15.10 ну думаю ошибка осталось до сих пор.
В регистре ПартииТоваровОтданные в модуле набора записей есть вот такой код.
По этому коду у меня получилась следующая штука.
Хотя в партиях
Видимо вместе с
Внутри цикла
надо было сделать еще
В регистре ПартииТоваровОтданные в модуле набора записей есть вот такой код.
Код |
---|
ТекСтрокаПартий=МассивНайденныхСтрокПартий[СчПартий]; КоличествоПартии=ТекСтрокаПартий.Количество; СтруктураОтбора = Новый Структура("Номенклатура,ХарактеристикаНоменклатуры,Партия",ТекСтрокаПартий.Номенклатура,ТекСтрокаПартий.ХарактеристикаНоменклатуры,ТекСтрокаПартий.Партия); Если АвтомобильВТаблице Тогда СтруктураОтбора.Вставить("Автомобиль", ТекСтрокаПартий.Автомобиль); КонецЕсли; Если ЕстьГТД И НЕ обЗначениеНеЗаполнено(СтрокаТоваров.ГТД) Тогда СтруктураОтбора.Вставить("ГТД", СтрокаТоваров.ГТД); КонецЕсли; МассивНайденныхСтрокГТД=РезультатЗапросаПоГТД.НайтиСтроки(СтруктураОтбора); Для СчГТД=0 По МассивНайденныхСтрокГТД.ВГраница() Цикл ТекСтрокаГТД=МассивНайденныхСтрокГТД[СчГТД]; НоваяЗапись=Добавить(); НоваяЗапись.ВидДвижения=ВидДвиженияНакопления.Приход; НоваяЗапись.Период=ШапкаДокумента.Дата; НоваяЗапись.Регистратор=ШапкаДокумента.Ссылка; НоваяЗапись.ДокументПередачи=ШапкаДокумента.Ссылка; НоваяЗапись.Партия=?(ТекСтрокаПартий.Партия=Неопределено,ШапкаДокумента.Ссылка,ТекСтрокаПартий.Партия); НоваяЗапись.ГТД=ТекСтрокаГТД.ГТД; НоваяЗапись.Контрагент=Контрагент; НоваяЗапись.ДоговорВзаиморасчетов=ДоговорВзаиморасчетов; Если ЕстьАвтомобиль Тогда НоваяЗапись.Автомобиль = СтрокаТоваров.Автомобиль; КонецЕсли; НоваяЗапись.Номенклатура=ТекСтрокаПартий.Номенклатура; НоваяЗапись.ХарактеристикаНоменклатуры=ТекСтрокаПартий.ХарактеристикаНоменклатуры; НоваяЗапись.ХозОперация=ШапкаДокумента.ХозОперация; НоваяЗапись.Количество=Мин(ТекСтрокаГТД.Количество,ТекСтрокаПартий.Количество,КоличествоТовара); К=(1/СтрокаТоваров.Количество)*НоваяЗапись.Количество; Сумма=?(СтрокаТоваров.СуммаВсего=NULL,0,СтрокаТоваров.СуммаВсего); НоваяЗапись.Сумма=Окр(обПересчет(Сумма,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаРегл,КурсРегл)*К,2); НоваяЗапись.СуммаУпр=Окр(обПересчет(Сумма,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаУпр,КурсУпр)*К,2); НоваяЗапись.СуммаНДС=Окр(?(СтрокаТоваров.СуммаНДС=NULL,0,обПересчет(СтрокаТоваров.СуммаНДС,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаРегл,КурсРегл)*К),2); КДляСпис = К; К=(1/КоличествоПартии)*НоваяЗапись.Количество; Если ПередаватьНаКомиссиюВесьТовар Тогда НоваяЗапись.СуммаСебестоимостиУпр=Окр(обПересчет(ТекСтрокаПартий.СуммаВсего,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаУпр,КурсУпр)*К,2); НоваяЗапись.СуммаСебестоимостиРегл=Окр(обПересчет(ТекСтрокаПартий.СуммаВсего,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаРегл,КурсРегл)*К,2); ТекСтрокаПартий.СуммаВсего = ТекСтрокаПартий.СуммаВсего - ТекСтрокаПартий.СуммаВсего*К; Иначе НоваяЗапись.СуммаСебестоимостиУпр=ТекСтрокаПартий.СуммаУпр*К; НоваяЗапись.СуммаСебестоимостиРегл=ТекСтрокаПартий.Сумма*К; ТекСтрокаПартий.СуммаУпр = ТекСтрокаПартий.СуммаУпр - НоваяЗапись.СуммаСебестоимостиУпр; ТекСтрокаПартий.Сумма = ТекСтрокаПартий.Сумма - НоваяЗапись.СуммаСебестоимостиРегл; КонецЕсли; КоличествоТовара=КоличествоТовара-НоваяЗапись.Количество; ТекСтрокаПартий.Количество=ТекСтрокаПартий.Количество-НоваяЗапись.Количество; ТекСтрокаГТД.Количество=ТекСтрокаГТД.Количество-НоваяЗапись.Количество; Если ТекСтрокаГТД.Количество=0 Тогда РезультатЗапросаПоГТД.Удалить(ТекСтрокаГТД); ТекСтрокаГТД=Неопределено; КонецЕсли; Если ТекСтрокаПартий.Количество=0 Тогда НаборЗаписейПартии.Удалить(ТекСтрокаПартий); ТекСтрокаПартий=Неопределено; Прервать; КонецЕсли; Если КоличествоТовара=0 Тогда Прервать; КонецЕсли; КонецЦикла; Если КоличествоТовара>0 И (НЕ обЗначениеНеЗаполнено(ТекСтрокаПартий) И ТекСтрокаПартий.Количество>0) Тогда НоваяЗапись=Добавить(); НоваяЗапись.ВидДвижения=ВидДвиженияНакопления.Приход; НоваяЗапись.Период=ШапкаДокумента.Дата; НоваяЗапись.Регистратор=ШапкаДокумента.Ссылка; НоваяЗапись.ДокументПередачи=ШапкаДокумента.Ссылка; НоваяЗапись.Партия=ТекСтрокаПартий.Партия; НоваяЗапись.Контрагент=Контрагент; НоваяЗапись.ДоговорВзаиморасчетов=ДоговорВзаиморасчетов; Если ЕстьАвтомобиль Тогда НоваяЗапись.Автомобиль = СтрокаТоваров.Автомобиль; КонецЕсли; НоваяЗапись.Номенклатура=ТекСтрокаПартий.Номенклатура; НоваяЗапись.ХарактеристикаНоменклатуры=ТекСтрокаПартий.ХарактеристикаНоменклатуры; НоваяЗапись.ХозОперация=ШапкаДокумента.ХозОперация; НоваяЗапись.Количество=Мин(ТекСтрокаПартий.Количество,КоличествоТовара); К=(1/СтрокаТоваров.Количество)*НоваяЗапись.Количество; Сумма=?(СтрокаТоваров.СуммаВсего=NULL,0,СтрокаТоваров.СуммаВсего); НоваяЗапись.Сумма=Окр(обПересчет(Сумма,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаРегл,КурсРегл)*К,2); НоваяЗапись.СуммаУпр=Окр(обПересчет(Сумма,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаУпр,КурсУпр)*К,2); НоваяЗапись.СуммаНДС=Окр(?(СтрокаТоваров.СуммаНДС=NULL,0,обПересчет(СтрокаТоваров.СуммаНДС,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаРегл,КурсРегл)*К),2); К=(1/КоличествоПартии)*НоваяЗапись.Количество; Если ПередаватьНаКомиссиюВесьТовар Тогда НоваяЗапись.СуммаСебестоимостиУпр=Окр(обПересчет(ТекСтрокаПартий.СуммаВсего,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаУпр,КурсУпр)*К,2); НоваяЗапись.СуммаСебестоимостиРегл=Окр(обПересчет(ТекСтрокаПартий.СуммаВсего,ШапкаДокумента.ВалютаДокумента,ШапкаДокумента.КурсДокумента,ВалютаРегл,КурсРегл)*К,2); Иначе НоваяЗапись.СуммаСебестоимостиУпр=ТекСтрокаПартий.СуммаУпр*К; НоваяЗапись.СуммаСебестоимостиРегл=ТекСтрокаПартий.Сумма*К; КонецЕсли; КоличествоТовара=КоличествоТовара-НоваяЗапись.Количество; ТекСтрокаПартий.Количество=ТекСтрокаПартий.Количество-НоваяЗапись.Количество; Если ТекСтрокаПартий.Количество=0 Тогда НаборЗаписейПартии.Удалить(ТекСтрокаПартий); //Прервать; КонецЕсли; Если КоличествоТовара=0 Тогда Прервать; КонецЕсли; КонецЕсли; Если КоличествоТовара=0 Тогда Прервать; КонецЕсли; |
По этому коду у меня получилась следующая штука.
Хотя в партиях
Видимо вместе с
Код |
---|
КоличествоТовара=КоличествоТовара-НоваяЗапись.Количество; |
Код |
---|
Для СчГТД=0 По МассивНайденныхСтрокГТД.ВГраница() Цикл |
Код |
---|
КоличествоПартии=КоличествоПартии-НоваяЗапись.Количество; |