Дополнить навигационные ссылки своей текущей строки

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

Источник строк и событий задан собственной формой, точными метаданными или явным константным запросом. Параметры callback приходят от платформы после настоящего действия.

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

Клиентские события таблицы СписокКниг собственной управляемой формы.

Подготовка

  1. В своей учебной конфигурации создайте справочник УчебныеКарточки: код Строка 10, наименование 100, реквизит Количество Число 10.0. Вручную создайте УЧЕБ-КНИГ / Учебная книга / 3 и УЧЕБ-ТЕТР / Учебная тетрадь / 5.

  2. В своей управляемой форме добавьте ДинамическийСписок СписокКниг, основная таблица Справочник.УчебныеКарточки. Связанная таблица СписокКниг, колонки Ссылка, Наименование и Количество; реквизит Статус Строка 200.

  3. События назначайте таблице СписокКниг редактором. Имена и параметры обработчиков должны совпадать с редактором. Читаются только свои карточки.

  4. Назначьте оба обработчика навигационных ссылок таблице, разрешите получение ссылки текущей строки. Выберите свою Учебная книга и откройте штатный диалог получения навигационной ссылки. Нужен не диалог ссылки всей формы.

&НаКлиенте
Процедура СписокКнигОбработкаПолученияСпискаНавигационныхСсылок(Элемент, СписокНавигационыхСсылок, КлючПоУмолчанию)
    СписокНавигационыхСсылок.Добавить("СВОЯ-КНИГА", "Своя карточка текущей строки");
    КлючПоУмолчанию = "СВОЯ-КНИГА";
    Сообщить("Добавлен собственный вариант ссылки");
КонецПроцедуры
Та же таблица: второй обработчик собственной навигационной ссылки
&НаКлиенте
Процедура СписокКнигОбработкаПолученияНавигационнойСсылки(Элемент, Ключ, Представление, НавигационнаяСсылка, СтандартнаяОбработка)
    Если Ключ <> "СВОЯ-КНИГА" Тогда
        Возврат;
    КонецЕсли;
    Данные = Элемент.ТекущиеДанные;
    Если Данные = Неопределено Тогда
        Возврат;
    КонецЕсли;
    НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Данные.Ссылка);
    СтандартнаяОбработка = Ложь;
    Сообщить("Ссылка получена из своей реальной текущей карточки");
КонецПроцедуры

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

  1. Подготовьте свой список, колонки и конкретные строки.

  2. Назначьте обработчик точному событию таблицы и нужной стороне клиента / сервера.

  3. Выполните действие загрузки, выбора, настройки или получения ссылки и сравните фактический результат.

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

  1. В диалоге есть Своя карточка текущей строки; для него получается настоящий адрес выбранной своей карточки.

  2. Для стандартных ключей ранний выход сохраняет стандартную обработку. Произвольный ключ СВОЯ-КНИГА не объявляется системным перечислением.

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

Разобран конкретный callback / динамический доступ с действительным источником и без подмены типов.

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

  1. Данные порции динамического списка не являются всеми данными базы; её строки не хранятся после выхода из серверного callback.

  2. Имена динамических свойств происходят из подготовленных колонок / путей ключа, а не создаются getter-обёрткой.

  3. Код 1С здесь не запускался; рабочие базы и пользовательские настройки других форм не изменялись.

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

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

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

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

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