ПолеФормы.ПутьКДаннымПодвала

Свойства · FooterDataPath

Тип: Строка. Содержит путь к реквизиту, который отображается в подвале.

Полное описание, параметры и ограничения

ПолеФормы.ПутьКДаннымПодвала (FormField.FooterDataPath)

ПолеФормы (FormField)

ПутьКДаннымПодвала (FooterDataPath)

Доступен, начиная с версии 8.2.

Использование:
Чтение и запись.
Описание:
Тип: Строка.
Содержит путь к реквизиту, который отображается в подвале.
Доступность:

Сервер, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Связать подвал с отдельным реквизитом формы

ПутьКДаннымПодвала указывает на собственный числовой реквизит ИтогКоличества. Значение нужно рассчитывать явно, сама привязка не делает сумму.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. В учебной базе: Файл → Новый → Внешняя обработка. Создайте управляемую форму и назначьте её основной. Дайте обработке имя УчебнаяТаблица.

  2. Не добавляйте вручную реквизит Товары и одноимённые элементы: код создаст их при открытии. Модуль формы для этой задачи должен быть пустым.

  3. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Сохраните отдельную учебную EPF и откройте через Файл → Открыть.

  4. Данные Книга/Ручка создаются в памяти формы. Справочники, документы и регистры вашей конфигурации не читаются и не записываются.

  5. Проверяйте в настольном тонком/толстом или веб-клиенте 8.5.1.1343, не в мобильном приложении. Для каждого урока отдельная учебная форма с пустым модулем.

  6. Изменение учебных строк остаётся только в открытой форме. При её новом открытии снова создаются Книга/3 и Ручка/1. Настройки таблицы не являются правами доступа к данным.


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));

    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "A-01";
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "B-02";
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 1;

    ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
    Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
    Таблица.ПутьКДанным = "Товары";
    Таблица.Заголовок = "Учебные товары";
    Таблица.Шапка = Истина;
    Таблица.АвтоВводНезаполненного = Ложь;
    Таблица.АвтоВводНовойСтроки = Ложь;
    Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
        Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
        Колонка.Вид = ВидПоляФормы.ПолеВвода;
        Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
        Колонка.Заголовок = ИмяКолонки;
    КонецЦикла;
    Новые = Новый Массив;
    Новые.Добавить(Новый РеквизитФормы("ИтогКоличества", Новый ОписаниеТипов("Число")));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    ЭтаФорма.ИтогКоличества = ЭтаФорма.Товары.Итог("Количество");
    Таблица.Подвал = Истина;
    Элементы.ТоварыКоличество.ОтображатьВПодвале = Истина;
    Элементы.ТоварыКоличество.ПутьКДаннымПодвала = "ИтогКоличества";
    Элементы.ТоварыКоличество.УстановитьДействие("ПриИзменении", "КоличествоПриИзменении");
КонецПроцедуры

&НаКлиенте
Процедура КоличествоПриИзменении(Элемент)
    ЭтаФорма.ИтогКоличества = ЭтаФорма.Товары.Итог("Количество");
    Сообщить("Реквизит итога формы: " + Строка(ЭтаФорма.ИтогКоличества));
КонецПроцедуры

Разбор по шагам

  1. При создании один раз добавляем собственный скаляр ИтогКоличества. Не создавайте его вручную параллельно.

  2. Числовой реквизит заполняем результатом Итог("Количество").

  3. Поле подвала связываем путём без имени колонки: ИтогКоличества — отдельный реквизит формы.

  4. ПриИзменении пересчитывает реквизит, а привязка отображает его значение.

  5. Это альтернатива ручному ТекстПодвала: здесь не назначаем его одновременно с привязкой.

Как проверить результат

  1. На исходных двух товарах реквизит и подвал показывают 4.

  2. После изменения Книги на 5 обработчик сообщает 6; подвал отображает тот же реквизит.

Ожидаемый результат

Показана граница между вычислением, хранением в форме и отображением подвала.

На что обратить внимание

  1. Путь не создаёт реквизит и не запускает суммирование.

  2. ИзменитьРеквизиты выполняется на сервере и ресурсоёмок; здесь это только создание учебной формы.

  3. Не создавайте в одном уроке и ручной текст, и привязку с противоположными значениями.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.