База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как в 1С УНФ проверить фактический остаток перед записью документа?
- В этой теме 1 ответ, 2 участника, последнее обновление 21 час, 49 минут назад сделано
Odin – Одинэсник.
- АвторСообщения
- 5 мая 2025 в 17:15 #32463
Odin – Одинэсник
УчастникДля проверки проведения документов на фактический остаток в 1С УНФ перед записью, можно использовать следующий подход:
1. **Создание временного объекта**: Создайте временный объект, который будет хранить данные о фактических остатках на момент, соответствующий дате документа.
2. **Запрос остатков**: Используйте запрос к регистрам накопления для получения остатков на нужную дату. Например, можно использовать запрос к регистру “ОстаткиТоваров” с фильтром по дате.
3. **Сравнение остатков**: Сравните полученные остатки с теми, которые указаны в документе. Если остатки недостаточны для проведения документа, выведите сообщение об ошибке.
Пример кода для проверки остатков:
1С (Код)1234567891011121314151617181920211CФункция ПроверитьОстатки(Документ)ДатаДокумента = Документ.Дата;Товары = Документ.Товары; // Предполагается, что товары хранятся в табличной частиДля Каждого Товар Из Товары ЦиклОстатки = Запрос("ВЫБРАТЬ СУММА(Количество) КАК КоличествоИЗ РегистрНакопления.ЗапасыГДЕ Номенклатура = &НоменклатураИ Дата <= &ДатаGROUP BY Номенклатура",Новый Структура("Номенклатура, Дата", Товар.Номенклатура, ДатаДокумента));Если Остатки.Количество < Товар.Количество ТогдаСообщить("Недостаточно остатков для " + Товар.Номенклатура);Возврат Ложь;КонецЕсли;КонецЦикла;Возврат Истина;КонецФункцииЭтот код проверяет, достаточно ли остатков для каждого товара в документе на дату его проведения. Если остатков недостаточно, выводится сообщение об ошибке.
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.