Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Контроль остатков. Расходная накладная
|
|||
|---|---|---|---|
|
#18+
Добрый день! Пытаюсь сделать движение документа Расходная накладная по регистру накоплений Остатки номенклатуры. Проблема заключается в том, что не происходит проверка на отрицательные остатки.Не могу понять, в чем ошибка. вот код: Процедура ОбработкаПроведения(Отказ, Режим) Движения.ОстаткиНоменклатуры.Записывать = Истина; МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоВДокументе |ПОМЕСТИТЬ НоменклатураДокумента |ИЗ | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры |ГДЕ | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура"; Запрос.УстановитьПараметр("Ссылка", Ссылка); Результат = Запрос.Выполнить(); Запрос2 = Новый Запрос; Запрос2.МенеджерВременныхТаблиц = МенеджерВТ; Запрос2.Текст = "ВЫБРАТЬ | | НоменклатураДокумента.Номенклатура, | НоменклатураДокумента.КоличествоВДокументе, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Количество |ИЗ | РегистрНакопления.ОстаткиНоменклатуры.Остатки( | , | Номенклатура В | (ВЫБРАТЬ | НоменклатураДокумента.Номенклатура | ИЗ | НоменклатураДокумента)) КАК ОстаткиНоменклатурыОстатки, | НоменклатураДокумента КАК НоменклатураДокумента"; Движения.ОстаткиНоменклатуры.Записать(); Результат = Запрос2.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Движение = Движения.ОстаткиНоменклатуры.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; Движение.Склад = Склад; Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе; КонецЦикла; Движения.Записать(); Если Режим = РежимПроведенияДокумента.Оперативный Тогда Запрос3 = Новый Запрос; Запрос3.МенеджерВременныхТаблиц = МенеджерВТ; Запрос3.Текст = "ВЫБРАТЬ | ОстаткиНоменклатурыОстатки.Номенклатура, | ОстаткиНоменклатурыОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ОстаткиНоменклатуры.Остатки( | , | Номенклатура В | (ВЫБРАТЬ | НоменклатураДокумента.Номенклатура | ИЗ | НоменклатураДокумента) | И Склад = &Склад) КАК ОстаткиНоменклатурыОстатки |ГДЕ | ОстаткиНоменклатурыОстатки.КоличествоОстаток < 0"; Запрос3.УстановитьПараметр("Склад",Склад); Результат = Запрос3.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Не хватает" + Строка(-ВыборкаДетальныеЗаписи.КоличествоОстаток) + " Единиц материала""" + ВыборкаДетальныеЗаписи.Материал + """"; Сообщение.Сообщить(); Отказ=Истина; КонецЦикла; КонецЕсли; КонецПроцедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2011, 11:43 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=37262298&tid=1521334]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
64ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 437ms |

| 0 / 0 |
