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