По теме из базы знаний
- Оформление ветеринарных документов на продукты питания и грядущие глобальные изменения в 1С (часть 1)
- Купить 1С:Касса облачное приложение (программа для ПК) цены от 2 400 руб.
- SynchroWB - Интеграция 1С и Wildberries по API с УТ, КА, ERP, УНФ, Розница 3: расширение для синхронизации и обмена
- Договор купли-продажи в 1С:Бухгалтерии
- Статусы оплаты расходов УСН в 1С: Бухгалтерии 3.0
Найденные решения
Создаёшь РегистрНакопления.
В модуле документа для которого необходим контроль(переделаешь под себя сам):
В модуле документа для которого необходим контроль(переделаешь под себя сам):
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр ОстаткиТоваров Расход
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого ТекСтрокаПереченьПотребовавшихсяМатериалов Из ПереченьПотребовавшихсяМатериалов Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Товар = ТекСтрокаПереченьПотребовавшихсяМатериалов.Материалы;
Движение.Количество = ТекСтрокаПереченьПотребовавшихсяМатериалов.Количество;
КонецЦикла;
Движения.Записать();
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиТоваровОстатки.Товар КАК Товар,
| ОстаткиТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(, Товар В (&МассивТоваров)) КАК ОстаткиТоваровОстатки
|ГДЕ
| ОстаткиТоваровОстатки.КоличествоОстаток < 0";
Запрос.УстановитьПараметр("0", 0);
Запрос.УстановитьПараметр("МассивТоваров", ПереченьПотребовавшихсяМатериалов.ВыгрузитьКолонку("Материалы"));
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если НЕ РезультатЗапроса.Пустой() Тогда
Отказ = Истина;
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить("На складе не хватает: " + ВыборкаДетальныеЗаписи.Товар + " в количестве " + ((-1) * ВыборкаДетальныеЗаписи.КоличествоОстаток));
КонецЦикла;
КонецЕсли;
КонецПроцедуры;
Показать
Отменить
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Создаёшь РегистрНакопления.
В модуле документа для которого необходим контроль(переделаешь под себя сам):
В модуле документа для которого необходим контроль(переделаешь под себя сам):
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр ОстаткиТоваров Расход
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого ТекСтрокаПереченьПотребовавшихсяМатериалов Из ПереченьПотребовавшихсяМатериалов Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Товар = ТекСтрокаПереченьПотребовавшихсяМатериалов.Материалы;
Движение.Количество = ТекСтрокаПереченьПотребовавшихсяМатериалов.Количество;
КонецЦикла;
Движения.Записать();
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиТоваровОстатки.Товар КАК Товар,
| ОстаткиТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(, Товар В (&МассивТоваров)) КАК ОстаткиТоваровОстатки
|ГДЕ
| ОстаткиТоваровОстатки.КоличествоОстаток < 0";
Запрос.УстановитьПараметр("0", 0);
Запрос.УстановитьПараметр("МассивТоваров", ПереченьПотребовавшихсяМатериалов.ВыгрузитьКолонку("Материалы"));
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если НЕ РезультатЗапроса.Пустой() Тогда
Отказ = Истина;
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить("На складе не хватает: " + ВыборкаДетальныеЗаписи.Товар + " в количестве " + ((-1) * ВыборкаДетальныеЗаписи.КоличествоОстаток));
КонецЦикла;
КонецЕсли;
КонецПроцедуры;
Показать
Отменить
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот