как реализован механизм автопреобразования обычных форм в управляемые и обратно
Управляемые формы 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С
Команды формы редактируются в списке. Разработчик имеет возможность:
На закладках «Стандартные команды» и «Глобальные команды» разработчику предоставляются списки команд, генерируемых платформой и доступных для использования в данной форме. Их свойства изменять нельзя, можно только добавлять их в форму.
С помощью мыши разработчик может перетащить команду в командный интерфейс формы (платформа автоматически нарисует кнопку). Также можно перетащить команду и прямо в дерево элементов, если нужно, например, отобразить эту команду в виде кнопки, расположенной в форме (платформа автоматически нарисует кнопку).
Интерфейсные механизмы 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-документа” может быть сформирован:
Список значений, используемый в элементе управления “Поле выбора”, может быть сформирован:
Можно ли, нажав на картинку, выполнить некоторые действия?
Для выбора значений из списков можно использовать следующие элементы управления:
С помощью элемента управления “Поле текстового документа” можно отображать и редактировать:
Элемент управления “Разделитель” позволяет:
Визуально объединять элементы управления, размещенные в форме, можно с помощью:
Поясняющая информация на элементе управления “Кнопка” может быть представлена в виде:
В качестве обработчика события “Нажатие” элемента управления “Кнопка” может быть:
Можно ли при нажатии на элемент управления “Кнопка” осуществить вызов подменю?
Сколько элементов управления “Командная панель” расположено на форме?
Для управления информацией, расположенной в форме, элемент управления “Командная панель” может содержать:
Каким образом для элемента управления “Командная панель” реализовать возможность его автоматического заполнения?
В конфигурацию добавлен новый справочник “Договора”, подчиненный справочнику “Контрагенты”. Каким образом, в режиме Конфигуратора, необходимо модернизировать основные формы списка и элемента справочника “Контрагенты”, чтобы для конкретного контрагента имелась возможность просмотреть его договора? Каждая из форм имеет автоматически заполняемую командную панель.
Инструменты пользователя
Инструменты сайта
Боковая панель
Базовые положения
Общие объекты
Общие метаданные
Прикладные объекты
Содержание
Формы
Формы используются для удобного отображения данных базы пользователю. С формами можно работать как пользователь интерактивно, так и программист управляя поведением и внешним видом формы с помощью кода.
Типы форм
Формы делятся на два типа: обычные и управляемые, обычные формы это формы которые были в линейке 8 с самого начала и по текущий момент. Смысл этих форм заключается в том что форма в прямом смысле рисуется разработчиком, он указывает на то место (вплоть до пикселя)где будут располагаться элементы формы. Обычные формы работают только в толстом клиенте, в то время когда управляемые формы работают и в толстом и в тонком клиенте. Управляемые формы доступны в версии 1С начиная с 8.2 и выше и только когда конфигурация настроена как «Управляемое приложение». В тонком клиенте возможно использование только управляемых форм. Управляемую форму нельзя нарисовать мышкой. Элементы в ней не рисуются, а декларируются или объявляются, что накладывает некоторые ограничения. Вы можете указать что реквизиты будут группироваться горизонтально а не вертикально к примеру, но нельзя указать системе: «вон то поле ввода на 2пикселя выше пусть будет». В управляемых формах код делится строго на клиентский и серверный. В обычных формах можно встретить некоторые серверные ограничения только в режиме клиент-сервер и только для функций которые не расположены в модулях форм.
Программное открытие формы
Принадлежность форм
Разница между элементами формы, и реквизитами объекта.
Для корректной работы с элементами формы, следует для себя четко разделить где нужно пользоваться элементами формы, а где реквизитами объекта. К примеру, Элементы.Организация Отвечает за поведение реквизита на форме, начиная от видимости, заканчивая цветом заголовка. В то время как Объект.Организация Предоставляет доступ непосредственно к данным.
Обращение к данным формы из модуля объекта.
Обратиться к реквизиту формы(не путайте с реквизитом документа\справочника) из модуля документа или справочника невозможно, потому, что модуль не может знать какая форма сейчас открыта(а их ведь может много) да и не факт, что при выполнении процедуры или функции модуля формы, какая то форма будет вообще открыта. Реквизиты формы существуют, только до тех пор, пока форма открыта.
«Толстые» объекты на управляемой форме.
Так как на тонком клиенте недостуны, данные базы данных, серверные объекты(например таблица значений) то на форме их как таковые разместить нельзя в то время, когда они как типы для реквизитов доступны. Здесь дело в том что, при добавлении на форму, добавляется не табличное поле, и не сам список элементов справочника номенклатура к примеру, а коллекция например типа ДанныеФормыКоллекция или ДанныеФормыСтруктура с урезанным функционалом, суть которой заключается в том, чтобы отображать данные таблицы значений которая является реквизитом формы или документа. Список методов, доступных для этих типов, позволяет вести комфортную работу, с данными тех объектов которые они отображают.
Преобразование Реквизит – Данные формы и обратно.
Второй параметр необязательный.(и не совсем понятно зачем он нужен). Возможно и обратное преобразование, бывает необходимо когда полученный извне или сгенерированный объект «засунуть» в уже существующий реквизит формы, соответствующего типа для этого существует
Перезаполнение реквизитов формы в случае изменения объекта.
Бывают случаи когда объект изменяется не из формы а с помощью какой то процедуры, которая находится в модуле объекта или в любом другом месте. Если действие было инициализировано с помощью кнопки на форме, то после, например таких действий:
Вы не увидите изменений на форме, все дело в том, что форма не делает лишних вызовов к серверу без необходимости и как следствие не в курсе, что с объектом, что-то происходило. В этом случае надо перечитать данные объекта, следующим образом:
Базовый принцип программирования управляемой формы в 1С
Цель статьи – показать применение шаблонов Remote Facade и Data Transfer Object к структуризации кода, управляемой формы в среде 1С 8.2.
Введение
Начнем с небольшого описания понятия «управляемая форма» и связанных концепций платформы 1С. Знатоки платформы могут пропустить этот раздел.
Все дальнейшие рассуждения будут о правой части иллюстрации, о том, как структурировать код модуля и какие принципы позволят реализовать эффективное клиент-серверное взаимодействие.
Обозначим проблему
Прошло уже несколько лет как новая версия платформы 1С активно используется и выпущено множество решений (конфигураций) как фирмой 1С, так и ее многочисленными партнерами.
Сложилось ли за это время у разработчиков единое понимание принципов клиент-серверного взаимодействия при создании форм, и изменился ли подход к реализации программных модулей в новых архитектурных реалиях?
Рассмотрим структуру кода (модуль формы) в нескольких формах одной типовой конфигурации и попробуем найти закономерности.
Под структурой будем понимать секции кода (чаще всего это блоки комментариев) выделенные разработчиком для группировки методов и директивы компиляции этих методов.
Пример 1:
Зачем нужна структура кода?
Почему существующий стандарт разработки от фирмы 1С не помогает?
Шаблоны проектирования или мудрость поколений
Примеры шаблонов в платформе 1С
Прикладной программный интерфейс доступный разработчику при разработке управляемой формы, содержит много примеров данных принципов.
Например метод ОткрытьФорму(), типичный «огрубленный» интерфейс.
Сравните с принятым в v8.1 стилем.