N
NocturnalMortum
Доброго времени суток. Попытался реализовать списание по партиям. Проблема в том что при обходе по циклу он не обходит первую накладную, и при проведении 2-й накладной получается ваще чепуха. Прошу помощи, вот код:
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| ПартииТовара.Номенклатура КАК Номенклатура,
| ЕСТЬNULL(ПартииТовара.Количество, 0) КАК КолПарт,
| ПартииТовара.Цена КАК ЦенаПартии,
| ЕСТЬNULL(Накладная.Номенклатура, 0) КАК ТоварНакл,
| Накладная.Количество КАК КоличествоВДокументе,
| Накладная.Цена КАК ЦенаНакл,
| Накладная.Партии,
| ПартииТовара.Партия КАК ПартияТов
|ИЗ
| (ВЫБРАТЬ
| РасходнаяНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| СУММА(РасходнаяНакладнаяМатериалы.Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяМатериалы.Цена) КАК Цена,
| РасходнаяНакладнаяМатериалы.Партии КАК Партии,
| РасходнаяНакладнаяМатериалы.Ссылка КАК Ссылка
| ИЗ
| Документ.РасходнаяНакладная.Материалы КАК РасходнаяНакладнаяМатериалы
|
| СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяМатериалы.Номенклатура,
| РасходнаяНакладнаяМатериалы.Партии,
| РасходнаяНакладнаяМатериалы.Ссылка) КАК Накладная
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТовара КАК ПартииТовара
| ПО (ПартииТовара.Номенклатура = Накладная.Номенклатура)
|ГДЕ
| Накладная.Ссылка = &Ссылка
|
|ДЛЯ ИЗМЕНЕНИЯ
| РегистрНакопления.ПартииТовара";
Запрос.УстановитьПараметр("Ссылка",ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() цикл
СписатьКол=Выборка.КоличествоВДокументе;
КоличествоПартии=Выборка.КолПарт;
Сообщить (Строка(Выборка.ПартияТов)+" "+Строка(Выборка.КоличествоВДокументе)+" "+Строка(Выборка.КолПарт));
Пока Число(СписатьКол)>0 и Выборка.Следующий() цикл
КолСпис=МИН(СписатьКол, Выборка.КолПарт);
//Если Строка(КоличествоПартии)>Строка(СписатьКол) тогда
Движение = Движения.ПартииТовара.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Количество = КолСпис;
Движение.Себестоимость=Выборка.ЦенаПартии*Выборка.КолПарт/Выборка.КолПарт;
Движение.Цена = ТекСтрокаМатериалы.Цена;
СписатьКол=СписатьКол-КолСпис;
//КонецЕсли;
КонецЦикла;
КонецЦикла;
Заранее благодарен.
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| ПартииТовара.Номенклатура КАК Номенклатура,
| ЕСТЬNULL(ПартииТовара.Количество, 0) КАК КолПарт,
| ПартииТовара.Цена КАК ЦенаПартии,
| ЕСТЬNULL(Накладная.Номенклатура, 0) КАК ТоварНакл,
| Накладная.Количество КАК КоличествоВДокументе,
| Накладная.Цена КАК ЦенаНакл,
| Накладная.Партии,
| ПартииТовара.Партия КАК ПартияТов
|ИЗ
| (ВЫБРАТЬ
| РасходнаяНакладнаяМатериалы.Номенклатура КАК Номенклатура,
| СУММА(РасходнаяНакладнаяМатериалы.Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяМатериалы.Цена) КАК Цена,
| РасходнаяНакладнаяМатериалы.Партии КАК Партии,
| РасходнаяНакладнаяМатериалы.Ссылка КАК Ссылка
| ИЗ
| Документ.РасходнаяНакладная.Материалы КАК РасходнаяНакладнаяМатериалы
|
| СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяМатериалы.Номенклатура,
| РасходнаяНакладнаяМатериалы.Партии,
| РасходнаяНакладнаяМатериалы.Ссылка) КАК Накладная
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТовара КАК ПартииТовара
| ПО (ПартииТовара.Номенклатура = Накладная.Номенклатура)
|ГДЕ
| Накладная.Ссылка = &Ссылка
|
|ДЛЯ ИЗМЕНЕНИЯ
| РегистрНакопления.ПартииТовара";
Запрос.УстановитьПараметр("Ссылка",ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() цикл
СписатьКол=Выборка.КоличествоВДокументе;
КоличествоПартии=Выборка.КолПарт;
Сообщить (Строка(Выборка.ПартияТов)+" "+Строка(Выборка.КоличествоВДокументе)+" "+Строка(Выборка.КолПарт));
Пока Число(СписатьКол)>0 и Выборка.Следующий() цикл
КолСпис=МИН(СписатьКол, Выборка.КолПарт);
//Если Строка(КоличествоПартии)>Строка(СписатьКол) тогда
Движение = Движения.ПартииТовара.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Количество = КолСпис;
Движение.Себестоимость=Выборка.ЦенаПартии*Выборка.КолПарт/Выборка.КолПарт;
Движение.Цена = ТекСтрокаМатериалы.Цена;
СписатьКол=СписатьКол-КолСпис;
//КонецЕсли;
КонецЦикла;
КонецЦикла;
Заранее благодарен.