ОбработкаЗапросаОбновления: собственная управляемая таблица

Учебные задачи

Мобильный запрос обновления повторно заполняет собственную таблицу двумя учебными строками через показанную серверную процедуру.

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

Модуль своей управляемой формы; клиентское событие элемента, серверная подготовка отдельно.

Подготовка

  1. Создайте внешнюю учебную обработку с управляемой формой и запускайте в тонком клиенте (кроме отдельного мобильного урока).

  2. Реквизиты формы: Товары (ТаблицаЗначений), Статус (Строка 200), ИтогКоличество (Число 10.0), РазрешитьУдаление (Булево), ЗапретитьСворачивание (Булево). Выведите статус, итог и оба флажка.

  3. У таблицы Товары колонки Наименование (Строка 100), Количество (Число 10.0), Фиксирована (Булево). Имя элемента таблицы — Товары, данные / путь — Товары; разрешите интерактивное редактирование строк.

  4. Основной обработчик назначьте указанному событию элемента Товары, не событию формы. Первый параметр Элемент уже включён в процедуру; платформа передаёт его автоматически.

  5. Каждый урок проверяйте в отдельном варианте своей формы. Не объединяйте повторяющиеся процедуры подготовки и обработчики с одинаковыми именами.

  6. Колонки реквизита ТаблицаЗначений создайте в редакторе реквизитов формы до добавления элемента-таблицы. На клиенте это данные формы, а не серверный объект ТаблицаЗначений.

  7. У таблицы в редакторе задайте ЗапросОбновления = ПотянутьСверху. Это свойство только читается из BSL: здесь оно программно не присваивается.

  8. Короткий мобильный пример: запускайте управляемую форму на мобильном клиенте / в мобильном приложении. Потяните таблицу сверху. Перезаполняются только свои данные в памяти.

&НаКлиенте
Процедура ТоварыОбработкаЗапросаОбновления(Элемент)
    ЗаполнитьТоварыНаСервере();
    Статус = "Восстановлены собственные учебные строки";
    Сообщить(Статус);
КонецПроцедуры
Та же управляемая форма: отдельная серверная процедура подготовки
&НаСервере
Процедура ЗаполнитьТоварыНаСервере()
    Товары.Очистить();
    СтрокаТовара = Товары.Добавить();
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 2;
    СтрокаТовара.Фиксирована = Ложь;
    СтрокаТовара = Товары.Добавить();
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 3;
    СтрокаТовара.Фиксирована = Истина;
    РазрешитьУдаление = Ложь;
    ЗапретитьСворачивание = Истина;
    ИтогКоличество = 5;
    Статус = "Готово";
КонецПроцедуры
Назначить событию формы ПриСозданииНаСервере
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЗаполнитьТоварыНаСервере();
    Сообщить("Собственная таблица подготовлена");
КонецПроцедуры

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

  1. Подготавливаем настоящую собственную таблицу / список и назначаем точное событие.

  2. Параметры после Элемент соответствуют установленной справке конкретного типа.

  3. Мобильный запрос обновления повторно заполняет собственную таблицу двумя учебными строками через показанную серверную процедуру.

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

  1. Измените свои строки и потяните таблицу сверху: снова Книга: 2 и Ручка: 3.

  2. Это намеренный сброс данных формы в памяти, не синхронизация с сервером рабочего учёта.

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

Событие работает с собственными данными и реально заданным источником действия.

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

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

  2. События активизации, наведения, раскрытия и смены родителя не должны вызывать серверные методы формы.

  3. Обычная и управляемая формы имеют разные API; не переносите между ними элементы и процедуры без адаптации.

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

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

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

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

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

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