1с источник команд форма

Обновлено: 28.06.2024

Автоматическое заполнение командной панели в форме

Для удобства и ускорения разработки форм в платформе 1С:Предприятие 8 реализована возможность автоматического заполнения командных панелей.

Данная возможность также позволяет избежать необходимости модернизации уже разработанных форм (в контексте командных панелей). Это может потребоваться в случае добавления в платформу новой функциональности или же вследствие изменений в разрабатываемой конфигурации.

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

Набор действий и порядок их выполнения зависят от значения свойства " Источник действий " командной панели.

Источники действий

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

В качестве источника действий для командной панели могут быть выбраны:

  • все источники - служит для объединения действий от всех возможных источников формы, обработка действий при этом будет зависеть от активного элемента формы;
  • форма - обычно используется в случаях, когда панель должна содержать действия, предоставляемые формой и элементами управления, связанными с реквизитом формы по умолчанию; действия будут обрабатываться данными элементами управления и формой;
  • конкретный элемент управления - предназначен для непосредственной привязки командной панели к элементу управления; действия от панели с таким источником будут обрабатываться только данным элементом управления.

Каждый из вариантов источника действий обладает особенностями как в процессе заполнения командных панелей кнопками, так и в порядке выполнения действий, установленных в кнопках.

Порядок заполнения командных панелей

Все источники - в этом случае для заполнения командной панели используются действия, предоставленные всеми имеющимися в форме источниками (форма и все элементы управления, предоставляющие действия).

Форма - для заполнения командной панели используются действия, предоставленные формой и элементами управления, связанными с реквизитом формы по умолчанию (выделен жирным шрифтом на закладке "Реквизиты" редактора формы).

Конкретный элемент управления - для заполнения командной панели используются действия, предоставляемые данным элементом управления. Подобным источником действий может служить элемент управления ТабличноеПоле.

Если источник действий является по сути составным (все источники или форма), то действия от различных источников объединяются. При объединении дублирующиеся действия игнорируются.

Порядок выполнения действий и обновления состояния кнопок

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

Под обновлением состояния кнопок командной панели в данном случае подразумевается запрет/разрешение кнопки, установку пометки и т.д. Обновление состояния происходит в моменты бездействия системы. На текущее состояние кнопки панели влияет множество внешних (по отношению к кнопке) факторов, а также значения свойств кнопки, соответствующих тому или иному состоянию (например, свойства: " Доступность ", " Пометка "). Состояние доступности и пометки кнопки зависят в первую очередь от значений соответствующих свойств. Поясним данное высказывание на примере состояния доступности кнопки командной панели и, связанного с этим состоянием, свойства " Доступность ": если свойство установлено в значение Истина , то реальная доступность кнопки определяется платформой на основе текущего состояния источника данных; в противном случае кнопка считается недоступной (вне зависимости от текущего состояния источника данных).

Рассмотрим порядок обновления состояния кнопок командной панели и выполнения действий. Этот порядок зависит от вида действия, установленного в кнопке, и от значения свойства " Источник действий ". В случае, когда действием является вызов процедуры, состояние кнопки (доступность) определяется платформой исходя из наличия указанной в действии процедуры; в случае доступности кнопки, при инициации действия будет вызвана соответствующая процедура модуля. Для действий, отрабатываемых платформой, порядок выполнения следующий:

Все источники - сначала производится попытка обновить состояние кнопки (или выполнить действие) посредством элементов управления, связанных с реквизитом формы по умолчанию. Далее, в случае неудачи, попытка производится для активного элемента управления и, затем, для самой формы.

Форма - сначала производится попытка обновить состояние кнопки (или выполнить действие) посредством элементов управления, связанных с реквизитом формы по умолчанию. Далее, в случае неудачи, попытка производится для формы.

Конкретный элемент управления - действия выполняются (или обновляется состояние) непосредственно источником, вне зависимости от его активности в форме.

Свойство "Автозаполнение"

Установка значение Истина свойству " Автозаполнение " командной панели приводит к автоматическому заполнению кнопками в соответствии с выбранным источником действий. Автоматически добавленные кнопки не сохраняются в панели, их набор и порядок определяется платформой и зависит от множества факторов (в основном от текущего состояния источника действий). В случае установленного свойства " Автозаполнение " изменение состава кнопок, предоставляемого источником действий, автоматически отражается на составе кнопок командной панели, связанной с ним. Для подобных кнопок отсутствует возможность редактирования их свойств или изменения положения в командной панели.

Имена кнопок

Автоматически вставленные кнопки не имеют строго предопределенных имен, значения имен для них назначаются в процессе заполнения панели. Таким образом имя кнопки зависит от порядка вставки кнопки в панель и, следовательно, не рекомендуется ориентироваться на имена подобных кнопок в процессе программирования формы.

Однако из этого правила есть исключения.

Добавление кнопок в автоматически заполненные подменю

В автоматически заполненные панели и подменю имеется возможность добавления неавтоматических кнопок. При этом в случае добавления таких кнопок в подменю, имя кнопки подменю будет зафиксировано и будет оставаться неизменным до тех пор, пока данное подменю содержит кнопки, добавленные вручную.

Ручное заполнение панели

Быстрое заполнение панели кнопками с возможностью их последующего редактирования можно осуществить через контекстное меню командной панели. Для этого необходимо выбрать пункт контекстного меню " Заполнить автоматически ". Командная панель заполниться кнопками аналогично случаю с установленным свойством " Автозаполнение ", однако, кнопки панели будут доступны для редактирования и появится возможность изменять их состав и порядок.

Заполнение системного подменю

Аналогично командной панели возможностью автозаполнения обладают подменю, предоставляемые источником действий. При вставке такого подменю в панель происходит его автоматическое заполнение. Для заполнения кнопками с возможностью редактирования следует воспользоваться контекстным меню кнопки и выбрать пункт " Заполнить автоматически ".

Как управлять расположением команд в командной панели формы?

В 1С Предприятии 8.2 внешний вид формы определяется расположением и свойствами элементов в дереве элементов формы. На основе этих свойств система сама "рисует" форму, в частности, командную панель формы.

Любая группа кнопок (командная панель, подменю, группа кнопок, контекстное меню) заполняется по одинаковым правилам:

  • сначала идут кнопки, предоставляемые источником команд, с которым связана данная группа;
  • затем идёт фрагмент командного интерфейса, если источник команд подразумевает его включение;
  • затем идут пользовательские команды, добавленные в данную группу;
  • затем идёт подменю Все действия (только для командной панели);
  • и в конце идёт кнопка Справка в том случае если она была предоставлена источником команд.

Рассмотрим самый простой вариант, когда в форме элемента справочника созданы две команды и помещены в командную панель формы.


В результате в режиме 1С:Предприятия расположение кнопок, соответствующих созданным командам Команда1 , Команда2 соответствует описанному выше алгоритму: в командной панели формы и в подменю Все действия сначала расположены команды, предоставляемые источником команд - формой элемента справочника (например, Записать и закрыть, Записать и др.), затем команды, созданные разработчиком ( Команда1 , Команда2 ), и затем команда Справка .


Однако у разработчика есть несколько способов существенно вмешаться в этот процесс и повысить удобочитаемость командной панели, контекстного меню и т.п. Какие же есть возможности изменить состав и порядок кнопок?

1. Можно отделить команды, созданные разработчиком, от других команд разделителем.

Для этого нужно создать в командной панели группу вида Группа кнопок и перенести в нее эти команды.


2. Можно расположить какие-то команды разработчика в начале группы команд.

Для этого нужно отменить у группы источник команд (для контекстного меню и автоматической командной панели нужно выключить флажок Автозаполнение ), затем добавить в группу свою кнопку, после нее добавить группу вида Группа кнопок и у этой группы установить источник команд - например, Форма .


В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.


3. Можно переместить автоматически заполняемые кнопки.

Для этого нужно поместить в дерево командной панели или контекстного меню кнопку, связанную с той же командой, которая заполняется из источника данных (например, Удалить , Скопировать и др.). Автоматически такая кнопка не будет размещена среди стандартных команд и, таким образом, можно переместить стандартную команду в другое место.


В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.


Чтобы пиктограмма команды Удалить отображалась в командной панели формы, нужно установить свойство этой кнопки ТолькоВоВсехДействиях в значение Нет .

4. Можно изменить порядок и видимость кнопок фрагмента командного интерфейса, предоставляемого источником команд Форма .

Например, у объекта конфигурации справочник Контрагенты существует команда Команда3 . Эта команда имеет группу размещения команд - Командная панель формы.Важное и тип параметра команды - СправочникСсылка.Контрагенты .


После установки этих свойств, Команда3 становится доступна закладке Командный интерфейс формы объекта, тип которого имеет команда и располагается в командной панели формы после стандартных команд, поставляемых формой элемента справочника.


В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.


Команда3 входит в группу команд фрагмента командного интерфейса. Если Вас не устраивает место, в которое вставляется фрагмент командного интерфейса, можно поместить в командную панель группу вида Группа кнопок и у этой группы установить источник команд - Глобальные команды командной панели формы .


В этом случае автоматическое размещение фрагмента будет отменено (по аналогии со стандартной кнопкой, добавленной вручную), и фрагмент командного интерфейса будет выводиться в новой группе.


Что же касается содержимого фрагмента командного интерфейса, то его редактирование доступно на закладке Командный интерфейс редактора формы.

5. Можно включить/выключить видимость стандартных команд, предоставляемых источником команд, например - Форма .

Для этого нужно открыть окно Состав команд в палитре свойств формы.


В заключение заметим, что возможности изменить порядок кнопок, предоставляемых источником команд, нет. Если такая необходимость появится, нужно отменить источник у группы команд, и полностью заполнить группу вручную.

Любая группа кнопок (командная панель, подменю, группа кнопок, контекстное меню) заполняется по одинаковым правилам:

  1. сначала идут кнопки, предоставляемые источником команд, с которым связана данная группа;
  2. затем идёт фрагмент командного интерфейса, если источник команд подразумевает его включение;
  3. затем идут пользовательские команды, добавленные в данную группу;
  4. затем идёт подменю Все действия (только для командной панели);
  5. и в конце идёт кнопка Справка в том случае если она была предоставлена источником команд.

Рассмотрим самый простой вариант, когда в форме элемента справочника созданы две команды и помещены в командную панель формы.


В результате в режиме 1С:Предприятия расположение кнопок, соответствующих созданным командам Команда1, Команда2 соответствует описанному выше алгоритму: в командной панели формы и в подменю Все действия сначала расположены команды, предоставляемые источником команд - формой элемента справочника (например, Записать и закрыть, Записать и др.), затем команды, созданные разработчиком (Команда1, Команда2), и затем команда Справка.


Однако у разработчика есть несколько способов существенно вмешаться в этот процесс и повысить удобочитаемость командной панели, контекстного меню и т.п. Какие же есть возможности изменить состав и порядок кнопок?

1. Можно отделить команды, созданные разработчиком, от других команд разделителем.

Для этого нужно создать в командной панели группу вида Группа кнопок и перенести в нее эти команды.


2. Можно расположить какие-то команды разработчика в начале группы команд.

Для этого нужно отменить у группы источник команд (для контекстного меню и автоматической командной панели нужно выключить флажок Автозаполнение), затем добавить в группу свою кнопку, после нее добавить группу вида Группа кнопок и у этой группы установить источник команд - например, Форма.


В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.


3. Можно переместить автоматически заполняемые кнопки.

Для этого нужно поместить в дерево командной панели или контекстного меню кнопку, связанную с той же командой, которая заполняется из источника данных (например, Удалить, Скопировать и др.). Автоматически такая кнопка не будет размещена среди стандартных команд и, таким образом, можно переместить стандартную команду в другое место.


В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.


Чтобы пиктограмма команды Удалить отображалась в командной панели формы, нужно установить свойство этой кнопки ТолькоВоВсехДействиях в значение Нет.

4. Можно изменить порядок и видимость кнопок фрагмента командного интерфейса, предоставляемого источником команд Форма.

Например, у объекта конфигурации справочник Контрагенты существует команда Команда3. Эта команда имеет группу размещения команд - Командная панель формы.Важное и тип параметра команды - СправочникСсылка.Контрагенты.


После установки этих свойств, Команда3 становится доступна закладке Командный интерфейс формы объекта, тип которого имеет команда и располагается в командной панели формы после стандартных команд, поставляемых формой элемента справочника.


В результате в режиме 1С:Предприятия командная панель формы и подменю Все действия будут иметь следующий вид.


Команда3 входит в группу команд фрагмента командного интерфейса. Если Вас не устраивает место, в которое вставляется фрагмент командного интерфейса, можно поместить в командную панель группу вида Группа кнопок и у этой группы установить источник команд - Глобальные команды командной панели формы.


В этом случае автоматическое размещение фрагмента будет отменено (по аналогии со стандартной кнопкой, добавленной вручную), и фрагмент командного интерфейса будет выводиться в новой группе.


Что же касается содержимого фрагмента командного интерфейса, то его редактирование доступно на закладке Командный интерфейс редактора формы.

5. Можно включить/выключить видимость стандартных команд, предоставляемых источником команд, например - Форма.

Для этого нужно открыть окно Состав команд в палитре свойств формы.


В заключение заметим, что возможности изменить порядок кнопок, предоставляемых источником команд, нет. Если такая необходимость появится, нужно отменить источник у группы команд, и полностью заполнить группу вручную.

Войдите как ученик, чтобы получить доступ к материалам школы

Создание конфигураций 1С: добавляем команду

Автор уроков и преподаватель школы: Владимир Милькин

Продолжаем изучение азов создания конфигураций на 1С.

Вернёмся в конфигуратор и откроем дерево конфигурации:


Где находится форма у обработки

Откроем окно настроек обработки "УдалениеУволенныхСотрудников":


Открылось окно с закладками во многом повторяющими закладки из справочника "Сотрудники". Это совершенно нормально, ведь настройки объектов в конфигураторе во многом похожи друг на друга.

На этот раз нас интересует закладка "Формы" - откроем её:


Найдите на этой закладке объект с именем "Форма" - это и есть наше визуальное представление обработки:


Давайте откроем его двойным щелчком:


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

Меняем код на встроенном языке 1С для формы

Ну прежде всего обратим внимание в самый низ открывшегося окна. Там мы найдём две закладки "Форма" и "Модуль".

Закладка "Форма" - это и есть визуальное представление. Сейчас на форме находится всего лишь одна кнопка "Удалить сотрудников".

Закладка "Модуль" - это код на встроенном языке 1С, который содержит процедуры и функции, определяющие поведение формы для пользователя.

Попробуем переключиться на закладку "Модуль":


Здесь присутствует всего одна процедура с именем "УдалитьСотрудников". Очевидно именно она и вызывается при нажатии на кнопку.

Код процедуры сейчас свёрнут - нажмём на плюсик, чтобы развернуть его (не поместился на рисунке справа):


Изменим этот код следующим образом:

17

Снова запустим режим 1С:Предприятие (меню "Отладка"->"Начать отладку"), откроем обработку и нажмём кнопку "Удалить сотрудников":



Закладка "Элементы" у формы

Вернёмся в конфигуратор в нашу форму на закладку "Форма":


Обратите внимание на закладку "Элементы" в верхней части формы. Содержимое этой закладки дублирует визуальное представление формы. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Можно сказать ещё, что всё, что вы видите в визуальной части формы можно найти на закладке "Элементы".

Например, чтобы открыть свойства кнопки "Удалить сотрудников" на форме - найдём эту кнопку на закладке "Элементы" и сделаем на ней двойной щелчок:


Откроется окно со свойствами кнопки:


Давайте установим для кнопки заголовок "БАХ":


Форма теперь будет выглядеть так:


Закладка "Реквизиты" у формы

Теперь перейдём к закладке "Реквизиты":


Эта закладка содержит имена по которым мы можем "достучаться" до данных объекта, которые представляет форма. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Пока на этой закладке всего лишь один реквизит "Объект" и то пустой.

Но если бы мы перешли на аналогичную закладку в форме справочника "Сотрудники", то обнаружили бы тут реквизиты "ДатаРождения", "НомерПаспорта" и "СерияПаспорта". Это означало бы, что мы можем их использовать в коде модуля формы.

Закладка "Команды" у формы

Заключительная закладка, которую мы рассмотрим сегодня это закладка "Команды":


Вообще все команды, которые вы видите на одной из закладок ("Команды формы", "Стандартные команды" и "Глобальные команды"), можно смело перетаскивать на закладку "Элементы" и они "волшебным образом" превратятся в кнопки на форме.

Как вы понимаете, нажатие на эти кнопки, будет приводить к выполнению этих команд.

Ну, например, перейдём на закладку "Стандартные команды" и перетащим на закладку "Элементы" команду "Закрыть":


На форме появилась кнопка закрыть. Запустим 1С:Предприятие (меню "Отладка"->"Начать отладку"), откроем обработку и убедимся, что кнопка работает:



Вернёмся в конфигуратор в форму обработки и перейдём на закладку "Команды формы":


На этой закладке мы видим команды формы, которые мы определили сами. В том числе мы можем видеть здесь команду, которую я определил ещё в самом начале с именем "УдалитьСотрудников".

Откроем свойства этой команды (двойным щелчком).

Нас интересует прежде всего поле "Действие", нажмите на кнопку с лупой рядом с ним:


Нас перенесло в процедуру "УдалитьСотрудников" в модуле формы. Это означает, эта команда и эта процедура связаны между собой. И выполнение команды (например, при нажатии на кнопку, в которую она превратилась) приведёт к выполнению кода процедуры.

Добавляем новую команду для формы

Давайте создадим ещё одну команду формы. Для этого вернёмся на закладку "Команды формы" и нажмём зелёную кнопку с плюсом:


На закладку добавилась новая команда "Команда1":


Откроем её свойства и установим имя "Привет", а затем нажмём на лупу рядом с полем "Действие":


Нас спрашивают какой именно вид обработчика мы хотим создать.

В целом существует два вида обработчиков - те, что выполняются на клиенте и те, что выполняются на сервере. В нашем случае клиент и сервер - это один и тот же компьютер, но не обязательно это всегда так. Мы ещё вернёмся к этому разговору в следующих модулях, а пока нам думать об этом слишком рано.

Выбираем вариант "НаКлиенте" и нажимаем "ОК":


Нас перенесло в модуль формы в автоматически созданную процедуру "Привет". Теперь эта процедура связана с командой формы "Привет":


Давайте напишем в ней вывод строки привет пользователю:


Но как нам теперь заставить выполнять команду (а значит и процедуру) "Привет"? Для этого вернёмся на закладку "Команды формы" и перетащим наш "Привет" на форму, так как мы это сделали ранее с командой "Закрыть":


На форме появилась ещё одна кнопка. Запустим 1С:Предприятие, откроем обработку и нажмём на кнопку "Привет". Должно получиться вот так:


Вводим от пользователя имя и говорим ему привет

А теперь давайте поставим себе такую задачу. Нужно, чтобы пользователь ввёл своё имя, мы нажали на кнопку и вывелось, например, "Привет, Алексей".

Чтобы мы смогли разместить на форме элементы для ввода данных нам потребуется реквизит формы (закладка "Реквизиты") с которым этот элемент будет связан.
Так как закладка "Реквизиты" у нас практически пустая - создадим новый реквизит.

Переходим на закладку "Реквизиты" и нажимаем зелёную кнопку плюс:


Добавился реквизит с именем "Реквизит1":


В окне свойств этого реквизита установим имя "Имя" и тип "Строка":


После этого перетащим уже привычным образом реквизит "Имя" на закладку "Элементы":


Ага, на форме появился элемент для ввода строки! Что нам и требовалось


Запустим 1С:Предприятие, откроем обработку и попробуем туда ввести своё имя:


Всё получилось, но вот нажатие на кнопку "Привет" пока работает по-прежнему.

Сейчас всё исправим. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Для этого вернёмся в конфигуратор, перейдём в модуль формы обработки и найдём там процедуру "Привет":


Перепишем её таким образом, чтобы к строке "Привет, " добавлялось значение реквизита "Имя", который связан с элементом ввода на форме:


Теперь снова запустим 1С:Предприятие, обработку, введём своё имя и нажмём кнопку "Привет":


Команды, элементы, реквизиты, объект. вы ещё не запутались?

Думаю запутались Спешу вас успокоить, что не стоит переживать по этому поводу. Со временем ситуация прояснится.

А пока я попробую более простыми словами описать вам эти составные части любой формы. А вы после этого можете ещё раз перечитать урок - уверен, многое станет более понятным.

Итак, форма - это визуальное представление нашей программы: кнопки, надписи, рисунки, списки. да много чего! Всё это ЭЛЕМЕНТЫ формы.

Кнопка - элемент. Надпись - элемент. Поле ввода - тоже элемент

То есть элемент формы - это прежде всего часть её визуального представления. А значит у элемента бывают такие характеристики как цвет, шрифт, положение на форме, размер и многие другие.

Элементы позволяют нам некоторым образом взаимодействовать с формой: читать, нажимать, проматывать и т.п.

Кнопка

Очевидно, что кнопка не может быть сама по себе. Когда пользователь нажимает на неё - должно произойти некоторое действо, задуманное программистом.

Это действо и называется командой

Команды бывают встроенные (закладки "Стандартные команды" и "Глобальные команды") и те, что программист придумывает сам (закладка "Команды формы").

Ну встроенные команды - они на то и встроенные. Что их действие придумано уже до нас. Мы можем лишь перетащить эти команды на форму и превратить их в кнопки. К таким командам относится, например, команда закрытия формы. Нам не нужно ничего программировать - достаточно перетащить стандартную команду "Закрыть" на форму и всё

А команда формы - это команда придуманная нами самими. Это та команда, которую мы сами добавили на закладку "Команды формы", затем нашли в её свойствах пункт "Действие", ткнули на него и запрограммировали код на встроенном языке в автоматически созданном обработчике в модуле формы (например, команда "Привет" из этого урока).

Ну в общем вы поняли: команда - это некоторое действие, запрограммированное на языке 1С (или уже встроенное в программу). А кнопка - это визуальный элемент формы, который при своём нажатии запускает связанную с собой команду.

Надпись

Это просто текст на форме. У такого элемента есть свойство "Заголовок", значение которого мы задаём в редакторе и оно отображается в виде текста.

Поле

А вот это уже интересно. Потому что это такой особый элемент, который не сам по себе (как надпись), а обязательно должен быть связан с какими-то данными или по-другому РЕКВИЗИТАМИ (закладка "Реквизиты").

Можно сказать, что реквизит - это переменная формы, которую мы объявляем на закладке "Реквизиты", а элемент связанный с реквизитом ("Поле") это его представление на форме. Но у самого реквизита есть только имя, тип и значение.

Ну вот представьте, что у нас на форме есть поле для ввода числа. Если бы не было реквизитов - как бы мы из кода узнали, какое число ввёл пользователь? Мы бы обратились к элементу ввода по имени и прочитали некоторое его свойство, отвечающее за значение введённое пользователем.

Так вот в 1С так нельзя. Тут (начиная с "управляемых" форм) представление данных отделено от самих данных.

Получается, что элемент ввода - это элемент формы. А число, которое вводит пользователь, хранится не в самом элементе, а в реквизите, который связан с этим элементом.

Ещё раз. Реквизит - это именно данные (строка, число, дата) . Не визуальное представление (надпись с текстом, поле для ввода числа, поле для ввода даты). Визуальным представлением реквизита является как раз элемент формы "Поле".

И получается, что при написании кода на языке 1С для отображения и изменения данных мы прежде всего должны использовать реквизиты. Мы меняем из кода реквизиты, а связанные с ними поля на форме изменяются при этом автоматически.

И наоборот. Пользователь вводит на форме значения в элементы ввода (числа, текст, даты) и значения реквизитов также меняются автоматически.

Какие преимущества даёт такое отделение элементов формы от данных (реквизитов)? Большие! Программист создает нужные ему реквизиты (для хранения, отображения и ввода некоторых полей на форме) и пишет программный код работая только с этими реквизитами (данными). Он совершенно не задумывается пока как всё это будет выглядеть на форме. Оно ему и не надо! Он пока пишет только программный код.

А уже затем он перетаскивает эти реквизиты на форму, реквизиты превращаются в визуальные элементы формы, он их как-то настраивает, распихивает по закладкам и прочее. В общем на этом этапе (визуального проектирования формы) он работает уже только с элементами. При этом во много раз снижается вероятность сломать уже написанный код.

Ещё пример. Пусть у нас есть реквизит "Возраст" с типом "Число". Этот реквизит хранит только само число, больше ничего. Он не отвечает за то, как будет выглядеть это число, и в каком месте (или на какой закладке) будет располагаться элемент ввода на форме, связанный с этим числом. Реквизит - это только число! Обращаясь к реквизиту мы никак не сможем поменять размер элемента ввода на форме, цвет, видимость. За всё это отвечает не реквизит, а элемент! Меняя реквизит, мы меняем только число, которое отображается в элементе ввода на форме.

В общем: РЕКВИЗИТ - это переменная формы. Поэтому все данные храним в реквизитах (переменных), а для их вывода на форму (или ввода с формы) используем элементы. Именно это отделение логики от представления позволяет 1С с легкостью отображать одни и те же формы на разных клиентах: "толстый", "тонкий", "веб-браузер".

Чтобы обратиться к реквизиту "Возраст" из модуля формы достаточно сразу использовать его имя:

А чтобы обратиться к элементу формы, который связан с этим реквизитом нужно использовать префикс "Элементы.", например:

Что такое Объект?

Ну и, наконец, объект. Судя по-тому, что он находится на закладке "Реквизиты" - это тоже реквизит. Всё верно. Но он особенный.

Этот реквизит мы не создаём - он сам появляется на закладке "Реквизиты". В случае с обработкой он пустой, но если бы мы программировали форму какого-нибудь справочника, то реквизит объект как раз и представлял бы из себя поля этого справочника из базы.

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

Читайте также: