Проверить подписи и основные формы таблицы

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

Настройки представления записи, объекта и списка читаем отдельно. Основная форма может не быть назначена: это не ошибка обращения к имени.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте отдельную учебную конфигурацию Учебная85 без расширений, не рабочие КА2/УНФ/УТ. В Конфигураторе создайте Внешние источники данных → УчебныйВнешний → Таблицы → Товары. Строку подключения оставьте пустой: упражнения читают только метаданные, внешняя СУБД не требуется.

  2. Для таблицы задайте вид Таблица, тип ОбъектныеДанные, имя в источнике guide_books, ТолькоЧтение=Истина. В её Полях создайте Код (Строка 20, имя book_code), Наименование (Строка 100, имя book_name), Количество (Число 9.0, имя book_quantity) и Версия (Число 15.0, имя book_version). Это описание учебного источника, не команда создания SQL-таблицы.

  3. В ПоляКлюча и ПоляБлокировкиДанных включите Код, ПолеПредставления=Наименование, ПолеВерсииДанных=Версия, ПолеРодителя не задавайте. ВводПоСтроке: Код и Наименование. Для Количество запретите Null, задайте заполнение 0 и Подсказку «Количество книг». Для Наименование задайте Синоним «Название книги». СозданиеПриВводе оставьте без использования.

  4. Модули и справку оставьте пустыми, не создавайте обработчики подключения и команды записи. Обновите только эту учебную конфигурацию. Фрагменты запускайте отдельно на сервере в учебной обработке: они не обращаются к данным источника и не меняют метаданные.

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

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

  1. ПредставлениеЗаписи, ПредставлениеОбъекта и ПредставлениеСписка могут отличаться: не подменяем их одним Синонимом.

  2. Расширенные представления и Пояснение относятся к интерфейсу, не к имени внешней таблицы.

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

  4. Имя формы читается только в ветке с существующим описанием.

  5. Количество форм — количество метаданных, не число открытых окон. Урок формы не открывает.

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

  1. Выводятся 7 подписей, 4 назначения и число описаний форм.

  2. Без вручную созданных форм ожидаются сообщения об отсутствии основных форм, а не исключение.

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

Получена карта интерфейсных назначений с безопасной обработкой отсутствия формы.

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

  1. Назначенное описание формы не означает, что окно уже открыто.

  2. Модуль серверного упражнения не вызывает ОткрытьФорму.

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

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

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

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

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