Формы используются для удобного отображения данных базы пользователю. С формами можно работать как пользователь интерактивно, так и программист управляя поведением и внешним видом формы с помощью кода.
Типы форм
Формы делятся на два типа: обычные и управляемые, обычные формы это формы которые были в линейке 8 с самого начала и по текущий момент. Смысл этих форм заключается в том что форма в прямом смысле рисуется разработчиком, он указывает на то место (вплоть до пикселя)где будут располагаться элементы формы.
Обычные формы работают только в толстом клиенте, в то время когда управляемые формы работают и в толстом и в тонком клиенте. Управляемые формы доступны в версии 1С начиная с 8.2 и выше и только когда конфигурация настроена как «Управляемое приложение». В тонком клиенте возможно использование только управляемых форм. Управляемую форму нельзя нарисовать мышкой.
Элементы в ней не рисуются, а декларируются или объявляются, что накладывает некоторые ограничения. Вы можете указать что реквизиты будут группироваться горизонтально а не вертикально к примеру, но нельзя указать системе: «вон то поле ввода на 2пикселя выше пусть будет». В управляемых формах код делится строго на клиентский и серверный. В обычных формах можно встретить некоторые серверные ограничения только в режиме клиент-сервер и только для функций которые не расположены в модулях форм.
Управляемые формы в 1С 8.3 — знакомимся и создаем первую форму
Программное открытие формы
Программно открыть форму можно с помощью метода «Открыть форму». Этот метод доступен в различных контекстах(форма может существовать и быть открыта только на клиенте) и отличается при использовании обычного и управляемого приложения(в толстом клиенте нельзя передать параметру в форму) но в целом имеет следующие основные параметры: ОткрытьФорму(, , , )
Имя формы: имя открываемой формы, так как для объекта метаданных могут быть не определены никакие формы, возможно указать просто тип формы который надо открыть, например «ФормаСписка» или «ФормаЭлемента».
Параметры — параметры передаваемые в форму, с их помощью можно управлять отборами, устанавливать строку в нужном месте, или просто передавать в форму нужные параметры.
Владелец – используется для организации подбора, обработкой результата выбора если форма открыта для подбора, будет заниматься форма или элемент указанные в этом параметре, так же есть возможность закрывать форму, если закрыта форма-владелец.
Уникальность – этот определенный ключ отвечающий за уникальность формы, если этот параметр указан, то при открытии формы будет произведен поиск формы открытой с этим ключом и если такая будет найдена, то будет активирована уже открытая форма.
Принадлежность форм
Формы могут общими(принадлежать к общим формам) или принадлежать определенному виду объектов, например справочнику номенклатура. Если формы принадлежат какому то виду объекта то они могут быть специального типа: например форма списка, эту форму можно использовать для того, что бы просмотреть список документов или форма документа, эту форму можно использовать для редактирования документа.
Создание формы в 1С и работа с обработчиками
Здесь мы говорим, «можно использовать» так как когда мы щелкаем по документу в списке или когда мы открываем список документов, будет открываться та форма, которая назначена основной. Если основная форма не назначена, при открытии форма будет сгенерирована, вне зависимости от того есть ли в списке форм, форма нужного вида. По сути форма это просто набор полей и кнопок, Форма выбора , форма списка и форма элемента могут отличаться друг от друга только основным реквизитом, который и служит идентификатором для платформы. Основными реквизитами у форм документа и у элемента справочника являются СправочникОбъект и ДокументОбъект . Для форм выбора и форм списка обычного приложения это СправочникСписок.ВидСправочника и ДокументСписок.ВидДокумента . У управляемого приложения у форм выбора и форм списка основной реквизит ДинамическийСписок . Форма выбора отличается от формы списка установленным свойством Режим выбора у основного реквизита. Если форма принадлежит справочникудокументу то для них доступны следующие типы:
Форма элемента справочникадокумента
Форма группы справочника
Форма списка справочникадокумента
Форма выбора справочникаъдокумента
Форма выбора группы справочника
Разница между элементами формы, и реквизитами объекта.
Для корректной работы с элементами формы, следует для себя четко разделить где нужно пользоваться элементами формы, а где реквизитами объекта. К примеру, Элементы.Организация Отвечает за поведение реквизита на форме, начиная от видимости, заканчивая цветом заголовка. В то время как Объект.Организация Предоставляет доступ непосредственно к данным.
Обращение к данным формы из модуля объекта.
Обратиться к реквизиту формы(не путайте с реквизитом документасправочника) из модуля документа или справочника невозможно, потому, что модуль не может знать какая форма сейчас открыта(а их ведь может много) да и не факт, что при выполнении процедуры или функции модуля формы, какая то форма будет вообще открыта. Реквизиты формы существуют, только до тех пор, пока форма открыта.
«Толстые» объекты на управляемой форме.
Так как на тонком клиенте недостуны, данные базы данных, серверные объекты(например таблица значений) то на форме их как таковые разместить нельзя в то время, когда они как типы для реквизитов доступны. Здесь дело в том что, при добавлении на форму, добавляется не табличное поле, и не сам список элементов справочника номенклатура к примеру, а коллекция например типа ДанныеФормыКоллекция или ДанныеФормыСтруктура с урезанным функционалом, суть которой заключается в том, чтобы отображать данные таблицы значений которая является реквизитом формы или документа. Список методов, доступных для этих типов, позволяет вести комфортную работу, с данными тех объектов которые они отображают.
Преобразование Реквизит – Данные формы и обратно.
Несмотря на то, что типы ДанныеФормыКоллекция , имеют достаточно широкий функционал, иногда возникает необходимость на сервере получить, «оригинал» — тот объект который отображает форма. Особенно это актуально для реквизитов формы, ведь данные реквизитов объекта, можно получить из самого объекта. Для таких случаев существует метод РеквизитФормыВЗначение() , например:
РеквизитФормыВЗначение (ИмяРеквизита, ТипКоторыйМыХотимПолучитьНаВыходе)
Второй параметр необязательный.(и не совсем понятно зачем он нужен). Возможно и обратное преобразование, бывает необходимо когда полученный извне или сгенерированный объект «засунуть» в уже существующий реквизит формы, соответствующего типа для этого существует
ЗначениеВРеквизитФормы(ЗначениеКотороеНадоПоложитьНаФорму, ИмяРеквизитаНаФорме)
Перезаполнение реквизитов формы в случае изменения объекта.
Бывают случаи когда объект изменяется не из формы а с помощью какой то процедуры, которая находится в модуле объекта или в любом другом месте. Если действие было инициализировано с помощью кнопки на форме, то после, например таких действий:
ТекущийОбъект = РеквизитФормыВЗначение («Объект») ИмяМодуля.КакаяТоПроцедура(ТекущийОбъект); //или ТекущийОбъект.ПроцедураФункцияМодуля();
Вы не увидите изменений на форме, все дело в том, что форма не делает лишних вызовов к серверу без необходимости и как следствие не в курсе, что с объектом, что-то происходило. В этом случае надо перечитать данные объекта, следующим образом:
ЗначениеВРеквизитФормы(ТекущийОбъект, «Объект»)
Источник: www.wiki-1c.ru
Что такое форма в программе 1с
Разработка интерфейса в 1С состоит из двух частей – разработка меню или рабочего стола и разработка экранных форм 1С. Окна, с которыми пользователь работает в 1С, называют экранные формы 1С или просто формы 1С.
Пользователи в программе работают с формами 1С. Мало того — пользователи видят только формы 1С. Поэтому с точки зрения удобства работы в программе это один из важных элементов. При этом убить времени на разработку формы 1С можно больше, чем на программирование самого сложного алгоритма.
Частой ошибкой программистов является попытка нарисовать все по своему вкусу. Сделать фон синим, а надписи зеленым. Или желтый на черном. Или как он ему нравится в какой-то другой его любимой программе.
К сожалению, этот подход ошибочен, так как пользователи привыкли работать с типовыми формами 1С, которых в конфигурации большинство. Рисовать собственный велосипед, помечать его надписями Courier вида «Copyright Vasya Pupkin» — это явно дурной тон.
Сейчас мы с Вами пройдем краткий ликбез по рисованию форм 1С.
Что такое Формы 1С
Форма 1С – это метод представления объекта 1С пользователю. Обычно форма представляет собой ряд полей, которые требуется заполнить и набор кнопок (команд меню) для управления. Форма 1С есть у большинства объектов 1С.
В толстом клиенте 1С используются «обычные» формы 1С. Это значит, что программист просто рисует мышкой форму 1С также как это делается в Visual Studio и других фреймфорках.
В тонком клиенте 1С и веб клиенте 1С используются управляемые формы 1С. Это значит, что их размер, форму 1С и расположение на них полей нельзя изменить мышкой. Они генерируются автоматически на основании настроек. Про управляемые формы 1С мы поговорим в следующих уроках.
Большинство форм 1С типовых конфигураций в 1С имеют свое, типовое представление, привычное пользователю.
- Форма списка 1С
В 1С есть множество списков. Когда мы говорим «справочник номенклатуры», то подразумеваем «список элементов номенклатуры (т.е. товаров)». Когда мы говорим документы банка, то имеем ввиду «список документов ПКО и РКО». Для отображения списков есть формы списков 1С. Это всегда табличная часть на всю форму 1С и над ней командная панель с кнопками Добавить, Скопировать и т.п., отображенными в виде картинок. Колонки и их порядок можно посмотреть в любом типовом справочнике и документе. - Форма элемента/документа 1С
Когда с помощью списка пользователь определился, с каким конкретным документом он собирается работать – открывается форма документа/элемента справочника 1С.Она обычно состоит из шапки (списка обязательных полей) и закладок с таблицами. Вверху находится также панель с кнопками, но на ней часто бывают текстовые меню Действия, Цены и валюта, Операция.
- Форма выбора 1С
Похожа на форму списка 1С. Зачастую форма списка 1С и используется в качестве формы выбора 1С. Она используется в том случае, когда при заполнении документа (или элемента справочника) пользователь нажимает кнопку выбора «…» и открывается форма 1С для выбора значения. - Форма отчета 1С
o Верхняя командная панель, обычно с кнопкой Настройка, по нажатию на которую открывается вторая форма отчета 1С – форма Настроек
o Выбор периода «С .. ПО . кнопка изменения периода»
o Одно или несколько полей быстрых отборов (например организация)
o Большое табличное поле, куда будет выведен отчет
o Кнопка формирования обычно вверху, крайняя справа «Сформировать». - Форма обработки 1С
o Имеет часто две командных панели – вверху и внизу, кнопка запуска и закрытия обычно внизу справа.
o Может не иметь формы вообще (см. использование обработок как классы)
o У отчетов и обработок формы списка нет.
Как работают формы 1С
Логика (порядок) работы пользователя в 1С следующая:
- Пользователь заходит в программу, видит интерфейс (в толстом клиенте обычно это меню, в тонком клиенте рабочий стол)
- Пользователь выбирает пункт меню или гиперссылку на рабочем столе – открывается форма списка 1С
- В форме списка 1С пользователь выбирает команду (например добавить) или существующий элемент списка (элемент справочника или документ) и начинает работать с формой 1С.
- Закончив работать с документом, пользователь закрывает форму документа 1С и возвращается в форму списка 1С. Закончив с ней – возвращается к меню.
Таким образом пользователь работает всегда с формами 1С, начиная с форма списка 1С и переходя к форме элемента 1С. Если программист не нарисовал формы, то 1С генерирует формы по умолчанию. Они естественно лишены идеальной красоты и совершенства, но работать позволяют.
Автоматически сгенерированная форма списка 1С обычно содержит минимум полей (код/наименование и дата/номер соответственно). Автоматически сгенерированная форма элемента обычно содержит все поля (реквизиты), перечисленные сверху вниз.
Задача формы 1С – открыться и ждать действий пользователя. При действии – отреагировать. Таким образом основу модуля формы 1С составляют обработчики событий. Это такие функции, которые вызываются тогда, когда пользователь совершает какое то действие на форме 1С.
Где находятся формы 1С
В режиме 1С Предприятие при выборе практически любого объекта 1С (справочника, документа, отчета, обработки и т.п.) Вам откроется форма этого объекта.
В конфигураторе, в окне конфигурации, выберите нужный Вам объект, раскройте его ветку, чтобы увидеть вложенную ветку Формы 1С.
Другой вариант – открыть редактор объекта (два раза мышкой или поставить курсор и Enter) и перейти на закладку Формы 1С.
Здесь расположен список форм 1С. Одну из добавленных форм 1С можно добавить как форма по-умолчанию (форма списка 1С, форма элемента 1С и так далее).
Создание форм 1С
Чтобы добавить новую форму 1С, нужно нажать кнопку Добавить (Ins на клавиатуре). Чтобы войти в существующую – нажмите на нее два раза мышкой.
Конструктор предложит Вам выбрать вид формы 1С – форма элемента 1С, списка. Здесь же можно добавить или убрать командные панели на форме 1С. Чаще всего эти настройки оставляются как есть, по умолчанию.
Открывается форма 1С, заполненная по умолчанию — на нее добавились все реквизиты объекта 1С, которые есть. Отметить галочками конкретный список требуемых полей можно на второй закладке конструктора.
Ненужные реквизиты можно удалить. Для этого выделите одно или несколько полей и нажмите Del.
Чтобы в освободившееся место сдвинуть другие реквизиты –выделите их так же и перетащите мышкой.
Чтобы добавить на форму 1С новые реквизиты, нажмите кнопку на панели Размещение данных (меню Форма/Размещение данных), установите галочки на тех элементах, которые нужно добавить, а также галочки «Вставить надписи» и «Разместить автоматически».
По другому можно просто добавить элемент управления, нажав соответствующую кнопку на панели внизу или выбрав в меню Форма/Вставить элемент управления. Нажмите на элементе управления (поле) два раза левой кнопкой мыши и откроются его свойства. Свойство «Данные» содержит название реквизита объекта 1С. Здесь его можно изменить или назначить.
Свойства элемента управления также содержат галочки управления внешним видом элемента управления. С помощью галочек можно включать и отключать кнопки выбора, выпадающий список, очистки, видимости и доступности.
Почти на всех формах документа используются закладки. Добавляется закладка так же, как и другой элемент управления (см. выше), только нужно выбрать элемент управления «Панель». Чтобы добавить страницу панели, нажмите на нее правой кнопкой мыши и выберите «Добавить страницу». Другие элементы управления (поля) на страницы панели просто перетаскиваются.
Чтобы изменить размер формы 1С, просто подведите курсор к краю формы 1С, нажмите левую кнопку мышки и просто перетащите край формы 1С.
Чтобы форма 1С заработала – т.е. делала что-то в ответ на действия пользователя – нужно добавить функции обработчики. Войдите в свойства любого элемента (щелкнув на нем два раза левой кнопкой мыши) или самой формы 1С (аналогично на заголовке формы). В самом низу окна свойств есть раздел «События». Выберите удобное событие (для всех полей это обычно «ПриИзменении», для формы «ПриОткрытии») и нажмите кнопку с лупой. Откроется ее обработчик события.
Для кнопок добавление происходит так же. Однако кроме произвольных обработчиков можно выбрать один из стандартных для этой формы (для формы справочника это одни стандартные действия, для формы документа – другие). Просто выберите одно из стандартных действий в свойстве «Действие» или нажмите крестик, если хочется сделать свой обработчик.
Проголосовать за этот пост:
Источник: howknow1c.ru
1С:Предприятие 8. Формы
Формы в 1С:Предприятии предназначены для отображения и редактирования информации, содержащейся в базе данных. Формы могут принадлежать конкретным объектам прикладного решения или существовать отдельно от них и использоваться всем прикладным решением в целом. Например, справочник Контрагенты может иметь несколько форм, которые будут использоваться для определенных целей — редактирования элемента справочника, отображения списка и т.д.:
Наряду с этим, могут существовать общие формы, не принадлежащие конкретным объектам прикладного решения:
Основные формы объектов прикладного решения
Каждый объект прикладного решения может использоваться для выполнения некоторых стандартных действий. Например, для любого справочника может потребоваться отображать список его элементов, отображать отдельные элементы справочника, отображать группу справочника, выбирать элементы и группы элементов из справочника. Для любого документа список таких действий будет гораздо меньше: просмотр списка документов, выбор из списка документов и просмотр отдельного документа.
Чтобы обеспечить выполнение таких стандартных действий с данными объектов прикладного решения, для каждого из них существует набор основных форм, которые будут использоваться при выполнении соответствующих действий. Основной может быть назначена любая из форм, подчиненных этому объекту. Например, у справочника Контрагенты могут существовать следующие основные формы:
А у документа Аккредитив состав основных форм будет уже другим:
Таким образом, если пользователь захочет посмотреть список справочника Контрагенты или список документов Аккредитив, система откроет соответствующую форму, назначенную в качестве формы списка для этих объектов.
Формы по умолчанию
Важной особенностью системы 1С:Предприятие 8.0 является механизм форм по умолчанию. Этот механизм освобождает разработчика от необходимости создания всех возможных форм для каждого из объектов прикладного решения. Разработчику достаточно создать новый объект прикладного решения, а система сама сгенерирует в нужные моменты работы пользователя необходимые формы по умолчанию для отображения информации, содержащейся в этом объекте. Таким образом, разработчику нужно создавать собственные формы объектов прикладного решения лишь в том случае, если они должны иметь отличия (другой дизайн или специфическое поведение) от форм, генерируемых системой по умолчанию.
Связь формы с данными
Принадлежность формы тому или иному объекту прикладного решения не определяет состав данных, которые отображаются в форме. То, что форма принадлежит, например, справочнику Контрагенты, позволяет назначить ее одной из основных форм для этого справочника, но никак не определяет, какие же именно данные будет отображать эта форма, и каково будет ее поведение.
Для того чтобы связать форму с данными, используются реквизиты формы, в которых указывается перечень данных, отображаемых формой. Все формы, сами по себе, имеют одинаковое поведение, независимо от того, какие данные они отображают. Однако один из реквизитов формы может быть назначен для нее основным (он выделяется жирным шрифтом), и в этом случае стандартное поведение формы и ее свойства будут дополнены в зависимости от того, какой тип имеет основной реквизит формы:
Например, если в качестве основного реквизита формы будет назначен документ Аккредитив, то при закрытии формы система будет запрашивать подтверждение записи и проведения этого документа. Если же основным реквизитом формы назначить, скажем, справочник Контрагенты, то подобного запроса подтверждения при закрытии формы возникать не будет.
Редактор форм
Для создания и изменения форм разработчик может использовать специальный редактор, обладающий удобными средствами графического конструирования форм различной сложности.
Дополнительная информация
Вы можете познакомиться с использованием различных механизмов форм (формы по умолчанию, работа с реквизитами формы и др.) в реальном режиме времени. Для этого можно скачать демонстрационный ролик «Пример разработки торговой мини-системы».
Источник: 1cpoly.ru