Сформировать собственное представление УчебныеУзлы: ОбработкаПолученияПредставления

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

Ссылка получает подпись из собственного номера или наименования и комментария. Источник значений задан согласованным вторым обработчиком, а не неизвестным объектом в параметре.

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

Модуль менеджера УчебныеУзлы. Оба обработчика без клиентских директив. Проверочный код отдельно выполняется на сервере учебной базы.

Подготовка

  1. Работайте только в собственной пустой учебной конфигурации. В Конфигураторе создайте ПланОбмена УчебныеУзлы; не добавляйте эти учебные объекты в рабочую базу.

  2. Код — строковый длиной 10, наименование длиной 100. Для справочника, плана обмена и плана видов характеристик включите автонумерацию. Для счетов и видов расчёта код назначается явно в примере.

  3. У плана обмена выключите Распределенная информационная база; состав обмена оставьте пустым. Урок хранит карточку учебного узла и не выполняет обмен, не создаёт базы и не отправляет файлы.

  4. Добавьте реквизиты Комментарий (Строка 100), Лимит (Число 15.2 с разрешённым отрицательным знаком), ЗапретУдаления (Булево). Не делайте их автоматически обязательными: дополнительные правила описаны отдельными обработчиками.

  5. В модуле менеджера УчебныеУзлы разместите оба обработчика из основного и дополнительного блоков. В модуль объекта и формы их не вставляйте; процедуры платформенные, отдельно назначать имя события не нужно.

  6. После изменения модуля менеджера обновите учебную конфигурацию и начните новый сеанс: список полей представления кэшируется для сеанса. Дополнительный проверочный блок выполните в серверной процедуре своей учебной обработки.

  7. Поля Наименование и Комментарий должны иметь ограниченную длину, как задано в подготовке. Представление ссылки не меняет сохранённые значения этих реквизитов.

Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
    Представление = СокрЛП(Строка(Данные.Наименование));
    Если Не ПустаяСтрока(Данные.Комментарий) Тогда
        Представление = Представление + " (" + Данные.Комментарий + ")";
    КонецЕсли;
    СтандартнаяОбработка = Ложь;
КонецПроцедуры
Тот же модуль менеджера: согласованный обработчик пары
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
    Поля.Очистить();
    Поля.Добавить("Наименование");
    Поля.Добавить("Комментарий");
    СтандартнаяОбработка = Ложь;
КонецПроцедуры
Серверная учебная процедура: настоящий объект и запрос его представления
Объект = ПланыОбмена.УчебныеУзлы.СоздатьУзел();
Объект.Наименование = "Учебная карточка";
Объект.Лимит = 100;
Объект.Комментарий = "Учебный пример";
Объект.Записать();
Ссылка = Объект.Ссылка;
Сообщить(Строка(Ссылка));
Сообщить("Подпись сформирована из полей собственного сохранённого объекта");
Сообщить("Комментарий: " + Ссылка.Комментарий);

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

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

  2. Во втором обработчике Данные — структура значений именно этих выбранных полей. Непустой комментарий добавляется в скобках.

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

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

  1. После создания собственного объекта показана подпись с его номером или наименованием и учебным комментарием в скобках.

  2. Если перед записью нового объекта оставить комментарий пустым, скобки не добавляются. Для проверки изменённого списка полей начните новый сеанс.

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

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

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

  1. ОбработкаПолученияПолейПредставления возвращает имена, а не сами значения. Данные второй процедуры содержит только запрошенные поля.

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

  3. Подпись не является уникальным ключом и не должна использоваться вместо ссылки. Рабочая конфигурация в этом уроке не меняется.

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

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

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

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

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