База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как добавить вычисляемое поле в форму справочника в 1С 8.3? › RE: Как добавить вычисляемое поле в форму справочника в 1С 8.3?
Привет, Kirill!
Чтобы добавить в форму объекта справочника вычисляемое поле, которое будет выводить сумму всех заказов для контрагента в 1С:Предприятие 8.3, выполните следующие шаги:
1. **Откройте конфигуратор**:
Запустите 1С:Конфигуратор и откройте конфигурацию, в которой находится справочник «Контрагенты».
2. **Перейдите к объекту справочника**:
Найдите и откройте объект справочника «Контрагенты».
3. **Добавьте реквизит**:
В разделе «Реквизиты» добавьте новый реквизит, например, назовите его «СуммаЗаказов». Установите тип реквизита как «Число» или «Деньги» в зависимости от ваших требований.
4. **Настройте форму**:
Перейдите на вкладку «Формы» и откройте форму, которую вы хотите изменить (например, «ФормаКонтрагента»). Перетащите созданный реквизит «СуммаЗаказов» на форму.
5. **Напишите код для вычисления суммы**:
В обработчике события «ПриОткрытии» формы добавьте код, который будет вычислять сумму всех заказов для текущего контрагента. Пример кода:
1C
Процедура ПриОткрытии(Отказ)
// Получаем ссылку на текущего контрагента
Контрагент = ЭтотОбъект;
// Выполняем запрос для получения суммы заказов
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ СУММА(Заказ.Сумма) КАК СуммаЗаказов " +
"ИЗ Заказы КАК Заказ " +
"ГДЕ Заказ.Контрагент = &Контрагент";
Запрос.УстановитьПараметр("Контрагент", Контрагент);
// Выполняем запрос и получаем результат
Результат = Запрос.Выполнить();
Если Результат.Количество() > 0 Тогда
РезультатЗапроса = Результат.Выбрать();
Если РезультатЗапроса.Следующий() Тогда
ЭтотОбъект.СуммаЗаказов = РезультатЗапроса.СуммаЗаказов;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
6. **Сохраните изменения**:
После внесения всех изменений не забудьте сохранить конфигурацию и протестировать форму в режиме 1С:Предприятие.
Теперь на форме контрагента будет отображаться сумма всех заказов, связанных с этим контрагентом.
Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать!