Как это устроено
Грани # и маркеры-хвосты
Грань после # выбирает, что показать у адресованного узла — свойства, структуру, контракт записи, сетку макета или снимок формы. Маркер-хвост уточняет, какую часть узла адресовать — элемент формы, ячейку макета, элемент настроек по индексу.
Грани
| Грань | Синоним | Что возвращает | Где |
|---|---|---|---|
#properties |
#свойства |
Свойства узла: тип, синоним, проверка заполнения и т. п. | metadata_read, form_read, spreadsheet_read, dcs_read |
#source |
#структура |
Структура: что внутри узла — реквизиты, табличные части, формы, дерево элементов | те же |
#help |
#справка |
Контракт записи для этого адреса: какие ключи принимает definition, типы, пример. Работает и для несуществующего узла |
read-инструменты с парным write |
#layout |
#разметка |
Сетка макета строки × колонки | spreadsheet_read |
#screenshot |
#скриншот |
Картинка формы, как её рисует EDT | form_read |
#summary, #objects, #rls, #templates |
— | Сводка прав роли, объекты, ограничения на уровне записей, шаблоны | rights_read |
#roles |
— | Обратный вопрос: какие роли что дают объекту | rights_read |
Без грани срабатывает умолчание: у контейнера (объект, форма, макет) — структура, у листа (реквизит, измерение, элемент формы) — свойства.
Catalog.Номенклатура структура справочника
Catalog.Номенклатура#properties его свойства
Catalog.Номенклатура.Attribute.Артикул свойства реквизита (лист)
Catalog.Номенклатура.Attribute#help как создавать реквизиты: ключи definition, типы
Catalog.Контрагенты.Form.ФормаЭлемента#screenshot снимок формыГрань #help — главное средство против ошибок записи: агент узнаёт контракт до вызова, а не из отказа. Если объект закрыт поставщиком, справка первой строкой предупреждает, что запись по этому адресу будет отклонена.
Маркеры-хвосты
| Хвост | Что адресует | Пример |
|---|---|---|
.Item.<Имя> |
Элемент формы | …Form.ФормаЭлемента.Item.Наименование |
.Attribute.<Имя>, .Command.<Имя>, .Parameter.<Имя> |
Реквизит, команда, параметр формы | …Form.ФормаЭлемента.Attribute.Объект |
.Attribute.<Имя>.Column.<Имя> |
Колонка реквизита-таблицы формы | …Attribute.<Таблица>.Column.<Колонка> |
.Item.<Таблица>.Command |
Команды таблицы формы | …Item.<Таблица>.Command |
.Cell.RnCm и .Cell.RnCm:RnCm |
Ячейка или диапазон макета, нумерация с 1 | …Template.<Макет>.Cell.R4C4 |
.Area.<Имя>, .Param.<Имя>, .Row.N, .Col.N |
Область, параметр, строка, колонка макета | …Template.<Макет>.Area.Заголовок |
[i], [i,j] |
Элемент настроек компоновки по индексу, вложенные группировки | …DefaultSettings.Structure[0,1].Order |
.DataParameter.<Имя>, .OutputParameter.<Имя> |
Параметр данных или вывода настроек | …DefaultSettings.DataParameter.Период |
Индексы в [i] не сдвигаются при изменении элемента на месте, поэтому адрес из ответа composition_settings_read можно сразу отдать composition_settings_write.
Команды кнопок: @
В form_write при создании кнопки команда задаётся строкой:
"ИмяКоманды"— команда формы, затем команда объекта-владельца;"CommonCommand.<Имя>"или"<Тип>.<Объект>.Command.<Имя>"— общая команда или команда другого объекта;"@Close"— стандартная команда формы;"@<Таблица>.Add"— стандартная команда таблицы формы.
Список стандартных команд формы возвращает срез form_read с адресом <форма>.Command.
Типичные ошибки
- Неизвестная грань после
#— отказ со списком допустимых граней для этого инструмента. - Грань формы в
metadata_read— формы читаетform_read. - Нумерация ячеек макета с нуля — в адресах она с единицы: первая ячейка
R1C1.