использование управляемых форм возможно
Управляемые формы 1С 8.3
Больше всего переделали механизмы построения форм и процесс контакта пользователя программы и базы данных. Стандартный режим пока что поддерживается платформой, однако в скором времени всем, кто пользуется программой, придется перейти на управляемые формы.
Отличительные черты управляемых форм
Для обычных юзеров управляемая форма документа в программе отличается от стандартной лишь видом. А для разработчика это абсолютно другой механизм, имеющий свои законы, правила и условия. В приложении изменили многое, но по мнению опытных разработчиков программы главными являются такие нововведения, как:
Последнее значение достаточно остро стоит в режиме управляемых форм. В том случае, если разработчик не очень хорошо разбирается в директивах и во взаимодействии сервера и клиента, ему будет трудно создать управляемую форму.
Редактирование управляемой формы теперь тоже стало осуществляться по-другому. Поменялись некоторые аспекты, разработчики версии 7.7, в которой отсутствовали управляемые формы, могут удивиться.
Изменения претерпел тип конструктора форм. Вы с легкостью сможете его увидеть. Для этого требуется открыть одну из форм объекта конфигурации. При открытии показывается окно, разделенное на такие отделы, как:
Принципы разработки управляемых форм
Чтобы понять механизм управляемого режима в программе необходимо запомнить, что форма есть как на сервере, так и на стороне клиента. На клиенте данный объект является изображением интерфейса взаимодействия юзера с приложением. Все подсчеты, алгоритмы, математические операции и обработки должны происходить лишь на стороне сервера. Это обусловлено не только невозможностью применять многие опции и параметры на клиенте, но и требованием к быстродействию.
Разобраться, где осуществляется процедура, получится по названию директивы, которая прописана перед каждой процедурой и опцией в модуле формы. Формулировка «БезКонтекста» показывает, что сведения на управляемой форме не передаются в данную процедуру на сервер. А значит, в таких процедурах нельзя писать алгоритмы, которые опираются на значения, введенные юзером. Если формулировка не указана, тогда форма будет передаваться целиком с реквизитами и у вас получится обращаться к ним.
Разработчики программы советуют применять неконтекстные вызовы сервера, сокращать их число и пытаться не осуществлять вычислений на клиенте. Начинающие специалисты, которые не очень хорошо знают теоретическую часть, трудно соответствовать данным правилам и верно менять код. Перед тем, как начинать работать самостоятельно, необходимо открыть управляемую форму конфигурации, посмотреть на синтаксис и методы взаимодействия клиентской и серверной стороны.
Обновленные правила разработки форм приложения принесут огромную пользу, если разработчики будут ими пользоваться. Изменения к лучшему заметят все. Как программисты, так и фирмы, осуществляющие деятельность в 1С и разработчики программы. Главные последствия верного использования управляемых форм:
Редактирование управляемых форм 1С
Редактор формы используется для создания и редактирования форм объектов прикладного решения.
Формы объектов используются системой для визуального отображения данных в процессе работы пользователя.
Составляющие управляемой формы 1С:
Редактор формы содержит несколько закладок, обеспечивающих редактирование всех составляющих формы.
В отдельном окне, в нижней части редактора, отображается внешний вид формы в режиме 1С:Предприятие.
Редактирование элементов формы 1С
Элементы формы 1С
Поведение каждого типа элементов управления по умолчанию задано платформой, однако может корректироваться разработчиком.
Для обычных форм элементы управления настраиваются только конфигуратором, а для управляемых возможны определенные корректировки элементов в режиме 1С:Предприятие.
В элементах управления данные не хранятся!
Для управляемой формы, список элементов управления доступен из соответствующего окна:
Особенности элементов управляемых форм:
Создадим внешнюю обработку, зададим в ней реквизит (HTMLполе) с типом «Строка» (длина строки должна превышать длину URL сайта, иначе будет обрезать):
Результат исполнения обработки:
Редактор позволяет добавлять в форму различные элементы:
Все элементы формы представляются в виде иерархической структуры, корнем которой является сама форма. Это позволяет быстро перемещаться к нужному элементу формы.
Располагая элементы выше (ниже) в дереве, подчиняя их другим элементам и задавая свойства элементов-групп можно задавать порядок, в котором пользователь будет обходить элементы управления формы при вводе и редактировании данных.
В режиме 1С:Предприятие элементы формы будут обходиться:
Если в обычной форме разработчик в явном виде определяет местоположение для каждого реквизита или команды, то в управляемом приложении визуальный интерфейс программа отрисовывает на основе особенностей расположения, размерности, графического выделения объектов (элементов) через их группировку и настройку этих групп.
Страницы и закладки формы 1С
Редактор форм позволяет добавлять в форму специальные элементы, которые позволяют:
Заголовок каждой группы-страницы отображается на отдельной закладке. Разработчик имеет возможность задать режим отображения закладок (снизу или сверху) в свойствах группы.
Исходный вариант формы элемента:
Элементы «Код», «Услуга» и «Наименование» помещены на разные закладки:
Вид формы в режиме 1С:Предприятие:
Разделители формы 1С
Разделители являются специальными элементами, с помощью которых возможно перераспределение пространства формы без изменения ее размеров.
Платформа в режиме 1С:Предприятие для управляемых форм самостоятельно добавляет эти элементы в форму.
При построении обычных форм используются вертикальные и горизонтальные разделители.
Элемент управления Разделитель позволяет пользователю менять пространство формы, сдвигая ее части. Разделитель может быть как с отображением, так и невидимый.
Наличие разделителя должно интуитивно угадываться при работе с формой, поэтому ближайшие от разделителя по направлениям его передвижения элементы управления размещаются вплотную к нему, таким образом визуально предполагая его расположение:
Разделитель обладает способностью «захватываться» мышью и перемещаться внутри формы в ее пределах с учетом возможности расположения других элементов и ориентации разделителя.
Таким образом, элемент управления «Разделитель» позволяет перераспределять внутреннее пространство формы, изменяя размеры расположенных в ней элементов управления, привязанных к разделителю. Размеры самой формы при этом не меняются.
Модуль формы 1С
Для редактирования модуля формы конфигуратор вызывает редактор текстов и модулей. Этот редактор предоставляет разработчику большое разнообразие возможностей для создания и изменения текста модуля формы.
Модуль формы 1C предназначен для обработки:
Модуль формы компилируется:
В модуле формы доступны разделы описания переменных и методов, а также раздел основной программы.
К стандартным событиям формы можно обратиться:
Особенности модуля управляемых форм:
Реквизиты формы 1С
Редактирование реквизитов формы выполняется в списке, который позволяет создавать новые реквизиты, изменять имеющиеся и удалять ненужные реквизиты.
Командный интерфейс формы 1С
В системе 1С:Предприятие он строится на основе иерархии подсистем, которую должен создать в конфигурации разработчик, и отражающую для пользователя структуру функциональности прикладного решения (подробнее читай Командные интерфейсы 1С).
Все прикладные объекты конфигурации (справочники, документы, отчеты и т. д.) привязываются разработчиком конфигурации к подсистемам. Иерархия подсистем должна отражать структуру функциональности именно так, как она будет представляться пользователю.
Уже на основе этой информации (структуры подсистем и привязки объектов к подсистемам) платформа автоматически строит командный интерфейс для пользователя. Пользователю отображается структура прикладного решения (иерархия подсистем) и предоставляются стандартные команды доступа к функциональности прикладных объектов (вызов списков справочников, документов, открытие отчетов, обработок и т. д.). Однако разработчик, разумеется, может отредактировать предлагаемое системой построение командного интерфейса (изменить порядок, видимость команд). Для этого предназначен целый ряд редакторов командного интерфейса, которые позволяют настраивать различные части интерфейса программы.
Командный интерфейс формы редактируется в дереве. Основные ветви дерева содержат команды, добавленные в панель навигации окна, в котором будет показана форма, и в командную панель формы. Внутри каждой из этих ветвей команды разделены по стандартным группам.
Часть команд в командный интерфейс платформа добавляет автоматически. Наряду с этим разработчик самостоятельно может добавить в командный интерфейс команды, перетащив их из списка команд формы, стандартных команд или из списка доступных глобальных команд.
Для всех команд, добавленных в командный интерфейс, разработчик может задать их видимость для различных ролей, определенных в конфигурации.
Команды формы 1С
Команды формы редактируются в списке. Разработчик имеет возможность:
На закладках «Стандартные команды» и «Глобальные команды» разработчику предоставляются списки команд, генерируемых платформой и доступных для использования в данной форме. Их свойства изменять нельзя, можно только добавлять их в форму.
С помощью мыши разработчик может перетащить команду в командный интерфейс формы (платформа автоматически нарисует кнопку). Также можно перетащить команду и прямо в дерево элементов, если нужно, например, отобразить эту команду в виде кнопки, расположенной в форме (платформа автоматически нарисует кнопку).
НЕКОТОРЫЕ ОСОБЕННОСТИ УПРАВЛЯЕМЫХ ФОРМ
Рассмотрены следующие отличительные особенности управляемых форм:
• Форма существует и на клиенте и на сервере.
Она осуществляет клиент-серверное взаимодействие
• Форма не работает с прикладными объектами
В форме используются специальные универсальные объекты ДанныеФормы
В управляемых формах на первый план выходит разделение контекста на клиентский и серверный. Для возможности работы по тонким каналам связи вся работа прикладных объектов теперь выполняется только на сервере. На клиенте отображается уже подготовленная на сервере форма, выполняется ввод данных и вызовы сервера для записи введенных данных и других необходимых действий
В модуле управляемой формы возможно объявление переменных, процедур и функций. Так как у правляемая форма существует одновременно и на сервере и на клиенте, то каждая процедура и функция и объявление переменной должны предваряться директивой компиляции, определяющей среду исполнения.
Допустимы следующие директивы:
&НаКлиенте — Означает, что метод выполняется на стороне клиента, а переменная существует все время жизни клиентской части формы. Клиентская процедура исполняется в среде клиентского приложения. Доступны: Свойства и методы глобального контекста, доступные на клиенте; экспортные переменные; процедуры и функции модуля управляемого приложения, общих модулей скомпилированных на клиенте, общих модулей скомпилированных на сервере, если у них установлено свойство «Вызов Сервера»; свойства и методы расширения формы, определяемого основным реквизитом; свойства и методы объекта встроенного языка УправляемаяФорма; реквизиты формы; локальный контекст модуля.
&НаСервере — Означает, что метод выполняется на стороне сервера, а переменная существует только во время выполнения серверного вызова, при каждом серверном вызове значение переменной сбрасывается. Для серверных методов допустимы вызовы серверных, серверных внеконтекстных и клиент-серверных внеконтекстных методов. Контекст так же образуется свойствами и методами глобального контекста, экспортными процедурами и функциями общих модулей скомпилированных на сервере, свойствами и методами расширения формы, определяемого основным реквизитом, свойствами и методами объекта встроенного языка УправляемаяФорма, реквизитами формы. Клиентские процедуры, функции и переменные недоступны.
&НаСервереБезКонтекста — опреде ляет серверную процедуру, исполняемую вне контекста формы. Переменные не могут предваряться такой директивой. Серверная процедура, исполняемая вне контекста формы, (внеконтекстная) исполняется в среде серверного приложения. В такой процедуре не доступен контекст формы (включая данные формы). Допустимыми являются вызовы только других внеконтекстных процедур. При вызове этих процедур не выполняется передача данных формы на сервер и обратно. Применение внеконтекстных процедур позволяет существенно уменьшить объем передаваемых данных при вызове серверной процедуры из среды клиентского приложения.
&НаКлиентеНаСервереБезКонтекста — используется, когда к процедуре необходимо обращаться как с клиента, так и с сервера. Означает, что метод исполняется как на клиенте, так и на сервере вне контекста формы. Переменные не могут предваряться такой директивой.
Таким образом, разработчик должен понимать, что он фактически работает с двумя контекстами исполнения: серверным и клиентским, и между ними происходит обмен данными
При этом нужно учитывать, что на клиенте поддерживается лишь ограниченный набор типов данных и интерфейсные функции. На клиенте не допускается непосредственная работа с базой данных, работа непосредственно с прикладными объектами, использование запросов, таблиц значений. Доступность описана в синтакс-помошнике и ее необходимо проверять.
При разработке необходимо заботиться об оптимизации клиент-серверного взаимодействия:
Еще одна важная особенность управляемой формы состоит в том, что в ней происходит лишь отображение объекта. Основным ее реквизитом является не сам объект, а данные формы, в которые он преобразуется.
Элементами данных формы могут быть
Поэтому, для управляемой формы напрямую свойства и методы объекта недоступны. Чтобы обратиться из формы к свойствам и методам объекта нужно сначала получить объект.
Во время разработки конфигурации важно помнить, что прикладные объекты доступны только на сервере, в то время как объектами данных форм можно пользоваться и на сервере, и на клиенте.
Базовый принцип программирования управляемой формы в 1С
Цель статьи – показать применение шаблонов Remote Facade и Data Transfer Object к структуризации кода, управляемой формы в среде 1С 8.2.
Введение
Начнем с небольшого описания понятия «управляемая форма» и связанных концепций платформы 1С. Знатоки платформы могут пропустить этот раздел.
Все дальнейшие рассуждения будут о правой части иллюстрации, о том, как структурировать код модуля и какие принципы позволят реализовать эффективное клиент-серверное взаимодействие.
Обозначим проблему
Прошло уже несколько лет как новая версия платформы 1С активно используется и выпущено множество решений (конфигураций) как фирмой 1С, так и ее многочисленными партнерами.
Сложилось ли за это время у разработчиков единое понимание принципов клиент-серверного взаимодействия при создании форм, и изменился ли подход к реализации программных модулей в новых архитектурных реалиях?
Рассмотрим структуру кода (модуль формы) в нескольких формах одной типовой конфигурации и попробуем найти закономерности.
Под структурой будем понимать секции кода (чаще всего это блоки комментариев) выделенные разработчиком для группировки методов и директивы компиляции этих методов.
Пример 1:
Зачем нужна структура кода?
Почему существующий стандарт разработки от фирмы 1С не помогает?
Шаблоны проектирования или мудрость поколений
Примеры шаблонов в платформе 1С
Прикладной программный интерфейс доступный разработчику при разработке управляемой формы, содержит много примеров данных принципов.
Например метод ОткрытьФорму(), типичный «огрубленный» интерфейс.
Сравните с принятым в v8.1 стилем.
Структурируем код
Интерфейсные механизмы 1c. Список вопросов 1c :Профессионал Платформа 8.3
Проверьте свои знания на тему “Интерфейсные механизмы 1c” по экзамену для сертификата 1с Профессионал.
Список вопросов 1c :Профессионал Платформа 8.3 Глава 10
Навигация (только номера заданий)
0 из 131 заданий окончено
Информация
10. Интерфейсные механизмы
Вы уже проходили тест ранее. Вы не можете запустить его снова.
Вы должны войти или зарегистрироваться для того, чтобы начать тест.
Вы должны закончить следующие тесты, чтобы начать этот:
Результаты
Правильных ответов: 0 из 131
Вы набрали 0 из 0 баллов ( 0 )
Рубрики
Какие виды форм позволяет использовать Платформа 8.3?
Использование обычных форм возможно:
Использование управляемых форм возможно…
Как реализован механизм автопреобразования обычных форм в управляемые и обратно
Для чего служит основной реквизит формы?
Для чего нужны реквизиты формы?
Что бы произвольной управляемой форме назначить основной реквизит…
Что бы произвольной обычной форме назначить основной реквизит…
При наличии одного основного реквизита формы можно ли добавить еще один основной реквизит?
Для чего нужны основные формы прикладных объектов?
В качестве основной формы можно назначить?
Как определяется рабочая область рабочего стола?
Разместить формы в области рабочего стола можно:
Начальную страницу можно отобразить:
Управляемые формы списков можно отобразить:
Настройка формы в режиме исполнения позволяет:
Настройка списка в режиме исполнения позволяет:
Какие возможности по настройке порядка обхода элементов в управляемой форме существуют в системе 1С:Предприятие 8?
Панель навигации может существовать:
Параметры формы предназначены:
При наличии одного ключевого параметра можно ли добавить еще один ключевой параметр формы?
Чем отличается ключевой параметр формы от обычного?
Для добавления команды в виде кнопки на управляемой форме можно:
Для добавления команды в виде кнопки на управляемой форме можно:
Для добавления команды в виде кнопки на обычной форме можно:
С помощью элемента управления “Индикатор” можно:
На рисунке представлена:
Поведение элементов управления…
С помощью элемента управления “Переключатель” можно:
Возможность системы создания “налету” форм по умолчанию в режиме “1С:Предприятие”…
Какой из элементов управления предназначен для интерактивного анализа многомерных данных в графическом виде?
Для хранения значения элемента управления “Переключатель” можно использовать:
При использовании свойства диаграммы “МаксимумСерийКоличество”, если количество серий превышает максимальное значение:
Для чего используются привязки в обычной форме?
При расположении в панели обычной формы элементов управления…
С помощью кнопки панели инструментов “Элементы управления”, указанной на рисунке, будут созданы:
Значение типа “ЗначениеДиаграммы” позволяет получить:
Как включить возможность интерактивной перенастройки порядка обхода элементов управления обычной формы?
Элемент управления “Надпись” предназначен:
Свойство диаграммы “БазовоеЗначение” содержит:
При размещении элементов управления в форме нельзя…
Если для элемента управления “Надпись” в качестве источника данных указан реквизит справочника, то выводимая надписью информация будет определяться:
Сколько может быть создано форм, подчиненных справочнику “Номенклатура”?
Элемент управления “Поле HTML-документа” предназначен:
Редактировать HTML-документ, отображаемый в элементе управления “Поле HTML-документа”, можно:
HTML-документ в элементе управления “Поле HTML-документа” может быть сформирован:
Список значений, используемый в элементе управления “Поле выбора”, может быть сформирован:
Можно ли, нажав на картинку, выполнить некоторые действия?
Для выбора значений из списков можно использовать следующие элементы управления:
С помощью элемента управления “Поле текстового документа” можно отображать и редактировать:
Элемент управления “Разделитель” позволяет:
Визуально объединять элементы управления, размещенные в форме, можно с помощью:
Поясняющая информация на элементе управления “Кнопка” может быть представлена в виде:
В качестве обработчика события “Нажатие” элемента управления “Кнопка” может быть:
Можно ли при нажатии на элемент управления “Кнопка” осуществить вызов подменю?
Сколько элементов управления “Командная панель” расположено на форме?
Для управления информацией, расположенной в форме, элемент управления “Командная панель” может содержать:
Каким образом для элемента управления “Командная панель” реализовать возможность его автоматического заполнения?
В конфигурацию добавлен новый справочник “Договора”, подчиненный справочнику “Контрагенты”. Каким образом, в режиме Конфигуратора, необходимо модернизировать основные формы списка и элемента справочника “Контрагенты”, чтобы для конкретного контрагента имелась возможность просмотреть его договора? Каждая из форм имеет автоматически заполняемую командную панель.