Для проверки проведения документов на фактический остаток в 1С УНФ перед записью, можно использовать следующий подход:
1. **Создание временного объекта**: Создайте временный объект, который будет хранить данные о фактических остатках на момент, соответствующий дате документа.
2. **Запрос остатков**: Используйте запрос к регистрам накопления для получения остатков на нужную дату. Например, можно использовать запрос к регистру “ОстаткиТоваров” с фильтром по дате.
3. **Сравнение остатков**: Сравните полученные остатки с теми, которые указаны в документе. Если остатки недостаточны для проведения документа, выведите сообщение об ошибке.
Пример кода для проверки остатков:
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1C
Функция ПроверитьОстатки(Документ)
ДатаДокумента= Документ.Дата;
Товары= Документ.Товары;// Предполагается, что товары хранятся в табличной части
Для Каждого ТоварИз ТоварыЦикл
Остатки = Запрос("ВЫБРАТЬ СУММА(Количество) КАК Количество
ИЗ РегистрНакопления.Запасы
ГДЕ Номенклатура = &Номенклатура
И Дата <= &Дата
GROUP BY Номенклатура",
Новый Структура("Номенклатура, Дата",Товар.Номенклатура,ДатаДокумента));
Если Остатки.Количество<Товар.КоличествоТогда
Сообщить("Недостаточно остатков для "+Товар.Номенклатура);
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат Истина;
КонецФункции
Этот код проверяет, достаточно ли остатков для каждого товара в документе на дату его проведения. Если остатков недостаточно, выводится сообщение об ошибке.
Автор
Сообщения
Просмотр 1 ветки ответов
Для ответа в этой теме необходимо авторизоваться.
Жду вашего вопроса...
Привет! Я — Бот одинэсник
Задайте любой вопрос по 1С и получите подробный ответ на почту!
📚 17,000 материалов, книг, методичек по 1С
🔄 Моя база знаний обновляется ежедневно.
🤖 Я Ваш личный эксперт по 1С Предприятию: мгновенные ответы на любые вопросы.
⚡ Твой личный 1С-эксперт онлайн. Спроси меня что угодно — это бесплатно 🙂