Публикую вторую главу моей книги «Основы разработки в 1С: Такси»
Глава 1. Виды клиентов управляемых приложений
Глава 2.Обычное и управляемое приложение 1С
В этой главе мы рассмотрим, что такое обычное и управляемое приложение и чем они отличаются друг от друга, но перед этим разберем такое понятие как «интерфейс».
Что вообще такое «интерфейс»? По сути, это общая граница между двумя взаимодействующими системами (очень часто одной системой является человек). Возьмем, например, автомобиль. Есть ли у него интерфейс? Да, конечно. Но что же является общей границей между автомобилем и человеком? Во-первых, это рабочее место, т.е. непосредственно водительское сиденье и органы управление (руль, педаль акселератора, педаль тормоза и т.д.). Во-вторых, это принципы взаимодействия человека с автомобилем, которые являются каким-то набором правил. Например, для того, чтобы ускорить автомобиль, нужно нажать педаль газа, замедлить – педаль тормоза, для поворота направо нужно выкрутить руль вправо и т.д. Благодаря двум этим сущностям человек может управлять автомобилем. Уберите что-то одно, и управление автомобилем не станет возможным.
В мире программного обеспечения все точно так же. Одна система это человек – оператор, пользователь. А вторая система это некоторое приложение, созданное для автоматизации определенного вида человеческой деятельности (мы рассматриваем прикладное программирование).
Например, нам нужно самостоятельно вести складской учет: осуществлять приход товара на склад, списание этого товара и следить за остатками. Что же будет являться общей границей между приложением, без разницы, как и где написанным, и пользователем? Во-первых, это органы ввода информации — иначе как Вы передадите в программу, что на склад пришло 5 штук какой-то продукции. В нашем случае это компьютерная клавиатура и компьютерная мышка. Во-вторых, это система взаимодействия между компьютером и человеком. Например, это может быть интерфейс командной строки: Вы будете с помощью клавиатуры вводить различные текстовые строки (команды) и с их помощью выполнять нужные действия (фиксировать приход товара, расход товара и пр.). Такой интерфейс выглядит примерно так: см. рис. 1.2.1.
Рис. 1.2.1 Пример командной строки
На этом рисунке приведена командная строка операционной системы Windows, с помощью неё Вы можете делать почти все операции, которые делаете в проводнике: копировать файлы, удалять файлы, создавать каталоги и т.п.
Данный вид интерфейса давно является архаичным, и на его смену пришел графический интерфейс пользователя (анг. graphical user interface GUI). В этом интерфейсе взаимодействие между пользователем и приложением происходит посредством различных графических элементов, нарисованных на дисплее (кнопки, иконки, переключатели и т.п). В графическом интерфейсе оператор имеет произвольный доступ посредством органов управления к любым графическим элементами. В нашем случае, когда автоматизируем складской учет, взаимодействие может выглядеть так: оператор нажимает кнопку «Приход», открывается форма подбора товара, где оператор выбирает нужный товар из списка и вводит его количество. Если нужно осуществить расход, то оператор нажимает кнопку «Расход», так же открывается форма подбора, где оператор так же выбирает нужный товар и вводит его количество. Когда нужно сверить остатки, оператор нажимает на кнопку «Остатки», и программа выводит ему остатки товара на складе. Тем самым с помощью данного графического интерфейса Вы можете вполне успешно вести учет товаров на складе.
Закончим с теоретической частью и перейдем непосредственно к теме данной главы. А именно к видам интерфейсов приложения программы 1С, которые все являются графическими интерфейсами пользователя. У программы «1С: Предприятие 8» существуют два глобальных вида графических интерфейсов приложений. Это режим обычного приложения и режим приложения под управляемыми формами (или управляемое приложение).
Платформы редакции 8.0 и 8.1. работали только под обычным режимом, более высокие версии платформы (8.2, 8.3 и т.д.) могут работать и в режиме обычного приложения, и в режиме управляемого приложения.
Режим обычного приложения
Практически все современные конфигурации уже работают под управляемым режимом, но все равно ещё встречаются организации, где используются устарелые конфигурации, которые работают в режиме обычного приложения. Поэтому принципы работы обычного приложения необходимо знать. Здесь мы коснемся только самых общих моментов.
В режиме обычного приложения используется интерфейс и формы, которые применялись в платформах 8.0 и 8.1. Раньше этот режим никак не назывался, сейчас же он называется «режим обычного приложения», а формы, которые используются в этом режиме, называются «обычные формы».
Посмотрим вкратце, как выглядит этот режим. Многим он уже будет знаком, но некоторые, особенно те, кто не застал работу под платформами 8.0 и 8.1, его увидят в первый раз.
После загрузки программы пользователь видит интерфейс с меню в его верхней части (см. рис. 1.2.2).
Рис 1.2.2 Вид интерфейса обычного приложения
Переходя по пунктам меню, пользователь может открывать различные формы. В основном это формы списков справочников и документов (см. рис. 1.2.3), но также могут быть отчеты, обработки, планы счетов и пр.
Рис.1.2.3. Форма списка документов
Из формы списка пользователь может открыть форму документа или справочника (см. рис. 1.2.4).
Рис. 1.2.4. Форма документа
Разработчик может использовать автоматически генерируемые формы, или самостоятельно конструировать их в конфигураторе 1С.
Обычные формы разработчику нужно конструировать мышкой: размещать на форме необходимые элементы (кнопку, поле, таблицу), передвигать их в удобное место и определять размер (см. рис. 1.2.5).
Рис 1.2.5. Конструирование обычных форм
Очень часто при разработке сложных форм приходилось учитывать взаимодействие элементов формы между собой. Для этого устанавливались привязки. Иногда они сбивались, и форма приобретала не совсем красивый вид. Не будем особо вдаваться в этот механизм и последствия его неправильного использования, поскольку в случае управляемых форм он утратил свою актуальность.
Напоследок отмечу, что в отличие от управляемого приложения, обычное может работать только под «толстым клиентом». По большому счету, это есть основное, самое кардинальное отличие обычных форм от управляемых. Поскольку режим управляемого приложения был разработан именно для работы под «тонким клиентом».
Режим управляемого приложения
Так в чем же особенность и кардинальное различие режима управляемого приложения от обычного? Основное отличие — это использование управляемого командного интерфейса и управляемых форм. Разберем каждую из этих сущностей отдельно. Что такое управляемый командный интерфейс? Для того, чтобы ответить на этот вопрос, необходимо углубиться опять в прошлое.
Рассмотрим в самом простом виде, как велась разработка конфигурации в обычном приложении. Сначала мы конструировали бизнес-логику: документы, справочники, отчеты, обработки и их взаимодействие между собой. Потом мы настраивали роли, например пользователь с ролью «Снабженец» имел доступ к документу «Приход товара», а к документу «Расход товара» — нет. И наоборот, пользователь с ролью «Продавец» имел доступ к документу «Расход товара», а к документу «Приход товара» — нет. Следующим шагом мы разрабатывали интерфейсы для каждого вида пользователя. Кто практиковал разработку под обычным приложением, помнит, что был такой объект конфигурации, как «Интерфейс», в котором можно было настроить каждое меню наподобие меню на рисунке 1.2.2. И в нашем случае разработчику нужно было потрудиться сделать два интерфейса: один для снабженца, а другой для продавца. Потому что если бы он разработал один общий интерфейс, в котором можно открыть и документ «Приход товара», и документ «Расход товара», то было бы не совсем правильно, если бы снабженец при попытке отрыть список документов «Расход товара», получил сообщение системы, что у него нет на это прав. Чтобы избежать этого, необходимо было сделать два интерфейса и для каждого пользователя указать, под каким интерфейсом он должен работать.
В режиме управляемого приложения все намного проще. Более подробно управляемый командный интерфейс мы будем изучать в следующей части. В этой части мы разберем его в самых общих чертах. В случае интерфейса «такси», управляемый командный интерфейс выглядит так:
Рис. 1.2.6. Управляемый командный интерфейс
При разработке управляемого приложения программисту придется идти немного другим путем. Прежде чем разрабатывать бизнес-логику, нам нужно определить подсистемы, в которые будут входить наши объекты (в обычном приложении они тоже есть, но носят больше декларативный характер). Например, документ «Приход товаров» будет входить в подсистему «Снабжение», а документ «Расход товаров» будет входить в подсистему «Продажи». В то же время некоторые объекты могут находиться в нескольких подсистемах одновременно: справочник «Товары» будет входить и в подсистему «Продажи», и в подсистему «Снабжение», и в подсистему «Маркетинг». В этом случае разработчику нет необходимости создавать объект «Интерфейс», система сама автоматически построит нужный вид интерфейса исходя из настроек прав пользователя и функциональных опций.
Если у какого-то пользователя будет роль, в которой нет прав на просмотр подсистемы, например «Снабжение», то при запуске приложения 1С он просто не увидит этот пункт меню. Так же он не увидит в списке меню документ, на который у него нет права хотя бы на просмотр.
На рисунке 1.2.6 Вы видели интерфейс пользователя с полными правами, а, например, интерфейс продавца будет выглядеть так:
Рис. 1.2.7. Интерфейс пользователя с ограниченными правами
Еще одно отличие от обычного интерфейса, что пользователь самостоятельно может определять вид своего интерфейса с помощью настроек навигаций, действий, разделов и пр. Например, из интерфейса на рисунке 1.2.7 мы можем убрать из функций текущего раздела (верхнее меню) пункты «Склад» и «Товар». Получится вот такой вид:
Рис. 1.2.8. Интерфейс пользователя с урезанными функциями текущего раздела
Более подробно настройку интерфейса пользователем мы разберем в следующих главах этой части, а взаимосвязь ролей и внешнего вида интерфейса мы изучим в следующей части этого курса. Пока же отметим для себя основные отличия управляемого командного интерфейса от обычного.
- Вид управляемого командного интерфейса настраивается автоматически с помощью механизмов платформы в зависимости от настроек прав пользователей и функциональных опций.
- Пользователь может самостоятельно настраивать вид интерфейса по своему желанию.
Теперь разберем, что же такое управляемые формы.
Как Вы уже знаете из предыдущей главы, развитие технологий заставило фирму 1С пересмотреть архитектуру платформы, и на свет появилась новая версия технологической платформы — 8.2. Основным ее отличием была возможность работать под «тонким клиентом» и web-клиентом. Эти оба вида клиентских приложения («тонкий клиент» и web-клиент) необходимы нам для работы через сеть интернет, а работа через интернет, в отличие от работы по обычной сети, накладывает существенные ограничения на скорость передачи данных и широту канала данных. Что в свою очередь от разработчиков платформы потребовало принципиально пересмотреть концепт работы формы. Если раньше на форме Вы напрямую могли обратиться к любому объекту справочника или документа, то теперь это стало слишком дорогим удовольствием. Поэтому был разработан механизм управляемых форм.
Основные отличия управляемых форм от обычных:
- Возможность разделять выполнение кода в форме на сервере и на клиенте. Для этого служат специальные директивы компиляции: &НаСервере, &НаКлиенте, &НаСерверБезКонтекста, &НаКлиентеНаСеревереБезКонтекста, &НаКлиентеНаСервере. При разработке управляемой формы необходимо определить, какой код будет выполняться на стороне сервера, а какой код исполнится на стороне клиента (например, в компьютере пользователя или в web-браузере). Как Вы помните из предыдущей главы, «1С:Предприятие» может запускаться в том числе под «тонким клиентом» или web-клиентом, а под этими видами клиентских приложений, из-за ограниченных пропускных характеристик сети интернет, очень мало возможностей. Например, у Вас будет отсутствовать доступ ко всем объектным типам базы: нельзя создать новый элемент или изменить имеющийся элемент какого-нибудь справочника или документа, пометить на удаление и т.п. По большому счету, под «тонким клиентом» можно только управлять самой формой, и как следствие, будут задействованы минимальные ресурсы того устройства, где сейчас запущено приложение, а все более серьезные операции (например, операции с прикладными типами) запустятся на сервере. Поэтому на форме с помощью директив компиляции можно определить, что будет выполняться на сервер, а что на клиенте. Более подробно директивы компиляции мы разберем в 3 части этого курса.
- Нет необходимости в «прорисовке» формы и установлении привязок. Разработчик просто декларирует положение нужного элемента на форме, а система сама, автоматически, разместит его на форме. Как следствие этого, пользователь в режиме приложения может самостоятельно настраивать форму на свой вкус.
- Управление формой происходит посредством команд. Если в обычных формах Вы рисовали кнопку, потом писали обработчик события нажатия на кнопку, то в управляемых формах Вам нужно разместить кнопку, а потом привязать к кнопке или команду формы, или стандартную команду, или какую-нибудь глобальную команду. Подробно о командах мы узнаем во второй части нашего курса.
- Помимо реквизитов, которые есть и у обычных форм, у управляемых форм появились параметры. Параметры необходимы для управления функциональностью формы при её открытии. Т.е. при создании обычной формы, перед её открытием, вы можете присвоить реквизитам формы какие-либо значения, которые впоследствии будете использовать. В случае управляемых форм механизм открытия другой. Подробно мы его изучим в 3 части этого курса, пока отметим лишь то, что при открытии мы не можем передать данные в реквизиты формы напрямую, как было в обычных формах, для этого нужно использовать параметры формы.
Окно настройки управляемой формы в конфигураторе 1С выглядит так:
Рис. 2.1.9 Вид настройки управляемой формы
На практике разрабатывать под управляемыми формами несколько легче, чем под обычными, но существуют и свои нюансы. Основная сложность, это определить, какой код будет выполняться на сервере, а какой на клиенте. Потому что если неправильно разработать клиент-серверную архитектуру управляемой формы, то будут иметь место проблемы с производительностью. В то же время и разработать форму нужно так, чтобы через месяц можно было разобрать, что там вообще происходит. Все эти вопросы мы будем затрагивать в 3 части нашего курса.
Мы закончили краткий обзор по отличиям управляемых форм от обычных и вернемся к управляемому приложению. Всего существует три режима работы управляемого приложения, это: «такси», формы в закладках и формы в отдельных окнах. Все примеры в этом курсе будут на режиме «такси».
Когда Вы создаете новую пустую конфигурацию, то по умолчанию она будет в режиме такси. Если захотите этот режим в будущем исправлять, то свойство конфигурации «Режим совместимости интерфейса» нужно поставить в свойство «Такси. Разрешить Версия 8.2» (см. рис. 2.1.11). Как зайти в свойство конфигурации, если кто не знает, показано на рисунке 2.1.10.
Рис. 2.1.10. Путь к свойствам конфигурации
Рис. 2.1.11. Режим совместимости интерфейса
После того, как Вы установите режим совместимости в значение «Такси. Разрешить Версия 8.2», в пользовательском интерфейсе будет доступно переключение режимов. Эта настройка дается в параметрах конфигурации: Главное меню – Сервис – Параметры (см рис. 2.1.12).
Рис. 2.1.12. Путь к настройкам параметров в приложении «1С: Предприятие»
В открывшейся форме настроек параметров пользователю будет доступна возможность переключения режима внешнего вида (рис. 2.1.13).
Рис. 2.1.13. Настройка режима внешнего вида приложения
Как выглядит режим внешнего вида «такси», Вы уже знаете (см. рис. 1.2.6). А на рисунках 1.2.14 и 1.2.15 можно увидеть, как выглядит режим внешнего вида «Формы в закладках» и «Формы в отдельных окнах».
Рис. 2.1.14. Режим внешнего вида «Формы в закладках»
Рис. 2.1.15. Режим внешнего вида «Формы в отдельных окнах»
Как видите из рисунков 2.1.6, 2.1.14 и 2.1.15, различия этих режимов существенные. Хотя самое сильное различие в режиме «Такси». Со всеми этими режимами мы ознакомимся в следующих главах этой части нашего курса.
В этой главе мы разобрали два вида приложений 1С — это обычное приложение и управляемое. Развитие технологий заставляет фирму 1С перестраивать работу своей платформы, поэтому на передний план вышла технология управляемого приложения, которая является более гибкой и совершенной в плане адаптации к новым требованиям рынка. Мы узнали, что управляемое приложение может работать в трех режимах: «Такси», «формы в закладках» и «формы в отдельных окнах». В следующих главах этой части мы разберем каждый из них.
Глава 3. Внешние виды управляемого приложения «В закладках» и «В отдельных окнах»
Глава 4. Внешний вид управляемого приложения «Такси»
Легкое и быстрое освоение программирования в 1С с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Уникальная авторская методика!
Иногда кажется, что изучить язык программирование в 1С сложно и трудно. В действительности программировать в 1С — легко. Помогут Вам легко и быстро освоить программирование в 1С мои книги: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»
Книга «Основы разработки в 1С: Такси»
Эта книга подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 15% — 48PVXHeYu
Книга «Программировать в 1С за 11 шагов»
Изучите программирование в 1С с помощью моей книги «Программировать в 1С за 11 шагов»
- Без сложных технических терминов.
- Более 700 страниц практического материала.
- Каждое задание сопровождается рисунком (скриншот).
- Сборник задач для домашней проработки.
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009