Переход на управляемый интерфейс в платформе «1С:Предприятие 8» требует от разработчика принципиального изменения мышления. Ключевая сложность заключается в разделении выполнения кода на клиентский и серверный контексты, а также в оптимизации передачи данных между ними. Для быстрого и качественного освоения этих механизмов начинающему специалисту необходима качественная практическая база — учебная конфигурация с примерами и методическое сопровождение.
В этой статье мы подробно разберем, где взять лучшие демонстрационные конфигурации, как использовать стандартные инструменты платформы для обучения и на какие методические пособия стоит обратить внимание в первую очередь.
Одним из самых мощных и при этом совершенно бесплатных инструментов для изучения механизмов управляемых форм является официальная демонстрационная база «Управляемое приложение». Фирма «1С» регулярно обновляет ее, адаптируя под новые возможности актуальных релизов технологической платформы.
Рассмотрим, где найти эту конфигурацию:
demo внутри директории установки платформы или в каталоге шаблонов конфигураций.Проанализируем ключевые примеры и механизмы, которые реализованы в демонстрационном «Управляемом приложении» и обязательны к изучению:
ДинамическийСписок, настройка произвольных запросов, группировок, отборов и условного оформления без написания лишнего серверного кода.&НаКлиенте, &НаСервере, &НаСервереБезКонтекста.Важно провести четкую границу между терминами «учебная версия платформы» и «учебная конфигурация». Сама по себе учебная версия платформы «1С:Предприятие» поставляется со встроенными ограничениями (например, на количество записей в таблицах или количество одновременно работающих пользователей), но не содержит встроенной «универсальной» конфигурации.
Тем не менее, скачивая официальный дистрибутив «1С:Предприятие 8.3. Учебная версия», разработчик получает доступ к целому набору готовых решений:
Эти базы служат прекрасным полигоном для тестирования написанного вами кода без риска нарушить работоспособность реальных коммерческих систем.
Изучение конфигурации без теоретической основы может оказаться малоэффективным. Для системного понимания архитектуры управляемого приложения мы рекомендуем использовать специализированные учебные пособия.
Разберем основные книги, которые должны стать настольными для начинающего разработчика:
Давайте посмотрим на практический пример того, как в управляемых формах правильно организовывать вызовы процедур для минимизации объема передаваемых данных между клиентом и сервером. Это одна из ключевых тем, которую обязательно нужно закрепить на учебной конфигурации.
Рассмотрим сценарий: на форме документа при изменении реквизита «Договор» нам необходимо получить из базы данных информацию о типе цен этого договора и заполнить соответствующий реквизит на форме.
Для минимизации трафика и исключения передачи контекста всей формы на сервер мы должны использовать вызов процедуры с директивой &НаСервереБезКонтекста. Разберем этот код подробно:
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
// Получаем тип цен договора без отправки контекста всей формы на сервер
ТипЦенДоговора = ПолучитьТипЦенДоговораНаСервере(Объект.Договор);
// Заполняем реквизит формы на клиенте
Объект.ТипЦен = ТипЦенДоговора;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьТипЦенДоговораНаСервере(Знач СсылкаНаДоговор)
// Проверяем заполнение ссылки, чтобы избежать ошибок
Если Не ЗначениеЗаполнено(СсылкаНаДоговор) Тогда
Возврат Справочники.ТипыЦен.ПустаяСсылка();
КонецЕсли;
// Запрос к базе данных для получения типа цен договора
Возврат СсылкаНаДоговор.ТипЦен;
КонецФункции
В данном примере использование директивы &НаСервереБезКонтекста позволяет серверу обработать только переданную ссылку СсылкаНаДоговор, не тратя ресурсы сети и процессора на передачу и десериализацию структуры всей формы Объект.
Еще один важный паттерн, пример которого вы обязательно встретите в конфигурации «Управляемое приложение» — это работа со временным хранилищем. Рассмотрим, как программно поместить файл в хранилище на клиенте и обработать его на сервере:
&НаКлиенте
Процедура ЗагрузитьФайлНаСервер()
АдресХранилища = "";
ВыбранноеИмяФайла = "";
// Вызываем диалог выбора файла на клиенте
Если ПоместитьФайл(АдресХранилища, "", ВыбранноеИмяФайла, Истина) Тогда
// Передаем адрес во временном хранилище на сервер для обработки
ОбработатьФайлНаСервере(АдресХранилища);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработатьФайлНаСервере(Знач АдресХранилища)
// Получаем двоичные данные файла из временного хранилища
ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресХранилища);
// Дальнейшая логика сохранения файла в регистр сведений или справочник
// Например: Справочники.ХранилищеФайлов.СохранитьФайл(Объект.Ссылка, ДвоичныеДанныеФайла);
КонецПроцедуры
Если самостоятельного изучения книг и демо-баз оказывается недостаточно, эффективным шагом станет прохождение авторизованных курсов в Учебном центре фирмы «1С».
Для детального освоения интерфейсных механизмов предназначены курсы:
Слушателям курсов предоставляются не только подробные методические тетради, но и специализированная каркасная конфигурация. Она содержит подготовленную структуру метаданных, на базе которой выполняются сквозные практические задачи. Это избавляет от необходимости тратить время на рутинное создание объектов и позволяет полностью сосредоточиться на написании кода управляемых форм.
Изучая управляемые формы системно — сочетая разбор готовых примеров из демо-базы «Управляемое приложение», чтение методической литературы и закрепление теории на практике с использованием учебной платформы, — вы сможете в кратчайшие сроки освоить стандарты современной разработки на платформе «1С:Предприятие 8».