|
Списание | ☑ | ||
---|---|---|---|---|
0
sovsemnovichek
01.08.13
✎
11:24
|
Почему не списывается со складов? Где ошибка? Списывает из воздуха
ВЫБРАТЬ | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма |ПОМЕСТИТЬ Товар |ИЗ | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры |ГДЕ | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОстаткиНоменклатурыОстатки.Склад КАК Склад, | Товар.Номенклатура КАК Номенклатура, | Товар.Количество КАК Количество, | Товар.Сумма КАК Сумма, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СебестоимостьОстаток, 0) КАК СебестоимостьОстаток |ИЗ | Товар КАК Товар | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(, ) КАК ОстаткиНоменклатурыОстатки | ПО Товар.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура | |УПОРЯДОЧИТЬ ПО | ОстаткиНоменклатурыОстатки.Склад.Приоритет |ИТОГИ | МАКСИМУМ(Количество), | МАКСИМУМ(Сумма), | СУММА(КоличествоОстаток), | СУММА(СебестоимостьОстаток) |ПО | Номенклатура"; Запрос.УстановитьПараметр("Ссылка",Ссылка); // Запрос.УстановитьПараметр("Склад",Склад); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Если Выборка.Количество > Выборка.КоличествоОстаток Тогда N = Выборка.Количество - Выборка.КоличествоОстаток; Сообщить("Не хватает"+" "+N+" "+"товара" ); Отказ = Истина; КонецЕсли; РасчетСебестоимости = (Выборка.СебестоимостьОстаток + Выборка.Сумма) / Выборка.КоличествоОстаток * Выборка.Количество; Движение = Движения.ОстаткиНоменклатуры.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = Выборка.Номенклатура; Движение.Склад = Выборка.Склад; Движение.Количество = Выборка.Количество; Движение.Себестоимость = РасчетСебестоимости; |
|||
1
Лефмихалыч
модератор
01.08.13
✎
11:28
|
потому, что в выборке в поле склад пусто. Сморти в регистр, откуда у тебя остатки без склада
|
|||
2
Как страшно жить
01.08.13
✎
11:28
|
наверное потому что измерение в регистре не заполнено
|
|||
3
sovsemnovichek
01.08.13
✎
11:31
|
идея в том, что списание идет по складам, склады упорядочены по приоритету, и я подумал, что раз я упорядочил их и списание пойдет по складу, у которого приоритет меньший, то зачем указывать склад в документе
|
|||
4
Как страшно жить
01.08.13
✎
11:32
|
(3) смотри регистр!
|
|||
5
sovsemnovichek
01.08.13
✎
13:36
|
сделал так
ВЫБРАТЬ | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма |ПОМЕСТИТЬ Товар |ИЗ | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры |ГДЕ | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОстаткиНоменклатурыОстатки.Склад КАК Склад, | Товар.Номенклатура КАК Номенклатура, | Товар.Количество КАК Количество, | Товар.Сумма КАК Сумма, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СебестоимостьОстаток, 0) КАК СебестоимостьОстаток |ИЗ | Товар КАК Товар | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(, ) КАК ОстаткиНоменклатурыОстатки | ПО Товар.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура | |УПОРЯДОЧИТЬ ПО | ОстаткиНоменклатурыОстатки.Склад.Приоритет |ИТОГИ | МАКСИМУМ(Количество), | МАКСИМУМ(Сумма), | СУММА(КоличествоОстаток), | СУММА(СебестоимостьОстаток) |ПО | Номенклатура"; Запрос.УстановитьПараметр("Ссылка",Ссылка); Запрос.УстановитьПараметр("Склад",Ссылка.Склад); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий()И Выборка.Количество <> 0 Цикл Если Выборка.Количество > Выборка.КоличествоОстаток Тогда N = Выборка.Количество - Выборка.КоличествоОстаток; Сообщить("Не хватает"+" "+N+" "+"товара" ); Отказ = Истина; КонецЕсли; РасчетСебестоимости = (Выборка.СебестоимостьОстаток + Выборка.Сумма) / Выборка.КоличествоОстаток * Выборка.Количество; Движение = Движения.ОстаткиНоменклатуры.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = Выборка.Номенклатура; Движение.Склад = Склад;//Выборка.Склад; Движение.Количество = Выборка.Количество; Движение.Себестоимость = РасчетСебестоимости; КонецЦикла; Он проверяет сразу два склада, но не списывает... Я не понимаю, что нужно сделать |
|||
6
Как страшно жить
01.08.13
✎
13:38
|
(5) см (4)
|
|||
7
sovsemnovichek
01.08.13
✎
13:40
|
блин...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |