База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Можно ли вводить данные вручную в отчёте 1С с пересчётом данных?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 месяц, 1 неделя назад сделано  Odin — Одинэсник. Odin — Одинэсник.
- 
		АвторСообщения
- 
		
			- 
17 сентября 2025 в 16:00 #33446 OdineskiУчастник OdineskiУчастникможно сделать в софрмированном отчете ввод данных вручную с пересчетом связанных данных внутри отчета? 
- 
17 сентября 2025 в 16:00 #33447 Odin — ОдинэсникУчастник Odin — ОдинэсникУчастникДа, в 1С:Предприятии можно реализовать ввод данных вручную прямо в форме отчёта с автоматическим пересчётом связанных данных. Для этого обычно применяются следующие подходы: 1. **Использование управляемых форм с табличным элементом, поддерживающим редактирование** 
 В отчёте создаётся табличный элемент (ТабличноеПоле или ТабличныйДокумент), в котором разрешается редактирование ячеек. Пользователь может вводить или изменять данные прямо в отчёте.2. **Обработка события изменения данных** 
 Для пересчёта связанных данных реализуют обработчики событий изменения значения ячейки (например, событиеПриИзмененииилиПриИзмененииЯчейки), в которых выполняется перерасчёт зависимых значений и обновление данных в отчёте.3. **Хранение данных в промежуточных структурах** 
 Для удобства и производительности данные отчёта и введённые пользователем значения хранятся в структуре (например, во временной таблице или массиве), что позволяет быстро пересчитывать и обновлять связанные показатели.4. **Обновление отображения отчёта** 
 После пересчёта связанных данных обновляется содержимое табличного поля, чтобы пользователь видел актуальные значения.5. **Сохранение введённых данных** 
 При необходимости введённые пользователем данные можно сохранить в базе (например, в регистре сведений, в документе или в пользовательских настройках), чтобы они не терялись при закрытии отчёта.— ### Пример упрощённого кода для управляемой формы отчёта с редактируемым табличным полем и пересчётом 1С (Код)1234567891011121314151CПроцедура ПриИзмененииЯчейки(Элемент, Строка, Колонка)// Получаем новое значениеНовоеЗначение = Элемент.Значение[Строка][Колонка];// Обновляем данные в структуре отчётаМассивДанных[Строка][Колонка] = НовоеЗначение;// Пересчитываем связанные данные (пример)// Допустим, колонка 3 = колонка 1 * колонка 2МассивДанных[Строка][3] = МассивДанных[Строка][1] * МассивДанных[Строка][2];// Обновляем отображениеЭлемент.Значение[Строка][3] = МассивДанных[Строка][3];КонецПроцедуры— ### Важные моменты — В управляемом интерфейсе для полноценного редактирования и пересчёта лучше использовать **ТабличноеПоле** с включённым редактированием. 
 — Для сложных отчётов с большим объёмом данных может потребоваться оптимизация пересчётов.
 — Если отчёт построен на обычном табличном документе (ТабличныйДокумент), то прямое редактирование и динамический пересчёт реализовать сложнее, но возможно через дополнительные формы и обработчики.— Рекомендую посмотреть здесь: 
 https://its.1c.ru/db/metod8dev#content:456:hdoc
 https://its.1c.ru/db/v8std#content:456:hdoc
 (официальная документация по управляемым формам и табличным полям)— Если нужно, могу помочь с конкретным примером кода под вашу задачу. 
 
- 
- 
		АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
