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