У своей формы списка есть стандартные команды Создать и Создать группу. Заголовок меняем осмысленно; пустая Картинка намеренно убирает значок, не изображает загрузку файла.
Где и как запускать
Полный модуль собственной основной управляемой формы списка Справочник.УчебныеЗаметки85.Форма.Список85.
Подготовка
Создайте отдельную пустую CF УчебныеКнопкиСоздания85 на 8.5.1.1343, управляемое приложение, интерфейс Версия 8.5, без расширений и других бизнес-объектов.
Создайте единственный справочник УчебныеЗаметки85: иерархия групп и элементов, код строка 9 с авто-нумерацией, наименование 100. Не создавайте ни элемента, ни группы.
Мастером создайте основную управляемую форму списка Список85 с динамическим списком и стандартными командами Создать и Создать группу в верхней командной панели. Обе команды должны реально присутствовать: иначе группы кнопок создания для демонстрации не будет.
В форме списка добавьте Состояние85 Строка 500 только для просмотра; свяжите ПриСозданииНаСервере с кодом основного модуля. Не включайте автосохранение списка или дополнительные обработчики записи.
Мастером создайте основные формы элемента и группы. В оба модуля вставьте supporting module запрета записи. В модуль объекта справочника вставьте отдельный supporting module ПередЗаписью: он запрещает любую запись даже вне формы.
Откройте только собственный пустой список в настольном тонком или толстом управляемом клиенте. Не запускайте обработку рабочей конфигурации; содержимое каталога должно остаться пустым.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ПроверитьСвойПустойСтенд();
Если Метаданные.Справочники.Найти("УчебныеЗаметки85") = Неопределено Тогда
ВызватьИсключение "Нужен свой иерархический справочник УчебныеЗаметки85";
КонецЕсли;
Выборка = Справочники.УчебныеЗаметки85.Выбрать();
Если Выборка.Следующий() Тогда
ВызватьИсключение "Учебный справочник должен оставаться пустым";
КонецЕсли;
ЭтотОбъект.ЗаголовокГруппыКнопокСоздания = "Учебная заметка или группа";
ЭтотОбъект.КартинкаГруппыКнопокСоздания = Новый Картинка;
Если ЭтотОбъект.ЗаголовокГруппыКнопокСоздания <> "Учебная заметка или группа"
Или ТипЗнч(ЭтотОбъект.КартинкаГруппыКнопокСоздания) <> Тип("Картинка") Тогда
ВызватьИсключение "Собственная настройка меню создания не сохранилась";
КонецЕсли;
Состояние85 = "Свой пустой список: задаем заголовок меню создания и намеренно убираем картинку";
КонецПроцедуры
&НаСервере
Процедура ПроверитьСвойПустойСтенд()
Если Метаданные.Справочники.Количество() <> 1 Или Метаданные.Документы.Количество() <> 0 Или Метаданные.Перечисления.Количество() <> 0 Или Метаданные.РегистрыСведений.Количество() <> 0 Или Метаданные.РегистрыНакопления.Количество() <> 0 Или Метаданные.РегистрыБухгалтерии.Количество() <> 0 Или Метаданные.РегистрыРасчета.Количество() <> 0 Или Метаданные.ПланыВидовХарактеристик.Количество() <> 0 Или Метаданные.ПланыВидовРасчета.Количество() <> 0 Или Метаданные.ПланыСчетов.Количество() <> 0 Или Метаданные.ПланыОбмена.Количество() <> 0 Или Метаданные.Последовательности.Количество() <> 0 Или Метаданные.БизнесПроцессы.Количество() <> 0 Или Метаданные.Задачи.Количество() <> 0 Или Метаданные.ОбщиеРеквизиты.Количество() <> 0 Или Метаданные.ПодпискиНаСобытия.Количество() <> 0 Или Метаданные.РегламентныеЗадания.Количество() <> 0 Или Метаданные.ВнешниеИсточникиДанных.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только свой новый пустой учебный стенд";
КонецЕсли;
Если Метаданные.ЕстьИзмененияРасширениямиКонфигурации() Тогда
ВызватьИсключение "Свой сеанс не должен изменяться расширениями";
КонецЕсли;
Источники = Новый Массив;
Источники.Добавить(ИсточникРасширенийКонфигурации.БазаДанных);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансАктивные);
Источники.Добавить(ИсточникРасширенийКонфигурации.СеансОтключенные);
Для Каждого Источник Из Источники Цикл
Расширения = РасширенияКонфигурации.Получить(, Источник);
Если ТипЗнч(Расширения) <> Тип("Массив") Тогда
ВызватьИсключение "Native список расширений должен иметь тип Массив";
КонецЕсли;
Если Расширения.Количество() <> 0 Тогда
ВызватьИсключение "В своём новом стенде нет расширений базы или сеанса";
КонецЕсли;
КонецЦикла;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Чужая или вложенная активная транзакция не допускается";
КонецЕсли;
КонецПроцедурыОдинаковый модуль собственных основных форм элемента и группы
Обе собственные управляемые формы УчебныеЗаметки85; события ПриСозданииНаСервере и ПередЗаписьюНаСервере.
Обе собственные управляемые формы УчебныеЗаметки85; события ПриСозданииНаСервере и ПередЗаписьюНаСервере.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ТолькоПросмотр = Истина;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Отказ = Истина;
ВызватьИсключение "Форма учебной заметки не разрешает запись";
КонецПроцедуры
Модуль собственного справочника: записи не разрешены
Справочник.УчебныеЗаметки85, модуль объекта, событие ПередЗаписью.
Справочник.УчебныеЗаметки85, модуль объекта, событие ПередЗаписью.
Процедура ПередЗаписью(Отказ)
Отказ = Истина;
ВызватьИсключение "УчебныеЗаметки85: запись запрещена, включая создание группы";
КонецПроцедуры
Разбор по шагам
Guard проверяет точную платформу, имя CF, единственный собственный каталог, отсутствие остальных бизнес-объектов и расширений. Настоящая выборка подтверждает, что учебный список пуст.
ЗаголовокГруппыКнопокСоздания меняет надпись платформенного подменю создания. Это не Заголовок формы и не имя пользовательской команды.
Новый Картинка создает настоящую пустую картинку. Ее назначаем намеренно, чтобы убрать значок; не используем файл, URL или несуществующую картинку библиотеки.
Свойства доступны RW на сервере; меняем их при создании формы, чтобы не получать дополнительный RPC из клиентского обработчика.
Readback проверяет строку и реальный тип Картинка. Видимость подменю отдельно проверяется глазами в интерфейсе 8.5 при двух собственных стандартных командах создания.
Supporting modules запрещают запись и группы, и элемента. Команду создания можно открыть для просмотра собственного незаписанного объекта, но нельзя подтвердить запись.
Как проверить результат
В своем списке нет строк, статус сообщает об отключенной картинке. Подменю создания имеет заголовок Учебная заметка или группа и не имеет заданного значка.
В подменю присутствуют собственные стандартные команды элемента и группы. Если мастер не вывел обе команды, исправьте только свой стенд, а не код native свойств.
Откройте незаписанную собственную заметку; форма только для просмотра. Прямой запрос на запись должен отказать через объектный ПередЗаписью, включая создание группы.
Повторно откройте список: выборка остается пустой, свойства назначаются заново без накопления данных.
В Такси свойства не дают эффекта: native помечает оба как применяемые только в интерфейсе Версия 8.5.
Для отрицательного теста удалите свою команду Создать группу: readback свойств не доказывает наличие двух пунктов меню; восстановите команду мастером.
Ожидаемый результат
Две новые native настройки показаны на реальной собственной группе стандартных команд, с пустым каталогом и запретом записи.
На что обратить внимание
Тесты статические, UI в 1С не запускался.
Не применяйте урок к рабочему справочнику: supporting модуль запрещает все его записи.
Новый Картинка — пустой значок, не пример чтения изображения из файла.
Два свойства не создают стандартные команды автоматически.
В интерфейсе Такси эффекта нет по native справке.
Не удаляйте guard ради выполнения на заполненном каталоге.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.