Новая 1С


Сравнительно недавно – около года назад вышла новая 1С, которая включает в себя тонкий клиент 1С (еще его называют управляемый клиент 1С) и веб клиент 1С. Оба они сильно отличаются от привычного всем толстого клиента 1С. Их отличия весьма значительны, причем не столько для пользователя, как для программиста.

Дело в том, что был скорректирован сам принцип работы клиентов 1С и программирования на языке 1С. Полностью изменилась разработка интерфейса (формы, меню), большие изменения в самой организации кода из-за клиент серверного взаимодействия.

Изменения в новой 1С настолько непривычны, что для программиста переход на тонкого клиента в чем то подобен переходу с версии 1С 7.7 на 8.

С другой стороны, пройти мимо изучения новой 1С невозможно. Все основные конфигурации в ближайшее время будут выпущены только на новой платформе 1С. Счастливчики, работающие с УТ (управление торговлей 1С) уже радуются – версия УТ редакции 11 для тонкого клиента вышла почти одновременно с выходом тонкого клиента.

Познакомимся с основными особенностями новой 1С, а именно тонкого клиента 1С.

 

Различия архитектуры новой 1С

Общую информацию о том что такое «клиент 1С» и какие они бывают – можно посмотреть здесь.

Корни отличий нового тонкого клиента 1С от привычного толстого клиента 1С лежат в смене архитектуры. Если Вы понимаете ее принципы, то все остальные изменения являются логичными выводами.

Как работает файловый вариант старой 1С

Толстый клиент является классической программой, которая выполняется на том компьютере, на котором ее запустили. В процесс выполнения клиента 1С входит:

  • Движок базы данных (запрос и запись данных)
  • Выполнение программ на языке 1С (то есть обработка данных и расчеты)
  • Работа пользователя (то есть генерация форм, работа с курсором и т.п.).

Мы понимаем, чтобы обработать данные, их необходимо получить из базы данных. Поэтому нагрузка на сеть велика. Данные обрабатываются на компьютере пользователя, поэтому нагрузка на процессор и память тоже велики.

Как работает клиент серверный вариант старой 1С

Несколько другая ситуация получается когда используется клиент серверный вариант толстого клиента 1С. В этом случае запрос данных выполняет сервер 1С. На компьютере пользователя или на сервере выполняется программа на встроенном языке 1С (т.е. обработка данных) — зависит от программиста. Если код выделен в модуль помеченный для выполнения на сервере – то на сервере, иначе (большинство случаев) на компьютере пользователя.

Таким образом логика самого устройства толстого клиента предопределяет большие нагрузки на компьютер пользователя. Мы не будем обсуждать здесь хорошо это или плохо, но это так.

Как работает новая 1С

Чем же отличается новая 1С — тонкий клиент 1С? Тонкий клиент 1С фактически является оболочкой для пользователя, которая умеет только генерировать формы и передавать на сервер команды пользователя. То есть чистая клиент серверная архитектура.

В новой 1С никакое обращение к базам данных или обработка данных не производится на компьютере пользователя. С другой стороны при большом количестве пользователей — нагрузка на сервер повышается значительно.

Чтобы не надеяться на программистов, код на языке 1С «физически» распределен на клиентский и серверный. В первую очередь это выражается в невозможности обратиться ко многим привычным вещам (например справочникам, документам) на клиенте вообще. Во вторую – прямое разделение всех функций на клиентские и серверные (каждая функция и процедура помечается директивой).

Как новая 1С работает с сетью

Как Вы понимаете, в связи с различиями в архитектуре, изменилась структура пересылаемых по сети данных. Если раньше клиент 1С мог запросить у сервера полтора гигабайта данных для обработки (программист так написал), то теперь в любом случае новая 1С между клиентом и сервером передает только те данные, которые являются видимыми у пользователя на экране.

В связи с тем, что данных стало значительно меньше и они стали стандартизированными, появилась возможность использовать не только в локальной сети (TCP/IP), но и через интернет.

В этом случае сервер 1С работает не напрямую с клиентом 1С, а через посредника — веб сервер (Apache/Microsoft IIS). Веб сервер работает с клиентом естественно по HTTP, с использованием стандартного кеширования запросов. Обратите внимание, имеется ввиду не только веб клиент 1С, но и тонкий клиент 1С. Оба они могут быть подключены к веб серверу через интернет!

 

Клиент-серверная разработка

Итак, раньше программист мог определить где будет выполняться программа на языке 1С методом создания общего модуля с указанием в его свойствах, что он будет выполняться на сервере 1С.

Теперь в новой 1С каждый модуль выполняется и на клиенте и на сервере. Например – у Вас есть модуль формы. Он выполняется на клиенте (обработка нажатий кнопок и т.п.). Вам нужно добавить кнопку, при нажатии на которую нужно что-либо посмотреть в базе данных.

В этом случае Вы пишите серверную функцию, которая запрашивает данные из базы данных и возвращает их. Эта функция будет отмечена директивой &НаСервере. Дополнительно Вы пишите клиентскую функцию, которая обрабатывает нажатие кнопки и вызывает серверную функцию, чтобы запросить данные (клиентские функции могут вызывать серверные, но не наоборот). Эта функция будет отмечена директивой &НаКлиенте.

Таким образом все функции модуля формы будут отмечены директивами &НаКлиенте или &НаСервере (если функция не отмечена директивой, то по умолчанию она – серверная). Значит часть модуля будет выполнена на компьютере пользователя (клиенте), а часть на сервере.

Необходимо помнить, что каждый один раз вызова серверной функции из клиентской (т.е. переход выполнения с клиента на сервер) является большой временной затратой. Поэтому если написать вызов серверной функции с клиента в цикле – количество времени выполнения сильно возрастет за счет только постоянного вызова сервера (если цикл повторяется много раз).

Для работы на сервере с данными введенными пользователем на форме можно использовать новые функции ДанныеФормыВЗначение() и ЗначениеВДанныеФормы().

 

Новый интерфейс

Отличия интерфейса с точки зрения пользователя в новой 1С видны невооруженным взглядом. Новый интерфейс представляет собой рабочий стол, разделенный закладками. Вместо меню есть список команд, организованный слева.

Внутреннее устройство нового интерфейса также отличается. Раньше использовался объект 1С Интерфейсы (ветка в окне конфигурации Общие/Интерфейсы). Здесь задавались меню, с помощью которых пользователь выбирает нужные ему справочники и документы.

Теперь для построения интерфейса используется объект 1С подсистемы (ветка конфигурации Общие/Подсистемы). Каждый справочник, документ, отчет включается в одну или несколько подсистем. В свойствах подсистемы указывается галочка – участвует в формировании интерфейса. Также для каждого справочника и документа указывается разрешения на доступ пользователей к нему (ветка конфигурации Общие/Роли). На базе этих постоянных настроек (включение в подсистему и доступность по ролям) интерфейс автоматически «собирается» в рабочий стол.

Чтобы сделать интерфейс зависимым от динамических условий, используют функциональные опции (ветка конфигурации Общие/Функциональные опции). Вы создаете функциональную опцию, которая в момент выполнения будет иметь положительное или отрицательное значение (например, ИспользоватьВКонфигурацииШтрихкоды). В справочнике или документе Вы указываете зависимость от этой функциональной опции (т.е. «включить в интерфейс» по ее положительному значению).

Минусом такой системы является крайняя запутанность клубка, когда какой-нибудь пункт меню не отображается по неизвестной причине. Распутывание конкретной причины является интересной головоломкой.

 

Новые формы 1С 8.2

Одно из самых больших отличий новой 1С являются новые управляемые формы. В отличие от толстого клиента (где формы просто рисовались мышкой), управляемые формы 1С генерит автоматически на основании настроек.

Часть настроек формы переместилась прямо в реквизиты объектов (справочников, документов). Уже в свойствах реквизита Вы можете указать такие вещи как режим пароля, проверка значения и т.п.

Вы перетаскиваете на форму реквизиты, группируете вертикально или горизонтально с помощью групп (как в СКД), указываете в свойствах настройки и это все!


Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (20 голосов, среднее: 4,65 из 5)
Загрузка...

Добавить комментарий