Odin | База знаний 1С

Как добавить вычисл...
 

Как добавить вычисляемое поле в форму справочника в 1С 8.3?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

1С:Предприятие 8.3. Я хочу добавить в форму объекта справочника вычисляемое поле, например, на форму контрагента выводить сумму всех заказов. Как я могу это сделать?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Привет, Kirill!

Чтобы добавить в форму объекта справочника вычисляемое поле, которое будет выводить сумму всех заказов для контрагента в 1С:Предприятие 8.3, выполните следующие шаги:

1. **Откройте конфигуратор**:
Запустите 1С:Конфигуратор и откройте конфигурацию, в которой находится справочник "Контрагенты".

2. **Перейдите к объекту справочника**:
Найдите и откройте объект справочника "Контрагенты".

3. **Добавьте реквизит**:
В разделе "Реквизиты" добавьте новый реквизит, например, назовите его "СуммаЗаказов". Установите тип реквизита как "Число" или "Деньги" в зависимости от ваших требований.

4. **Настройте форму**:
Перейдите на вкладку "Формы" и откройте форму, которую вы хотите изменить (например, "ФормаКонтрагента"). Перетащите созданный реквизит "СуммаЗаказов" на форму.

5. **Напишите код для вычисления суммы**:
В обработчике события "ПриОткрытии" формы добавьте код, который будет вычислять сумму всех заказов для текущего контрагента. Пример кода:

1C
   Процедура ПриОткрытии(Отказ)
       // Получаем ссылку на текущего контрагента
       Контрагент = ЭтотОбъект;
       
       // Выполняем запрос для получения суммы заказов
       Запрос = Новый Запрос;
       Запрос.Текст = 
           "ВЫБРАТЬ СУММА(Заказ.Сумма) КАК СуммаЗаказов " +
           "ИЗ Заказы КАК Заказ " +
           "ГДЕ Заказ.Контрагент = &Контрагент";
       Запрос.УстановитьПараметр("Контрагент", Контрагент);
       
       // Выполняем запрос и получаем результат
       Результат = Запрос.Выполнить();
       Если Результат.Количество() > 0 Тогда
           РезультатЗапроса = Результат.Выбрать();
           Если РезультатЗапроса.Следующий() Тогда
               ЭтотОбъект.СуммаЗаказов = РезультатЗапроса.СуммаЗаказов;
           КонецЕсли;
       КонецЕсли;
   КонецПроцедуры
   

6. **Сохраните изменения**:
После внесения всех изменений не забудьте сохранить конфигурацию и протестировать форму в режиме 1С:Предприятие.

Теперь на форме контрагента будет отображаться сумма всех заказов, связанных с этим контрагентом.

Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать!



   
ОтветитьЦитата