|
Ошибка при проведении документа | ☑ | ||
---|---|---|---|---|
0
Lecowi
13.05.19
✎
10:14
|
При попытке проведения пишет ошибку, что недостаточно товара для продажи. К примеру, я закупаю 10 валиков, они отображаются у меня в остатках, но когда я продаю валик хотя бы в одном количестве, пишет, что недостаточно.
Процедура из МодуляОбъекта Документ.ОтпускМатериалов Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр ОстаткиНаСкладе Расход Движения.ОстаткиНаСкладе.Записывать = Истина; Для Каждого ТекСтрокаОтгружаемыеТовары Из ОтгружаемыеТовары Цикл Движение = Движения.ОстаткиНаСкладе.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаОтгружаемыеТовары.Номенклатура; Движение.Склад = Склад; Движение.Количество = ТекСтрокаОтгружаемыеТовары.Количество; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | Товары.Номенклатура КАК Номенклатура, | СУММА(Товары.Количество) КАК Количество |ПОМЕСТИТЬ Товары |ИЗ | Документ.ОтпускМатериалов.ОтгружаемыеТовары КАК Товары |ГДЕ | Товары.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | Товары.Номенклатура | |ИНДЕКСИРОВАТЬ ПО | Номенклатура ; |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Товары.Номенклатура КАК Номенклатура, | Товары.Количество КАК Количество |ИЗ | Товары КАК Товары"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Движения.ОстаткиНаСкладе.Очистить(); ВыборкаТовары = РезультатЗапроса.Выбрать(); Пока ВыборкаТовары.Следующий() Цикл Движение = Движения.ОстаткиНаСкладе.ДобавитьРасход(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ВыборкаТовары.Номенклатура; Движение.Количество = ВыборкаТовары.Количество; КонецЦикла; Движения.ОстаткиНаСкладе.Записывать = Истина; Движения.Записать(); Запрос.Текст = "ВЫБРАТЬ | Остатки.Номенклатура КАК номенклатура, | Остатки.Склад КАК склад, | ПРЕДСТАВЛЕНИЕССЫЛКИ(Остатки.Номенклатура) КАК номенклатураПредставление, | -Остатки.КоличествоОстаток КАК дефицит |ИЗ | РегистрНакопления.ОстаткиНаСкладе.Остатки( | &моментвремени, | Номенклатура В | (ВЫБРАТЬ | Товары.Номенклатура КАК Номенклатура | ИЗ | Товары КАК Товары)) КАК Остатки |ГДЕ | Остатки.КоличествоОстаток < 0"; ГраницаКонтроля = Новый Граница(МоментВремени(), ВидГраницы.Включая); Запрос.УстановитьПараметр("моментвремени", ГраницаКонтроля); РезультатЗапроса = Запрос.Выполнить(); // Если Не РезультатЗапроса.Пустой()Тогда Отказ = Истина; ВыборкаОшибки = РезультатЗапроса.Выбрать(); Пока ВыборкаОшибки.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Номенклатуры " + ВыборкаОшибки.НоменклатураПредставление + "недостаточно в количество " +ВыборкаОшибки.дефицит+" шт."; Сообщение.Сообщить(); КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
1
hhhh
13.05.19
✎
10:21
|
(0) ну во-первых вот тут какая-то фигня
| Остатки.Склад КАК склад, на всех складах проверяете, что ли? |
|||
2
sqr4
13.05.19
✎
10:25
|
Пока ВыборкаТовары.Следующий() Цикл
Движение = Движения.ОстаткиНаСкладе.ДобавитьРасход(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ВыборкаТовары.Номенклатура; Движение.Количество = ВыборкаТовары.Количество; КонецЦикла; ДА и тут что то складом и не пахнет. Как я понимаю, прихода на пустой склад у вас нет) |
|||
3
Lecowi
13.05.19
✎
10:35
|
Спасибо, заработало
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |