Контроль остатков через модуль регистра накопления.
Доброго всем дня.
Столкнулся сегодня с такой задачей:
Нужно контролировать остатки в модуле набора записей РегистраНакопления(ТоварыНаСкладах.) И еще есть реквизиты у справочников Номенклатуры и Склада (Контролировать остаток или нет (тип булево)). Вот и вроде все написал....И запрос сделал...Но что то не идет....процедура приЗаписи.
Вот запрос:
Есть у кого какие мысли.
Столкнулся сегодня с такой задачей:
Нужно контролировать остатки в модуле набора записей РегистраНакопления(ТоварыНаСкладах.) И еще есть реквизиты у справочников Номенклатуры и Склада (Контролировать остаток или нет (тип булево)). Вот и вроде все написал....И запрос сделал...Но что то не идет....процедура приЗаписи.
Вот запрос:
Запрос = Новый запрос(
"ВЫБРАТЬ
| Т.Номенклатура КАК Номенклатура,
| Т.Склад КАК Склад,
| Т.КоличествоОстаток КАК КоличествоОстаток,
| Т.Номенклатура.КонтролироватьОстаток КАК НоменклатураКонтролироватьОстаток,
| Т.Склад.КонтролироватьОстаток КАК СкладКонтролироватьОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладе.Остатки(
| ,
| (Номенклатура, Склад) В
| (ВЫБРАТЬ
| ТТ.Номенклатура,
| ТТ.Склад
| ИЗ
| РегистрНакопления.ТоварыНаСкладе КАК ТТ
| ГДЕ
| ТТ.Регистратор = &Регистратор
| И (ТТ.ВидДвижения = &Расход
| И ТТ.Количество > 0
| ИЛИ ТТ.ВидДвижения = &Приход
| И ТТ.Количество < 0))) КАК Т
|ГДЕ
| Т.КоличествоОстаток < 0
| И Т.Номенклатура.КонтролироватьОстаток = ИСТИНА
| И Т.Склад.КонтролироватьОстаток = ИСТИНА");
ПоказатьЕсть у кого какие мысли.
По теме из базы знаний
- Еще один взгляд на проблему «жизнь без последовательностей». Часть вторая (практическая)
- Должно быть NULL в регистре бухгалтерии Хозрасчетный
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
- Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)
- Автоматизация труда программиста. Библиотека прикладных функций
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(9)
Нет конечно дальше
Нет конечно дальше
Запрос.УстановитьПараметр("Регистратор", ЭтотОбъект.Отбор.Регистратор.Значение);
Запрос.УстановитьПараметр("Расход", ВидДвиженияНакопления.Расход);
Запрос.УстановитьПараметр("Приход", ВидДвиженияНакопления.Приход);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Отказ=Истина;
Сообщить("Товар не учитывается на складе!");
КонецЕсли;
Показать
Теоретически можно и так. На стажерской лекции говорили о том, что в ерп, в отличие от упп реализован другой механизм контроля остатков. В новом варианте сначала записываются движения как есть, затем выполняется запрос к остаткам с условием <0. Если запрос не пустой, транзакция отменяется и это в целом быстрее, чем как обычно.
Меня немного удивило насколько критично количество запросов в модуле объекта...
В вашем примере условие на количество используется до проведения и соответственно не работает.
Меня немного удивило насколько критично количество запросов в модуле объекта...
В вашем примере условие на количество используется до проведения и соответственно не работает.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот