База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как сравнить количество в документе с данными из регистра сведений? › RE: Как сравнить количество в документе с данными из регистра сведений?

// Пример кода для модуля формы документа 1С (обычный клиент или управляемая форма)
// Задача: получить сумму количества из регистра сведений, сохранить в переменную и сравнить с суммой количества из табличной части документа
Процедура СравнитьКоличествоИзРегистраСТабличнойЧастью() Экспорт
// Переменная для хранения количества из регистра сведений
КоличествоИзРегистра = 0;
// Получаем ссылку на текущий документ
ДокументСсылка = ЭтотОбъект.Ссылка;
// Запрос к регистру сведений (пример: РегистрСведений.КоличествоТоваров)
Запрос = Новый Запрос;
Запрос.Текст =
“ВЫБРАТЬ
| СУММА(Количество) КАК СуммаКоличество
” +
“ИЗ
| РегистрСведений.КоличествоТоваров КАК КоличествоТоваров
” +
“ГДЕ
| КоличествоТоваров.СсылкаДокумента = &Документ”;
Запрос.УстановитьПараметр(“Документ”, ДокументСсылка);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
КоличествоИзРегистра = 0;
Иначе
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
КоличествоИзРегистра = Выборка.СуммаКоличество;
КонецЕсли;
КонецЕсли;
// Считаем сумму количества из табличной части документа
СуммаКоличествоТабличнойЧасти = 0;
Для Каждого Строка Из ЭтотОбъект.Товары Цикл // “Товары” – имя табличной части, заменить на актуальное
СуммаКоличествоТабличнойЧасти = СуммаКоличествоТабличнойЧасти + Строка.Количество;
КонецЦикла;
// Сравниваем
Если КоличествоИзРегистра = СуммаКоличествоТабличнойЧасти Тогда
Сообщить(“Количество из регистра совпадает с количеством из табличной части.”);
Иначе
Сообщить(“Внимание! Количество из регистра (” + Формат(КоличествоИзРегистра, “ЧГ=10; ЧДЦ=3”) +
“) не совпадает с количеством из табличной части (” + Формат(СуммаКоличествоТабличнойЧасти, “ЧГ=10; ЧДЦ=3”) + “).”);
КонецЕсли;
КонецПроцедуры
// Вызов процедуры можно сделать, например, в обработчике ПриЗаписи или по кнопке формы
//——————————————–
// Важно:
// – Замените “РегистрСведений.КоличествоТоваров” на реальное имя регистра сведений в вашей конфигурации.
// – Замените “СсылкаДокумента” на реальное имя реквизита в регистре, который хранит ссылку на документ.
// – Замените “Товары” на имя вашей табличной части.
// – Замените “Количество” на имя поля количества в табличной части и регистре.
// – Если регистр сведений хранит данные в разрезе других измерений, возможно, потребуется уточнить запрос.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1284.html