Ошибка в Партиях товаров отданных

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Ошибка в Партиях товаров отданных, Ошибка в Партиях товаров отданных
 
Смотрел на релизе 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 По МассивНайденныхСтрокГТД.ВГраница() Цикл
надо было сделать еще
Код
КоличествоПартии=КоличествоПартии-НоваяЗапись.Количество;
 
Евгений Шульц, добрый день, В коде ошибки нет. Рекомендуем проанализировать Регистр накопления "ГТД Партий товаров компании".
 
А как тогда объяснить первый скрин?
 
Разве вот такая ситуация невозможна?  
 
Евгений Шульц, мы не оказываем консультации по измененной конфигурации.
 
Очень странный ответ.
Разве нам поставщик не может поставить товар с несколькими ГТД.
Если будет как у меня на скрине
то будет повторение ситуации. И без разницы измененная конфигурация или нет.
 
Евгений Шульц, уточните, пожалуйста, в чем у Вас ошибка?
 
В партиях товаров ушло 15 000 а в Партии товаров отданные пришло только 12600. Где еще 2400?
 
Цитата
Светлана Сулименко написал:
Евгений Шульц, добрый день, В коде ошибки нет. Рекомендуем проанализировать Регистр накопления "ГТД Партий товаров компании".
 
Вот
Вот такое поступление

Что тут не так?  
 
Евгений Шульц, на типовом релизе 5,1,27,04 указанная Вами ситуация не воспроизводится. Вышлите, пожалуйста, на почту alfa@rarus.ru полный порядок воспроизведения описываемой проблемы, возможно мы что-то неверно смотрим.
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С