Для чего нужен основной реквизит формы 1с
Реквизиты формы обеспечивают ее связь с данными. При этом один (и только один) из реквизитов может быть назначен основным; он не обязательно может быть того типа данных, к объекту которого мы рисуем форму. Но от типа данных основного реквизита будет зависеть поведение формы. Кроме изменения поведения формы, происходит изменение контекста модуля формы. Наряду с методами и свойствами формы, в нем становятся доступны методы и свойства объекта, являющегося значением основного реквизита. Важно, что формы типа "Произвольная форма" не имеют основного реквизита. В этом случае поведение формы определяется только настройками пользователя. Рассмотрим вопросы по основным реквизитам.
- Определяет источник данных для формы в целом
- Определяет стандартные возможности платформы для работы формы с данными типа, заданного у основного реквизита
- Для обеспечения возможности программного обращения к реквизитам объекта из локального контекста формы
- Обеспечивает визуализацию реквизитов объекта на диалоге формы
- Верны 2 и 3
- Верны 1 и 2
- Для описания состава данных, которые отображаются, редактируются или хранятся в форме
- Для отображения и редактирования данных в форме
- Верны 1 и 2
Вопрос 10.07 экзамена 1С:Профессионал по платформе. Что бы произвольной управляемой форме назначить основной реквизит.
- форму нужно сделать основной, основной реквизит при этом определяется автоматически
- нужно в свойствах реквизита формы установить флажок "Основной реквизит"
- нужно войти в меню "Правка", пункт "Основной реквизит" и выбрать нужное значение
- нужно заполнить свойство "Данные" формы, выбрав нужный реквизит формы
Вопрос 10.08 экзамена 1С:Профессионал по платформе. Что бы произвольной обычной форме назначить основной реквизит.
- форму нужно сделать основной, основной реквизит при этом определяется автоматически
- нужно в свойствах реквизита формы установить флажок "Основной реквизит"
- нужно войти в меню "Правка", пункт "Основной реквизит" и выбрать нужное значение
- нужно заполнить свойство "Данные" формы, выбрав нужный реквизит формы
Вопрос 10.09 экзамена 1С:Профессионал по платформе. При наличии одного основного реквизита формы можно ли добавить еще один основной реквизит?
- Это не возможно
- Можно посредством назначения соответствующего значения свойства реквизита формы
- Можно только программно, при обращении к объекту "Форма"
- Можно посредством добавления еще одного значения к соответствующему свойству формы
Правильный ответ первый, основной реквизит строго один, т.к. связь с объектом должна быть однозначна.
Вопрос 10.113 экзамена 1С:Профессионал по платформе. Какой из реквизитов формы, представленной на рисунке, является основным?
Принадлежность формы тому или иному объекту конфигурации не определяет состав данных, которые отображаются в форме. То, что форма принадлежит, например, справочнику "Номенклатура", позволяет назначить ее одной из основных форм для этого справочника, но никак не определяет:
- какие же именно данные будет отображать эта форма, и
- каково будет ее поведение.
Все формы, сами по себе, имеют одинаковое поведение, независимо от того, какие данные они отображают.
Для того чтобы связать форму с данными , используются реквизиты формы, в которых указывается перечень данных, отображаемых формой.
Реквизиты формы предназначены для хранения данных, которые редактируются в форме.
Один из реквизитов может быть назначен основным реквизитом формы.
Основной реквизит формы 1С предназначен для определения:
- источника данных для формы в целом;
- стандартных возможностей платформы для работы формы с данными типа, заданного у основного реквизита.
Для назначения реквизита формы основным реквизитом необходимо:
- произвольной управляемой форме - в свойствах реквизита формы установить флажок "Основной реквизит";
При назначении основного реквизита формы происходит следующее:
- поведение формы изменяется в соответствии с типом этого реквизита;
- изменяется контекстмодуля формы (наряду с методами и свойствами формы, в нем становятся доступны методы и свойства объекта, являющегося значением основного реквизита).
Вследствие объединения контекстов формы и объекта могут возникать конфликты имен методов и свойств. Методы и свойства формы имеют приоритет над методами и свойствами объекта.
Обращение к свойству объекта можно осуществлять через имя основного реквизита формы.
Есть форма с двумя реквизитами: ДокументОбъект , Реквизит1 .
Реквизит ДокументОбъект является основным реквизитом и имеет в свою очередь реквизиты с именами Реквизит1 , Реквизит2 . Тогда обращение к реквизитам в модуле формы будет осуществляться следующим образом:
Управляемая форма - объект, с помощью которого осуществляется взаимодействие пользователя с приложением. В поля формы вводится информация, с полей формы она считывается, а также выводится на экран.
Конструктор управляемой формы
Конструктор управляемой формы имеет ряд закладок, с помощью которых для разработчика значительно упрощается процесс создания формы.
- С помощью элементов формы осуществляется взаимодействие пользователя с формой. Элементы формы - это то, что видит пользователь, открывая форму.
- С помощью командного интерфейса можно настроить видимость глобальных и локальных команд.
- Реквизиты формы - это хранилища данных. В них хранится информация, с которыми работает форма. В большинстве случаев эта информация после закрытия формы уничтожается.
- Команды формы используются для создания возможности у пользователя взаимодействовать с информацией на форме. Созданную команду необходимо перетащить в поле элементов формы, а затем написать для неё обработчик. Так мы определим, что программа будет делать с информацией после нажатия на кнопку и вызова команды.
- Параметры формы – используются для настройки формы при открытии. С помощью параметров можно передавать данные в форму и из неё. Например, создать структуру и передать её в качестве параметров на форму. После чего прочитать данные из структуры и вывести их на форму.
- На закладке "Форма" разработчик может видеть предварительный вариант отображения формы в пользовательском режиме ии корректировать расположение элементов, работая в соответствующем поле.
- На закладке "Модуль" разработчик получает доступ к коду. Именно здесь осуществляется программное наполнение формы, пишутся обработчики команд и т.д.
Реквизиты формы
Реквизиты формы - это некие контейнеры для хранения данных, с которыми форма будет работать.
Принадлежность формы тому или иному объекту конфигурации ещё определяет состав данных, которые отображаются в форме. То, что форма принадлежит справочнику, не определяет, какие же именно данные будет отображать эта форма, и каково будет ее поведение.
Для того чтобы связать форму с данными, используются реквизиты формы, в которых указывается перечень данных, отображаемых формой. Все формы, сами по себе, имеют одинаковое поведение, независимо от того, какие данные они отображают. В свойствах реквизита (щелкнуть правой кнопкой мыши на реквизите) разработчик может определить тип данных реквизита (строка, число, ссылка на данные и т.д.) и работать с нужным ему типом данных.
Клиент-серверное взаимодействие
Управляемое приложение и управляемые формы в 1С работают по принципу реализации трехуровневой архитектуры: осуществляется работа клиента, сервера и базы данных. Данный принцип работы приложения несколько усложняет процесс разработки и влечет необходимость разделения процедур и функций на те, что выполняются на клиенте, и на те, что реализуются на сервере.
Директивы компиляции &НаКлиенте и &НаСервере рекомендуется применять только в коде модулей управляемых форм и в коде модулей команд. В остальных модулях рекомендуется применять инструкции препроцессору.
Обратить внимание!
Для успешного функционирования формы на тонком и веб клиентах на клиенте осуществляется только создание формы и её формирование. Все вычисления, формирование данных для наполнения формы и т.д. необходимо производить на сервере. Связано это с ограничениями, накладываемыми на передаваемые данные при работе с указанными клиентами.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
В этой статье мы познакомимся с основными аспектам работы с управляемой формой в 1С 8.3. Что такое форма и для чего она нужна? Форма это основной объект, посредством которого осуществляется взаимодействие пользователя с программой. То есть с помощью формы пользователь осуществляет ввод информации в программу, а так же на форму выводиться нужная для пользователя информация.
Основная задача разработчика любой формы (управляемой или обычной) это предоставить пользователю удобный механизм взаимодействия с программой.
Платформа 1С имеет возможность сгенерировать любую форму объекта, но обычно при разработке прикладных решений программисты самостоятельно конфигурируют формы.
В конфигураторе 1С разработчик работает с конструктором управляемой формы. Посмотрим, как выглядит управляемая форма в конструкторе
У конструктора управляемой формы 7 закладок:
- Элементы – перечислены по порядку все элементы управляемой формы. Посредством элементов осуществляется взаимодействие пользователя с программой.
- Командный интерфейс – в этой закладке настраивается видимость глобальных и локальных команд.
- Реквизиты — в реквизитах храниться информация, с которыми работает форма. В большинстве случаев эта информация после закрытия формы уничтожается (если не имеем дело с основным реквизитом элемента справочника, документа и т.д.).
- Команды – в данной закладке команды, с которыми можно работать на форме. Это могут быть команды формы, которые создал разработчик, стандартные команды формы при помощи которых можно настраивать стандартный функционал (закрытие, сохранение и т.ж) и глобальные команды.
- Параметры – список параметров, которые предназначены для настройки формы при открытии. С помощью параметром можно передавать данные с одной формы в другую.
- Форма – закладка, в которой разработчик может видеть предварительный вариант отображения формы в пользовательском режиме. Нельзя на форме работать непосредственно с элементами! Всё взаимодействие осуществляется посредством закладки Элементы.
- Модуль – содержит алгоритмы взаимодействия
Рассмотрим основные принципы работы управляемой формы.
Принцип работу любой управляемой формы имеет клиент-серверный характер. Не буду углубляться в дебри, отмечу только, что это значит, что какой-то код выполняется в контексте сервера, а какой-то код в контексте клиента. Причем, при разработке управляемой формы, разделение контекста выполнения программного кода на клиентский и серверный стало очень критичным. Что же означает клиентский контекст выполнения кода, а что – серверный?
Для этого рассмотрим классическую трехзвенную архитектуру 1С: Предприятия. У вас есть клиентские компьютеры, где работают все пользователи, есть кластер серверов 1С: Предприятия, где выполняются все вычисления, и есть SQL-база (СУБД), где хранятся все данные.
На клиентской машине может быть установлено какое-то приложение 1С, которое запускается под толстым или тонким клиентом, а может быть и ни чего не установлено, вся работа будет осуществляться посредством веб-клиента из Интернет-браузера. Толстый или тонкий клиент, а так же работу под веб-клиентом называют клиентским приложением . Т.е. на клиентской машине осуществляется взаимодействие пользователя программы с самой программой 1С. Это взаимодействие осуществляется при помощи механизмов платформы 1С, а так же при помощи кода, который написан разработчиками прикладного решения. Выполняясь, этот код задействует ресурсы клиентского компьютера. В этом случае говорят, что он выполняется «на клиенте». А контекст выполнения этого кода, называют клиентским.
Кластер серверов 1С не является чем-то единым целым, а представляет собой несколько запущенных процессов, каждый из которых является сервером 1С. Сервер 1С осуществляет взаимосвязь клиентского приложения с системой управления базы данных (СУБД). Так же север 1С может исполнять определенный код, тогда говорят, что код выполняется «на сервере», а контекст выполнения этого кода – серверный. В случае выполнения кода на сервере все вычисления будут происходить на той машине, где в этот момент запущен соответствующий экземпляр сервера 1С. Как правило, это мощный и производительный компьютер.
В обычном приложении форма выполнялась полностью на стороне клиентского компьютера. Причем с формы можно было что угодно делать с базой данных: создавать новые объекты, редактировать их и т.п.
В управляемом приложении все кардинально поменялось. Теперь на стороне клиентского компьютера форма должна только прорисовывается. Связано это с возникновением тонкого и веб-клиента, которые осуществляют взаимодействие с серверной частью по средством сети Internet. Этот канал связи накладывает существенные ограничения на широту передаваемых данных. И если раньше мы могли на форме делать практически всё: обращаться к базе данных, создавать документы, справочники и т.п., то теперь это стало слишком дорогим удовольствием. Поэтому для нормального функционирования тонкого клиента и веб-клиента был существенно переделан механизм работы форм. Форма только прорисовывается на клиенте, а все обработки данных, вычисления и т.п. должны выполняться на сервере.
Что же из себя представляет форма? Форма это программный объект, который создается на сервере согласно настройкам сделанными в конфигураторе (если формы нет в конфигураторе, то она генерируется автоматически платформой), а потом выводится в клиентском приложении. Таким образом, форма одновременно существует и на сервере и на клиенте! А как следствие у формы есть и серверный и клиентский контекст выполнения кода.
При разработке форм под управляемым приложением, разработчик должен сам указывать, какой код будет выполняться на сервере, а какой на клиенте. Делается это при помощи директив компиляции.
Директиву компиляции следует указывать перед каждой функцией или процедурой в модуле формы, в общем модуле или в модуле команды. Все директивы компиляции начинаются с символа амперсанд — &. И от них зависит, в каком контексте будет выполняться код в процедуре или функции. Всего их пять:
- &НаКлиенте
- &НаСервере
- &НаСервереБезКонтекста
- &НаКлиентеНаСервереБезКонтекста
- &НаКлиентеНаСервере
&НаКлиенте – когда процедура или функция предварена этой директивой, то данный метод будет выполняться в клиентском контексте. Это значит, что он будет выполняться на той машине, где в данный момент функционирует клиентское приложение.
&НаСервере — код процедуры или функции под этой директивой будет выполняться в серверном контексте, т.е. на машине, где запущен сервер 1С. Все данные формы будут передаваться на сервер, а потом обратно на форму, после завершения выполнения метода. Из процедуры под этой директивой будет доступен весь серверный контекст формы, т.е. все процедуры или функции, которые выполняются на сервере, можно вызвать из метода предваренного этой директивой.
&НаСервереБезКонтекста — код процедуры или функции под этой директивой как и в случае с директивой &НаСервере будет выполняться в серверном контексте, т.е. на машине, где запущен сервер 1С. Но в отличие от серверного вызова методов, при внеконтекстном серверном вызове, данные формы не будут передаваться на сервер.
Это три частоприменяемые директивы компиляции.
Резюмирую: управляемая форма это объект конфигурации 1С, который создается на сервер, а потом загружается на клиентский компьютер. Основное взаимодействие пользователя с формой осуществляется посредством элементов формы, которые размещаются на форме. На форме могут храниться различные данные в реквизитах, а так же при помощи параметров можно передавать информацию с одной формы на другую при её открытии. Форма одновременно существует и в клиентском и серверном контексте, и при разработке программист должен самостоятельно решить какой код будет выполняться на сервере, а какой на клиенте.
Подробно вопросы работы с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.
Книга «Основы разработки в 1С: Такси» отлично подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 15% — 48PVXHeYu
Иногда кажется, что изучить язык программирование в 1С сложно и трудно. В действительности программировать в 1С — легко. Помогут Вам легко и быстро освоить программирование в 1С мои книги: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Изучите программирование в 1С с помощью моей книги «Программировать в 1С за 11 шагов»
- Без сложных технических терминов.
- Более 700 страниц практического материала.
- Каждое задание сопровождается рисунком (скриншот).
- Сборник задач для домашней проработки.
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
Каждый объект прикладного решения может использоваться для выполнения некоторых стандартных действий. Например, для любого справочника может потребоваться отображать список его элементов, отображать отдельные элементы справочника, отображать группу справочника, выбирать элементы и группы элементов из справочника. Для любого документа список таких действий будет гораздо меньше: просмотр списка документов, выбор из списка документов и просмотр отдельного документа.
Чтобы обеспечить выполнение таких стандартных действий с данными объектов прикладного решения, для каждого из них существует набор основных форм, которые будут использоваться при выполнении соответствующих действий. Основной может быть назначена любая из форм, подчиненных этому объекту. Например, у справочника Клиенты могут существовать следующие основные формы:
Важной особенностью системы 1С:Предприятие 8.0 является механизм форм по умолчанию. Этот механизм освобождает разработчика от необходимости создания всех возможных форм для каждого из объектов прикладного решения. Разработчику достаточно создать новый объект прикладного решения, а система сама сгенерирует в нужные моменты работы пользователя необходимые формы по умолчанию для отображения информации, содержащейся в этом объекте. Таким образом, разработчику нужно создавать собственные формы объектов прикладного решения лишь в том случае, если они должны иметь отличия (другой дизайн или специфическое поведение) от форм, генерируемых системой по умолчанию.
Основной реквизит формы
Принадлежность формы к тому или иному объекту конфигурации никоим образом не определяет состав данных, которые форма будет отображать. Например, можно создать общую форму, которая не будет подчинена ни одному из объектов конфигурации, но которая, в зависимости от содержимого, будет либо отображать список справочника, либо позволять редактировать документ. Однако такую форму уже нельзя будет назначить основной для выполнения определенных действий.
Форма сама по себе и ее элементы управления обособлены от объектов конфигурации. Для того, чтобы форма отображала какие - либо данные, необходимо задать связь самой формы и большинства из ее элементов управления с данными. При использовании конструктора форм, конфигуратор создает такие связи автоматически. Если разработчик создает форму вручную - он может определить эти связи путем задания свойств формы и элементов управления. В любом случае, эти связи могут быть изменены средствами встроенного языка в процессе выполнения программы.
Связь формы и элементов управления с данными осуществляется при помощи реквизитов формы.
Возможность связать форму и элементы управления с различными данными является причиной того, что у формы и у элементов управления существует несколько расширений. Расширение представляет собой набор дополнительных свойств, методов и событий, появляющихся у объекта. Наличие того или иного расширения определяется либо типом данных, которые отображает объект , либо расположением его в других объектах.
Среди всех реквизитов формы, как правило, существует один основной реквизит (в списке реквизитов он выделен жирным шрифтом). Основной реквизит определяет источник данных для формы в целом. От типа значения основного реквизита формы зависит не только то, какие данные будут отображены в элементах управления формы, но и поведение самой формы. Например, если основному реквизиту формы указать тип ДокументОбъект.АктОбОказанииУслуг, то при закрытии формы программа будет запрашивать подтверждение записи и проведения документа. Если же основному реквизиту формы указать тип значения СправочникСписок.Услуги, то подобного подтверждения при закрытии формы не будет.
Читайте также: