powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Контроль остатков. Расходная накладная
2 сообщений из 2, страница 1 из 1
Контроль остатков. Расходная накладная
    #37262298
Yeahkaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Пытаюсь сделать движение документа Расходная накладная по регистру накоплений Остатки номенклатуры. Проблема заключается в том, что не происходит проверка на отрицательные остатки.Не могу понять, в чем ошибка. вот код:

Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиНоменклатуры.Записывать = Истина;
МенеджерВТ = Новый МенеджерВременныхТаблиц;

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоВДокументе
|ПОМЕСТИТЬ НоменклатураДокумента
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура";

Запрос.УстановитьПараметр("Ссылка", Ссылка);

Результат = Запрос.Выполнить();

Запрос2 = Новый Запрос;
Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос2.Текст = "ВЫБРАТЬ
|
| НоменклатураДокумента.Номенклатура,
| НоменклатураДокумента.КоличествоВДокументе,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Количество
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| ,
| Номенклатура В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)) КАК ОстаткиНоменклатурыОстатки,
| НоменклатураДокумента КАК НоменклатураДокумента";

Движения.ОстаткиНоменклатуры.Записать();
Результат = Запрос2.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;

КонецЦикла;

Движения.Записать();

Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Запрос3 = Новый Запрос;
Запрос3.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос3.Текст = "ВЫБРАТЬ
| ОстаткиНоменклатурыОстатки.Номенклатура,
| ОстаткиНоменклатурыОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| ,
| Номенклатура В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)
| И Склад = &Склад) КАК ОстаткиНоменклатурыОстатки
|ГДЕ
| ОстаткиНоменклатурыОстатки.КоличествоОстаток < 0";

Запрос3.УстановитьПараметр("Склад",Склад);
Результат = Запрос3.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Не хватает" + Строка(-ВыборкаДетальныеЗаписи.КоличествоОстаток) + " Единиц материала""" + ВыборкаДетальныеЗаписи.Материал + """";
Сообщение.Сообщить();
Отказ=Истина;
КонецЦикла;
КонецЕсли;


КонецПроцедуры
...
Рейтинг: 0 / 0
Контроль остатков. Расходная накладная
    #37262352
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм - простите а вроде все это в 1 запросе делается? А дата не ставите потому что оперативно? (А если поставить?)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Контроль остатков. Расходная накладная
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]