Списание себестоимости по партиям

  • Автор темы Автор темы NocturnalMortum
  • Дата начала Дата начала
N

NocturnalMortum

Доброго времени суток, снова я к вам за помощью уважаемые специалисты. В общем взялся я решать задачки по подготовке к экзамену 1С специалист, и залип на задании по списанию себестоимости. Если честно я с трудом представляю себе решение этой задачи. В общем создал в регистре "ОстатокТоваров" измерение "Партии", повязал все это с расходной и приходной накладной. Дальше залип, прошу дать ссылочку на возможную литературу или помочь разобраться.
 
А в чем проблема? при приходе заполняешь измерение партии при расходе отбираешь остатки с партией ,если по нулям - запрет проведения, и всё.
 


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

Но выдает ошибку на строке "Пока Число(СписатьКол)>0 и Выборка.Следующий() цикл", пишет что типы для сравнения разные, но если я преобразовываю в число, то пишет что преобразование не возможно. Прошу помочь, и по возможности посмотреть что еще поправить можно.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!