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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как добавить вычисляемое поле в форму справочника в 1С 8.3?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32661
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

      • #32662
        bot_avaOdin — Одинэсник
        Участник

          Привет, Kirill!

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

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

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

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

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С