8.2 управляемое приложение. Управляемое приложение. Режим обычного приложения

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

ПолучитьФорму() . Открыть()

Это самый медленный метод открытия форм. Тем не менее, он позволяет программно обработать форму перед открытием. Для обработки код нужно немного изменить:

Форма= ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаДокумента" ) ;
//Тут выполняем действия с формой
Форма. Открыть() ;

Надо учитывать, что при получении формы будет выполняться еще процедура события ПриСозданииНаСервере.

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

1. Как открыть форму объекта в управляемом приложении, если есть ссылка на него.

В этом случае все предельно просто.

СпрСсылка= Справочники. Номенклатура. НайтиПоКоду("000000001" ) ;
ОткрытьЗначение(СпрСсылка) ;

2. Как открыть форму выбора и получить потом выбранное значение.

Для этого существует функция ВвестиЗначение(). У функции 3 параметра:

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

В результате выполнения функции откроется форма выбора по умолчанию для объекта указанного типа.

Перем Значение;
Массив= новый массив;
Массив. Добавить(Тип("СправочникСсылка.Номенклатура" ) ) ;
Массив. Добавить(Тип("СправочникСсылка.Контрагенты" ) ) ;

ОписаниеТипов= новый ОписаниеТипов(Массив) ;

Рез= ВвестиЗначение(Значение, "Подсказка" , ОписаниеТипов) ;

Предыдущие способы позволяли открывать только формы, установленные для объектов по умолчанию (форму объекта или форму выбора). Если нужно открыть произвольную форму, то можно воспользоваться функцией ОткрытьФорму().

Эта функция имеет довольно много параметров. Рассмотрим некоторые из них:

  • Имя формы — тут можно выбрать либо одну из стандартных форм объекта, например, ФормаВыбора или ФормаСписка . Или конкретную, созданную разработчиками форму.
  • Параметры — позволяет передать в форму в виде структуры некоторые параметры перед ее открытием, тем самым определив выводимые данные. Параметры могут представлять собой любые данные, которые можно передавать с клиента на сервер. Переданные при открытии формы параметры можно обработать в процедуре ПриСозданииНаСервере() у открываемой формы.
  • Режим открытия формы — имеет 3 варианта: независимый, блокировать весь интерфейс, блокировать форму владельца.

Рассмотрим, как применяется функция ОткрытьФорму() в различных ситуациях.

3. Как открыть форму существующего объекта

У каждой формы есть один ключевой реквизит. Он выделен жирным в списке реквизитов формы и обычно называется Объект у форм элементов справочников, документов. У других объектов название может быть другим. Для открытия формы существующего объекта нужно передать в открываемую форму параметр Ключ со значением в виде ссылки на объект.

&НаКлиенте
Процедура Команда1 (Команда)
Параметр= новый структура;
Параметр. Вставить("Ключ" , НайтиС() ) ;
ОткрытьФорму(, Параметр) ;
КонецПроцедуры

&НаСервере
Функция НайтиС() ;
Возврат Справочники. Контрагенты. НайтиПоРеквизиту ("ИНН" , "745107734623" )
КонецФункции

4. Как открыть форму нового объекта

Тут подойдет просто функция ОткрытьФорму() без всяких параметров.

&НаКлиенте
Процедура Команда1 (Команда)
ОткрытьФорму("Справочник.Контрагенты.ФормаОбъекта" ) ;
КонецПроцедуры

5. Как открыть форму нового объекта и заполнить ее на основании чего-либо

Нужно передать параметр Основание , значением которого будет являться ссылка на объект-основание заполнения. При этом будет запущена процедура ОбработкаЗаполнения().

&НаКлиенте
Процедура Команда1 (Команда)
Параметр= новый структура;
Параметр. Вставить("Основание" , СсылкаНаСчетПокупателю) ;
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта" , Параметр) ;
КонецПроцедуры

В этом примере будет создан документ Реализация товаров и услуг и заполнен на основании счета на оплату покупателю, ссылка на который была передана.

6. Как открыть форму и задать на ней отбор

Отбор на формах 1С может быть простым и сложным. Простой отбор предусматривает выражения типа Организация = ООО «Рога и копыта». Сложный отбор предполагает и другие типы сравнения, например, В списке . В данной статье рассмотрим организацию простого отбора, а сложному будет посвящена отдельная статья.

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

Например, откроем форму списка справочника НомераГТД и сделаем там отбор по владельцу — элементу справочника Номенклатура .

&НаКлиенте
Процедура Команда1 (Команда)
Параметр= новый структура;

Отбор= новый Структура;
Отбор. Вставить("Владелец" , СсылкаНаНоменклатуру) ;

Параметр. Вставить("Отбор" , Отбор) ;

ОткрытьФорму("Справочник.НомераГТД.ФормаСписка" , Параметр) ;
КонецПроцедуры

7. Как открыть форму записи регистра сведений

Для этого понадобится ключ записи регистра сведений.

Ключ записи — это значения всех измерений и период (если регистр периодический). То есть ключ записи — это параметры, по которым можно однозначно идентифицировать запись.

Алгоритм открытия следующий:

  1. Заносим в структуру данные ключа записи с необходимыми значениями.
  2. Помещаем полученную структуру в массив.
  3. Из массива создаем ключ записи.
  4. Передаем в открываемую форму параметр Ключ с ключом записи из п.3 в качестве значения.

&НаКлиенте
Процедура Команда1 (Команда)
Параметр= новый структура;

ПараметрыКлюча= новый Структура;
ПараметрыКлюча. Вставить("Номенклатура" , СсылкаНаНоменклатуру) ;
ПараметрыКлюча. Вставить("ТипЦены" , СсылкаНаТипЦен) ;
ПараметрыКлюча. Вставить("Период" , Дата) ;

МассивКлюча = Новый Массив;
МассивКлюча. Добавить(ПараметрыКлюча) ;

КлючЗаписи = Новый("РегистрСведенийКлючЗаписи.ЦеныНоменклатуры" , МассивКлюча) ;

Параметр. Вставить("Ключ" , КлючЗаписи) ;

ОткрытьФорму("РегистрСведений.ЦеныНоменклатуры.ФормаЗаписи" , Параметр) ;
КонецПроцедуры

Каждый администратор 1С:Предприятия знает, что задача разделения прав пользователей и соответствующего изменения рабочего интерфейса является одной из основных при внедрении учетной системы или появления в ней новых пользователей. От того, насколько качественно будет выполнена данная задача зависит эффективность работы и безопасность данных. Поэтому сегодня мы поговорим об особенностях настройки пользовательских прав и интерфейса в управляемом приложении.

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

В идеале каждый сотрудник, должен видеть только те элементы интерфейса, которые нужны ему для выполнения своих непосредственных обязанностей. Тогда и работать будет проще, и соблазнов полазить там, где не надо не возникнет. Причем выполнять подобные настройки есть смысл и тогда, когда какие-то подсистемы просто не используются или ограничение доступа к ним не требуется. Это сделает интерфейс более простым и понятным, а, следовательно, работать пользователю будет проще и комфортнее.

Если мы вернемся немного в прошлое, то можем вспомнить, что в обычных конфигурациях Роли и Интерфейсы были частью конфигурации и для их тонкой настройки требовалось включить возможность внесения изменений, а в базовых версиях было невозможным вообще.

Недостатки данного подхода очевидны: это и усложнение обслуживания информационных баз, и возможные конфликты при последующих обновлениях, когда измененные объекты конфигурации требуют изменения прав доступа.

В управляемом приложении настройки прав и интерфейсов были наконец вынесены в пользовательский режим и настраиваются непосредственно из интерфейса программы. Права пользователя назначаются на основе его членства в группах доступа. Перейдем в Администрирование - Настройки пользователей и прав - Группы доступа - Профили групп доступа , где мы увидим уже предустановленные профили для основных групп доступа.

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

А вот если мы попытаемся найти настройки интерфейсов, то нас постигнет фиаско. В управляемом приложении интерфейс рабочей области формируется автоматически, на основе прав доступа. Для примера сравним интерфейсы Панели разделов Администратора и Менеджера по продажам:

В общем - идея здравая, есть права доступа к объекту - показываем его в интерфейсе, нет - скрываем. Это гораздо лучше, чем выскакивающие в обычном приложении сообщения о нарушении прав доступа при несоответствии последних с назначенным интерфейсом. Если вы добавите группе доступа прав или, наоборот, уберете, то связанные с ними элементы интерфейса самостоятельно появятся или исчезнут. Удобно? Да.

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

Если мы заглянем в Администрирование - Настройки пользователей и прав - Персональные настройки пользователей - Настройки пользователей то увидим там перечень всех объектов, настройки которых были изменены пользователем, однако никак не сможем их изменить.

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

Чтобы не быть голословными разберем практический пример. В рамках подготовки к переходу на онлайн-кассы было решено автоматизировать кассовые места небольшой сети стоматологических клиник. Основу автоматизации клиник составляло отраслевое ПО не на базе 1С и не предусматривающее возможность подключения фискального регистратора, поэтому было принято решение для автоматизации кассовых мест использовать конфигурацию Бухгалтерия предприятия 3.0, которая содержит все необходимые функции.

Здесь мы столкнулись с двумя сложностями, хотя если посмотреть повнимательнее, то обнаружится, что это две стороны одной и той же медали. Если коротко: персонал никогда до этого не работал с 1С и поэтому требовалось создать максимально простую в освоении рабочую среду, при этом оградив информационную базу от возможного неквалифицированного воздействия персонала. Управляемое приложение позволяет достаточно просто совместить приятное с полезным, сделав так, чтобы и пользователя ограничить, и в тоже время позволить ему комфортно работать, не замечая ограничений.

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

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

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

Создав профиль назначаем группу доступа нужным пользователям и запускаем программу под одним из них. В зависимости от назначенных прав вы увидите автоматически сформированный интерфейс.

В принципе уже довольно неплохо, но в нашем случае все только начинается. К нашему удивлению очень многие пользователи и администраторы до сих пор не имеют понятия как настраивается интерфейс "Такси" продолжая жаловаться на его "неудобства".

Перейдем в Главное меню - Вид , где увидим целый ряд настроек, касающихся интерфейса.

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

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

Можно даже сравнить, как было и как стало:

И в заключение выполним настройку панелей. Так как разделов у нас немного, то панель разделов имеет смысл переместить вверх, а панель открытых вниз, тем самым расширив рабочее пространство по горизонтали, что актуально для мониторов с небольшой диагональю или формата 4:3.

После завершения следует еще раз проверить все настройки, лучше всего это сделать, имитируя реальные действия кассира, что сразу поможет оценить удобство работы с интерфейсом. В нашем случае получилось простое и удобное рабочее место кассира, во всяком случае проблем с его освоением персоналом не возникло:

Теперь снова войдем в программу под администратором и перейдем в Администрирование - Настройки пользователей и прав - Персональные настройки пользователей - Копирование настроек . Наша задача распространить сделанные нами изменения на оставшихся пользователей группы Кассиры. Сама операция достаточно проста: выбираем пользователя, настройки которого мы копируем, указываем кому и выбираем что именно.

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

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

  • Теги:

Please enable JavaScript to view the

«1С: Предприятие 8. Управляемое приложение». Новые возможности

Никита Зайцев

Мы продолжаем обзор возможностей и архитектурных концепций технологической платформы нового поколения – «1С: Предприятие 8. Управляемое приложение». В статье будут рассмотрены различные виды клиентского приложения, новый принцип использования подсистем конфигурации, механизмы функциональных опций и управляемых отчетов и некоторые другие новшества «Управляемого приложения».

Виды клиентского приложения

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

Построение распределенной информационной базы. Каждая группа удаленных пользователей работает со своей локальной информационной базой, производится регулярная синхронизация данных между главной информационной базой и удаленными базами. Преимущество этой технологии – удаленным пользователям вообще не требуется прямой доступ в «главную» информационную базу. Но есть и недостаток – изменения данных, сделанные в одном из узлов распределенной информационной базы, передаются в соседние узлы не сразу, а через какое-то время.

Работа через Web-интерфейс (строится на базе платформы «1С: Предприятие 8.Web-расширение»). Преимущества – возможность работы на низкоскоростных каналах связи, не требуется установка «1С: Предприятия 8» на компьютер пользователя. Недостатки – существенное функциональное обеднение пользовательского интерфейса по сравнению с «толстым клиентом», необходимость привлекать программистов, владеющих технологией ASP.NET, для разработки Web-приложения.

Удаленный доступ к информационной базе можно организовать и при помощи внесистемных средств:

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

Работа через VPN-соединение. Преимущество – пользователь работает с удаленной информационной базой в обычном режиме, как будто она расположена в его местной локальной сети. Недостаток – требуется безотказный высокоскоростной канал связи, расходуются большие объемы трафика.

Клиент-серверное взаимодействие

«Управляемое приложение» призвано максимально упростить и минимизировать затраты на организацию удаленной работы пользователей с информационными базами – теперь пользователи могут работать с информационной базой в режиме онлайн как внутри локальной сети предприятия, так и через Интернет.

В «Управляемом приложении» можно использовать три разных вида клиентского приложения.

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

«Тонкий клиент». Абсолютно новое приложение, включенное в состав «1С: Предприятия». Функционирует только в управляемом режиме, предназначено для работы пользователей с информационными базами через Интернет (разумеется, может работать и по локальной сети предприятия). Для «тонкого клиента» предусмотрен режим «низкая скорость соединения», при работе в нем платформа оптимизирует процессы взаимодействия между клиентским приложением и сервером под низкоскоростные каналы связи. «Тонкий клиент» требует значительно меньше системных ресурсов, чем «толстый клиент», но функционально ограничен – работает только с управляемыми формами конфигурации, недоступен режим Конфигуратора.

Web-клиент. В этом случае на компьютере пользователя вообще не требуется устанавливать «1С: Предприятие 8» или какое-то дополнительное ПО. Работа с информационными базами «1С: Предприятия 8» производится через обычный Интернет-браузер (MS Internet Explorer или Mozilla FireFox). Функциональные ограничения у Web-клиента те же, что и у «тонкого клиента»: работа только с управляемыми формами, не поддерживается режим Конфигуратора. Декларируется практически полная (за исключением нескольких мелких ограничений) идентичность внешнего вида и поведения системы при работе с «тонким» и Web-клиентом. К сожалению, на момент подготовки статьи технология Web-клиента еще не была опубликована фирмой «1С», поэтому приведенная информация об этой технологии базируется только на сопроводительной документации «Управляемого приложения».

Командный интерфейс на базе подсистем

Чтобы не запутаться и четко понимать, какие способы подключения к информационным базам и какие модели интерфейса поддерживаются разными типами клиентского приложения «1С: Предприятия 8», информацию лучше всего представить в виде таблицы (см. табл. 1 и 2).

При работе с «Управляемым приложением» организация онлайнового доступа к информационной базе «1С: Предприятия 8» в основном сводится к настройке Web-сервера. Для каждой информационной базы дополнительно потребуется:

Создать файл-дескриптор информационной базы (две строчки XML);

Настроить на стороне Web-сервера (MS IIS или Apache) приложение (виртуальный каталог), соответствующее информационной базе.

Эти операции выполняются один раз для каждой информационной базы, с которой предполагается удаленная работа. Разумеется, чтобы удаленные пользователи могли работать с информационной базой в режиме «тонкого клиента» или Web-клиента, конфигурация должна быть разработана и (или) модифицирована под новую интерфейсную модель «Управляемого приложения» и должна содержать управляемые формы тех объектов, с которыми будут работать удаленные пользователи.

Отметим, что с появлением технологии Web-клиента «1С: Предприятие 8» обретает полноценную многоплатформность. Теперь все элементы информационной системы могут работать под управлением как Windows, так и Linux (см. табл. 3).

Единственное рабочее место, где обязательно должна быть ОС Windows, – это рабочее место администратора информационной системы, где требуется запускать «1С: Предприятие 8» в режиме Конфигуратора.

Настройка видимости команд по умолчанию

Следует также отметить изменения в клиент-серверной архитектуре «1С: Предприятия 8», сделанные в связи с появлением новых типов клиентского приложения. В предыдущих версиях платформы единственной формой взаимодействия клиента и сервера было соединение, т. е. жесткая связь клиентского приложения с одним из рабочих процессов кластера серверов. Эта связь устанавливается при подключении клиента к информационной базе и сохраняется до тех пор, пока клиентское приложение не будет закрыто.

Настройка интерфейса пользователем

В «Управляемом приложении» при работе с «тонким клиентом» или Web-клиентом применяется более гибкая схема клиент-серверного взаимодействия: сеанс работы пользователя. Каждое обращение клиентского приложения к серверу является обособленным и обрабатывается кластером серверов независимо от предыдущих обращений. Такая схема позволяет:

Повысить «живучесть» системы. Если рабочий процесс кластера серверов по каким-то причинам перестает быть доступен, клиентские приложения переключаются на другие, доступные, рабочие процессы (в предыдущих версиях «падение» рабочего процесса влекло за собой разрыв всех соединений и «падение» всех обслуживаемых процессом клиентских приложений).

Повысить производительность системы благодаря динамическому распределению нагрузки на рабочие процессы. В предыдущих версиях нагрузка распределялась только в момент первого обращения клиента к серверу. В «Управляемом приложении» менеджер кластера ведет постоянный мониторинг загруженности рабочих процессов и распределяет нагрузку между ними. Если рабочий процесс или рабочий сервер, который обслуживал клиентское приложение, вдруг оказался перегружен, при следующем обращении к серверу клиент будет переключен на менее нагруженный процесс или сервер.

Подсистемы конфигурации

В предыдущих версиях «1С: Предприятия 8» подсистемы конфигурации не несли никакой функциональной нагрузки. Конечно, нельзя сказать, что до появления «Управляемого приложения» механизм подсистем был чисто декоративным – разработчики конфигураций и специалисты, занятые на поддержке информационных баз, использовали его для решения самых разных технологических задач. Но на поведение конфигурации в пользовательском режиме подсистемы не оказывали ровно никакого влияния. Более того, в конфигурации вообще могло быть не определено ни одной подсистемы, и на ее работе это никак не сказывалось.

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

На базе корневых подсистем конфигурации (расположенных на первом уровне иерархии) создаются разделы командного интерфейса.

На основании принадлежности к соответствующей корневой подсистеме и подчиненным ей подсистемам тех или иных объектов конфигурации создается набор команд соответствующего раздела.

Для каждой команды из набора определяется, доступна ли она текущему пользователю в принципе. Решение принимается в два этапа: вначале из набора удаляются те команды, на которые у пользователя нет прав доступа, а затем команды, которые отключены посредством функциональных опций.

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

Таким образом, при переходе на «Управляемое приложение» подсистемы конфигурации из «служебного» объекта превращаются в ключевой, а задача грамотного проектирования структуры подсистем и распределения объектов конфигурации между ними становится для разработчика первостепенной.

Механизм функциональных опций

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

Воздействие функциональных опций на интерфейс

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

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

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

Учет может вестись по-разному для местной и экспортной продукции, для местных и зарубежных поставщиков.

В зависимости от особенностей конкретного внедрения одни и те же объекты конфигурации должны выглядеть и действовать по-разному, например:

Если используются сканеры штрихкода, в формах документов определенных видов должна присутствовать команда для управления сканером.

Если ведется учет в разрезе складов, в соответствующих формах (товарные документы, отчеты) должны отображаться реквизиты и команды, связанные со складом.

Если предприятие работает с зарубежными поставщиками, в соответствующих формах (расчетные документы, отчеты) должны отображаться реквизиты и команды, связанные с валютным учетом (валюта, курс, «пересчитать по текущему курсу» и т. д.).

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

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

Управляемые отчеты Форма управляемого отчета

Механизм отчетов «Управляемого приложения» сохранил «фамильные черты» механизма отчетов предыдущей версии «1С: Предприятия 8»:

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

В пользовательском режиме каждый пользователь при желании может изменить некоторые настройки схемы компоновки, создать и сохранить свои личные «варианты отчета».

Настройка варианта отчета

Управляемые отчеты (так называются отчеты, реализованные по технологии «Управляемого приложения») имеют ряд важных отличий от своих предшественников.

Формирование отчета производится только на стороне сервера, клиентскому приложению передаются лишь готовые результаты. В предыдущих версиях «1С: Предприятия 8» отчет можно было формировать как на стороне сервера, так и на стороне клиента.

Существенно переработан механизм управления настройками отчета. Теперь этот процесс является иерархическим и состоит из вариантов отчета, настроек варианта отчета и пользовательских настроек отчета.

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

Пользовательская настройка отчета

Остановимся более подробно на механизме управления настройками отчета. На первый взгляд он может показаться чересчур сложным, но на самом деле все очень просто и удобно. Управление настройками отчета производится на нескольких уровнях:

Уровень разработчика конфигурации. Разработчик конфигурации создает схему компоновки данных и определяет варианты отчета (вариант отчета представляет собой совокупность настроек схемы компоновки данных). Например, для отчета «Анализ продаж» могут быть определены варианты «По периодам» (анализ объема продаж в разрезе периодов) и «По группам» (анализ объема продаж в разрезе номенклатурных групп). Разработчик конфигурации также определяет, какие элементы настройки будут доступны пользователю для изменения при работе с отчетом.

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

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

Разработка вариантов отчета

Удобство новой структуры настроек отчета по сравнению с предыдущими версиями «1С: Предприятия 8» заключается в том, что:

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

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

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

Многоуровневая настройка отчета

Если попробовать сформулировать преимущества управляемых отчетов перед «обычными» отчетами «1С: Предприятия 8» в трех словах, то этими словами будут: производительность, гибкость, удобство. Управляемые отчеты работают быстрее – все операции по формированию отчета выполняются на стороне сервера. Они предоставляют гораздо более гибкий механизм настройки благодаря разделению настроек на два уровня. И наконец, с управляемыми отчетами просто удобнее работать. А ведь отчеты, точнее, представленная в отчетах информация – это конечный продукт работы информационной системы, это результат, выдаваемый системой потребителю.

На этом мы заканчиваем обзор новшества «Управляемого приложения». Возможно, мы вернемся к этой теме после выпуска первого релиза. Разумеется, получить полноценное представление о возможностях нового поколения платформы можно, только подержав ее в руках и внимательно ознакомившись с документацией, – партнеры фирмы «1С» и зарегистрированные пользователи «1С: Предприятия 8» уже имеют такую возможность.

Новости. С 15 по 15

Компьютеры

Компания ASUS (http://asus.com.ru) объявила о выпуске персонального компьютера Eee Box. Изделие собрано в сверхкомпактном корпусе, Eee Box можно установить на крепление VESA. В системе реализованы средства скоростной загрузки и подключения к Интернету (ASUS Express Gate), имеется беспроводной адаптер WiFi 802.11n.

И Data Transfer Object к структуризации кода, управляемой формы в среде 1С 8.2.

Введение

Начнем с небольшого описания понятия «управляемая форма» и связанных концепций платформы 1С. Знатоки платформы могут пропустить этот раздел.

В 2008 году стала доступна новая версия платформы 1С: Предприятие 8.2 (далее Управляемое приложение), которая полностью меняет весь слой работы с интерфейсом. Сюда относится и командный интерфейс, и формы, и оконная система. При этом не только меняется модель разработки пользовательского интерфейса в конфигурации, но и предлагается новая архитектура разделения функциональности между клиентским приложением и сервером.
Управляемое приложение поддерживает следующие типы клиентов:

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

Все дальнейшие рассуждения будут о правой части иллюстрации, о том, как структурировать код модуля и какие принципы позволят реализовать эффективное клиент-серверное взаимодействие.

Обозначим проблему

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

Рассмотрим структуру кода (модуль формы) в нескольких формах одной типовой конфигурации и попробуем найти закономерности.
Под структурой будем понимать секции кода (чаще всего это блоки комментариев) выделенные разработчиком для группировки методов и директивы компиляции этих методов.
Пример 1:
Секция обработчиков событий Метод – наклиенте Метод – насервере Метод - наклиенте Секция служебных процедур и функций Вспомогательные функции управления вводом
Пример 2:
Служебные процедуры и функции Документы оплаты Ценности Обработчики событий
Пример 3:
Служебные процедуры на сервере Служебные процедуры на клиенте Служебные процедуры на сервере без контекста Обработчики событий шапки Обработчики событий команд
Пример 4:
Процедуры общего назначения Обработчики событий формы Процедуры подсистемы «контактная информация»
По сути, структура кода отсутствует, или мягче говоря, она аналогична тому, что было в формах 8.1:

  • Неинформативные слова «Общие, Служебные, Вспомогательные».
  • Робкие попытки разделить клиентские и серверные методы.
  • Часто методы группируются по интерфейсным элементам «Работа с табличной частью Товары, Контактной информацией».
  • Произвольное расположение методов и групп кода. Например, Обработчики событий могут быть в одной форме вверху, в другой внизу, в третьей вообще не выделены и т.д.
  • И не будем забывать, что это все в рамках одной конфигурации.
  • Да бывают конфигурации, в которых слова «Общие, Служебные, Вспомогательные» всегда находятся на одних и тех же местах но…
Зачем нужна структура кода?
  • Упрощение сопровождения.
  • Упрощение обучения.
  • Фиксация общих/важных/удачных принципов.
  • …ваш вариант
Почему существующий стандарт разработки от фирмы 1С не помогает?
Посмотрим опубликованные на дисках ИТС и в различных «Пособиях разработчика…» принципы, рекомендуемые при написании управляемой формы.
  • Минимизируйте число серверных вызовов.
  • Максимум вычислений на сервере.
  • Неконтекстные вызовы сервера быстрее контекстных.
  • Программируйте с учетом клиент-серверного взаимодействия.
  • и т.п.
Это лозунги, абсолютно верные, но как их реализовать? Как минимизировать число вызовов, что значит программировать в клиент-серверном режиме?

Шаблоны проектирования или мудрость поколений

Клиент-серверное взаимодействие используется в различных программных технологиях не один десяток лет. Ответ на обозначенные в предыдущем разделе вопросы давно известен и суммирован в двух базовых принципах.
  • Remote Facade (далее Интерфейс удаленного доступа)
  • Data Transfer Object (далее Объект переноса данных)
Слово Мартину Фаулеру , его описание данных принципов:
  • каждый объект, потенциально предназначенный для удаленного доступа, должен иметь интерфейс с низкой степенью детализации , что позволит максимально уменьшить количество вызовов, необходимых для выполнения определенной процедуры. … Вместо того, чтобы запрашивать счёт и все его пункты отдельно, надо считать и обновить все пункты счёта за одно обращение. Это влияет на всю структуру объекта.…Запомните: интерфейс удаленного доступа не содержит логики домена .
  • …если бы я был заботливой мамой, то обязательно сказал бы своему ребенку: «Никогда не пиши объекты переноса данных!» В большинстве случаев объекты переноса данных представляют собой не более чем раздутый набор полей … Ценность этого омерзительного монстра состоит исключительно в возможности передавать по сети несколько элементов информации за один вызов - прием, который имеет большое значение для распределенных систем.
Примеры шаблонов в платформе 1С
Прикладной программный интерфейс доступный разработчику при разработке управляемой формы, содержит много примеров данных принципов.
Например метод ОткрытьФорму(), типичный «огрубленный» интерфейс.
ПараметрыОткрытия = Новый Структура("Параметр1, Параметр2, Параметр3", Значение1, Значение2, Значение3); Форма = ОткрытьФорму(ИмяФормы, ПараметрыОткрытия);
Сравните с принятым в v8.1 стилем.
Форма = ПолучитьФорму(ИмяФормы); Форма.Параметр1 = Значение1; Форма.Параметр2 = Значение2; Форма.Открыть();

В контексте управляемой формы множество «Объектов переноса данных». Можно выделить системные и определяемые разработчиком .
Системные моделируют на клиенте прикладной объект, в виде одного или несколько элементов данных формы. Создать их вне привязки к реквизитам формы нельзя.

  • ДанныеФормыСтруктура
  • ДанныеФормыКоллекция
  • ДанныеФормыСтруктураСКоллекцией
  • ДанныеФормыДерево
Преобразование системных объектов переноса данных в прикладные типы и обратно выполняется методами:
  • ЗначениеВДанныеФормы()
  • ДанныеФормыВЗначение()
  • КопироватьДанныеФормы()
  • ЗначениеВРеквизитФормы()
  • РеквизитФормыВЗначение()
Часто явное преобразование используется при адаптации существующего решения. Методы могут ожидать (использовать особенности) входные параметры, например ТаблицаЗначений, а не ДанныеФормыКоллекция, или метод был определен в контексте прикладного объекта и стал недоступен для прямого вызова из формы.
Пример 1С v8.1:
// на клиенте в контексте формы ЗаполнитьКэшПользователей(ПодразделениеСсылка)
Пример 1С v8.2:
// на сервере в контексте формы ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); ОбработкаОбъект.ЗаполнитьКэшПользователей(ПодразделениеСсылка); ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект");

Объекты переноса данных, структура которых определяется разработчиком это небольшое подмножество типов доступных и на клиенте и на сервере. Наиболее часто в качестве параметров и результатов методов «огрубленного» интерфейса используются:

  • Примитивные типы (строка, число, булево)
  • Структура
  • Соответствие
  • Массив
  • Ссылки на прикладные объекты (уникальный идентификатор и текстовое представление)
Пример: метод принимает список заказов для изменения статуса и возвращает клиенту описание ошибок.
&НаСервереБезКонтекста Функция СерверИзменитьСтатусЗаказов(Заказы, НовыйСтатус) Ошибки = Новый Соответствие(); // [заказ][описание ошибки] Для Каждого Заказ Из Заказы Цикл НачатьТранзакцию(); Попытка ДокОб = Заказ.ПолучитьОбъект(); …. другие действия, возможно не только с заказом… Исключение ОтменитьТранзакцию(); Ошибки.Вставить(Заказ, ОписаниеОшибки()); КонецПопытки; КонецЦикла; Возврат Ошибки; КонецФункции // СерверИзменитьСтатусЗаказов()

Структурируем код

Главные цели, которые должен отражать модуль управляемой формы и подходы к решению.
  • Четкое разделение клиентского и серверного кода. Не будем забывать, в момент выполнения это два взаимодействующих процесса, в каждом из которых существенно отличается доступный функционал.
  • Четкое выделение интерфейса удаленного доступа, какие методы сервера можно вызывать с клиента, а какие нельзя? Названия методов удаленного интерфейса начинаются с префикса «Сервер». Это позволяет, читая код сразу видеть переход управления на сервер, и упрощает использование контекстной подсказки. Отметим, что официальная рекомендация (ИТС) предлагает именовать методы с постфиксами, например, так ИзменитьСтатусЗаказовНаСервере(). Однако повторим не все серверные методы можно вызывать с клиента, и поэтому более важна логическая доступность, а не место компиляции. Поэтому префиксом «Сервер» отмечаем только методы доступные для клиента, метод-пример назовем СерверИзменитьСтатусЗаказов().
  • Удобочитаемость. Дело вкуса, принимаем порядок, когда модуль начинается с процедур создания формы на сервере и методов удаленного доступа.
  • Сопровождаемость. Должно быть однозначно определено место для добавления нового кода. Важный момент, автоматически создаваемые конфигуратором заготовки методов добавляются в конец модуля. Т.к чаще всего автоматически создаются обработчики событий элементов формы, то соответствующий блок расположен последним, чтобы не перетаскивать каждый обработчик в другое место модуля.
Ниже приведена базовая структура модуля, реализующая перечисленные цели.
  • Графический вариант – наглядно показывает основной поток выполнения.
  • Текстовый вариант - это пример оформления шаблона для быстрой вставки структуры в новый модуль формы.

//////////////////////////////////////////////////////////////////////////////// // <(c) Автор="" Дата=""/> // <Описание> // // //////////////////////////////////////////////////////////////////////////////// // ПЕРЕМЕННЫЕ МОДУЛЯ //////////////////////////////////////////////////////////////////////////////// // НА СЕРВЕРЕ //******* СОБЫТИЯ НА СЕРВЕРЕ ******* &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //Вставить содержимое обработчика КонецПроцедуры //******* ИНТЕРФЕЙС УДАЛЕННОГО ДОСТУПА ******* //******* БИЗНЕС-ЛОГИКА НА СЕРВЕРЕ ******* //////////////////////////////////////////////////////////////////////////////// // ОБЩИЕ МЕТОДЫ КЛИЕНТА И СЕРВЕРА //////////////////////////////////////////////////////////////////////////////// // НА КЛИЕНТЕ //******* БИЗНЕС-ЛОГИКА НА КЛИЕНТЕ ******* //******* КОМАНДЫ ******* //******* СОБЫТИЯ НА КЛИЕНТЕ ******* //////////////////////////////////////////////////////////////////////////////// // ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ

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

1С:Предприятие - программный продукт компании «1С», предназначенный для автоматизации самых разных участков экономической деятельности предприятия. Эта система включает в себя решения для комплексной автоматизации производственных, торговых и сервисных предприятий, продукты для управления финансами холдингов и отдельных предприятий, ведения бухгалтерского учета, расчета зарплаты и управления кадрами, для учета в бюджетных учреждениях, разнообразные отраслевые и специализированные решения.

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

Платформа «1С:Предприятие» – это предметно-ориентированная среда разработки (также и среда работы с базой) для решения задач, связанных с автоматизацией предприятий.

Конфигурация 1C – прикладное решение, созданное с помощью 1С платформы, которое содержит описание структуры таблиц базы данных и алгоритмы работы с этими данными.

Интеграция системы СБИС поддерживается практически со всеми версиями технологической платформы 1С (за исключением самых ранних): 7.7, 8.1, 8.2 и 8.3. Основной особенностью системы 1С:Предприятие является ее конфигурируемость. Каждая конфигурация ориентирована на определенные типы предприятий и классы решаемых задач («Бухгалтерия предприятия», «Управление производственным предприятием», «Управление торговлей» и др.).

Конфигурации часто делятся на две группы - «типовые» и «нетиповые». «Типовая» конфигурация - это тиражное решение, которое распространяется «в коробке». Для типовых конфигураций интеграция со СБИС обычно происходит без каких-либо дополнительных настроек.

Также встречаются конфигурации, изменённые под нужды компании, которые в силу внесённых в них изменений уже не являются типовыми, однако очень похожи. В зависимости от внесенных изменений интеграция со СБИС может потребовать дополнительных настроек.

«Самописная» конфигурация, или конфигурация «с нуля» - конфигурация, разработанная независимо от фирмы 1С, обычно под нужды конкретного заказчика. Для таких конфигураций обычно требуются значительные доработки для интеграции со СБИС.

Клиент может использовать сразу несколько прикладных решений и соответственно работать с несколькими базами данных. Выбор базы данных происходит при запуске программы.

Существует два основных режима запуска 1С - режим предприятия и режим конфигуратора (в этом режиме также имеется режим отладки).

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

В режиме конфигуратора производится администрирование и изменение конфигурации базы данных. Именно в этом режиме пишется исходный код программы, разрабатываются новые формы, создаются новые отчеты, справочники, документы и т.д.

Режим Конфигуратор

В режиме конфигуратора мы можем ознакомиться с конфигурацией, которая описывает структуру хранения данных в базе. Для открытия конфигурации в меню выбираем в меню «Конфигурация/Открыть конфигурацию».

По значку рядом с именем конфигурации мы можем понять, является ли она типовой (неизмененной):

Есть три варианта:

  • Объект не редактируется – типовая конфигурация, в которую нельзя вносить какие-либо изменения.
  • Объект редактируется с сохранением поддержки – в конфигурацию внесены определенные изменения, но она остается на поддержке, то есть может обновляться при выходе новой версии.
  • Объект снят с поддержки – конфигурация сильно изменена или написана с нуля, она не обновляется при выходе новых версий.

Основу конфигурации составляет структура объектов конфигурации, которая описывается средствами визуального конструирования.

Объекты конфигурации

Объект конфигурации в системе 1С:Предприятие - это описание группы понятий со сходными характеристиками и одинаковым предназначением. Например, объект конфигурации Справочник предназначен для ведения списков однородных элементов данных – справочников, картотек, классификаторов.

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

Объекты конфигурации объединяются в виды в дереве конфигурации. Названия видов пользователь видит на первом уровне дерева конфигурации, когда открывает окно Конфигурация:

Ниже приведена краткая характеристика видов объектов, которые используются при настройке интеграции со СБИС.

Константы

Для работы с постоянной и редко меняющейся информацией в системе используются объекты типа Константа. Например, в константах хранится валюта учета.

Справочники

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

Перечисления

Перечисления используются для описания постоянных наборов значений. Типичным примером перечисления являются ставки НДС (0%, 10%, 18%, 10/110, 18/118, Без НДС).

Документы

Документы предназначены для отражения хозяйственных событий предприятия. Это могут быть, например, накладные, счета-фактуры, приказы о приеме на работу, счета на оплату, платежные поручения и т.д. Можно сказать, что это главный объект для интеграции со СБИС, т.к. именно документы мы отправляем в электронном виде. Каждый вид документа предназначен для отражения своего типа событий. Это определяет его структуру и свойства. Каждый вид документа может иметь неограниченное количество реквизитов и табличных частей.

При настройке отправки или загрузки документов нас больше всего будут интересовать именно эти реквизиты и табличные части.

Регистры сведений

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

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

Виды клиентских приложений

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

Толстый клиент

Клиентское приложение, работающее как в режиме 1С:Предприятие, так и в режиме Конфигуратор.

В отличие от других клиентских приложений не позволяет подключаться к информационным базам через Интернет и требует значительного количества ресурсов для работы.

Тонкий клиент

Одно из клиентских приложений, позволяющих подключаться к информационным базам как по локальной сети, так и через Интернет (обеспечивает подключение к информационной базе по протоколам http и https через веб-сервер). Работает только в режиме 1С:Предприятие. В отличие от веб-клиента требует предварительной установки на компьютер пользователя.

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

Веб-клиент

Одно из клиентских приложений, позволяющих подключаться к информационным базам через Интернет.

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

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

Варианты работы клиентских приложений

Существует два варианта работы клиентских приложений.

Файловый вариант работы

Вариант работы, рассчитанный на персональную работу одного пользователя или работу небольшого количества пользователей в локальной сети.

В этом варианте все данные информационной базы (конфигурация, база данных, административная информация) располагаются в одном файле - файловой базе данных. Работу с этой базой данных осуществляет файловая СУБД, разработанная фирмой "1С" и являющаяся частью платформы.

Клиент-серверный вариант работы

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

Представляет собой совокупность трех взаимодействующих частей:

  • клиентское приложение (1С:Предприятие)
  • кластер серверов (1С:Предприятие)
  • СУБД стороннего производителя (например, Microsoft SQL Server, PostgreSQL)

Режимы запуска 1С:Предприятие

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

Режим обычного приложения

Режим, в котором для работы с прикладным решением используется интерфейс ранних версий 1С:Предприятия, ориентированный на работу только в толстом клиенте. Этот интерфейс не может изменяться автоматически на основе прав и функциональных опций.

Пример интерфейса:

Режим управляемого приложения

Режим, в котором для работы с прикладным решением используется управляемый командный интерфейс и управляемые формы.

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

Архитектура управляемого приложения ориентирована на максимальный перенос выполнения всей функциональности на сервер и максимальное «облегчение» клиента.

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

Все новые конфигурации 1С (начиная с «Управления торговлей, версии 11», «Бухгалтерии предприятия, версии 3» и др.) ориентированы на работу только в управляемом режиме.

Пример интерфейса:

И пример более нового интерфейса:

Как работать в 1С:Предприятии

Больше всего нас интересует оформление сделок продажи и покупки, так как именно эти документы чаще всего отправляют и получают в электронном виде.

Рассмотрим, где находятся соответствующие документы в программе, как их посмотреть и распечатать.

В большинстве конфигураций в главном меню присутствуют разделы «Продажа» и «Покупка» (или «Продажи» и «Закупки»):

Здесь и «живут», интересующие нас документы. Например, документы реализации. В интерфейсе их названия могут отличаться в разных конфигурациях («Реализация товаров и услуг» или «Реализация (акты, накладные)»). Для открытия реестра документов выбираем соответствующий пункт в меню продажи. В окне реестра обычно присутствует панель инструментов для создания нового документа, печати, установки фильтра и др.:

При создании нового документа или при открытии существующего открывается карточка документа:

В карточке вводятся все данные документа. При бумажном документообороте документ распечатывается (из карточки или из реестра) и отправляется контрагенту.

По кнопке Печать предлагается список печатных форм документа:

Печатные формы могут быть типовыми, то есть те, которые заложены в конфигурации, и нетиповые, то есть внешние печатные формы, либо печатные формы, добавленные в конфигурацию специально под нужды данного клиента. Если клиент при печати использует нетиповую форму, то это надо учитывать и при интеграции со СБИС, т.к. печатная форма электронного документа должна соответствовать печатной форме клиента.

Также из карточки мы можем посмотреть структуру подчиненности документа:

В структуре подчиненности отображаются все связанные документы. При интеграции со СБИС документы из 1С обычно отправляются не по одному, а комплектами из двух или трех связанных документов (накладная+фактура или накладная+фактура+счет).

Информация в структуре подчиненности может пригодиться, если клиент хочет в комплект электронных документов добавить еще какой-то документ, кроме тех, что входят в состав комплекта по умолчанию. Здесь мы можем посмотреть, есть ли связь между текущим документом и тем документом, который клиент хочет добавить к комплекту.

Внешние обработки

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

Внешняя обработка – это, по сути, внешний модуль, который также разрабатывается на языке программирования 1С в Конфигураторе, но не вносит изменений в типовую конфигурацию. Он существует независимо от самой конфигурации и хранится отдельно в файле с расширением "epf".

Поэтому при интеграции 1С со СБИС мы используем внешнюю обработку и не вносим никаких изменений в конфигурацию клиента.