В платформе 1С (начиная с релиза 8.3.6) появился принципиально новый механизм адаптации прикладного решения – механизм расширений. Этот механизм позволяет реализовать новую стратегию изменения прикладных решений. В вебинаре рассмотрели какие возможности имеет механизм сегодня, где и когда стоит применять механизм расширений и какие планы в 1С по его развитию.
Ведущий: Кирилл КАРЦЕВ - технический руководитель проектов, программист 1С, консультант-аналитик
Программа вебинара:
1. Возможности механизма расширений на примерах;
2. Когда стоит применять механизм расширений;
3. Планы по развитию механизма расширений в 1С.
Видео
Презентация
Расшифровка
Здравствуйте коллеги. Начинаем сегодняшний вебинар. Тема нашего вебинара «Механизм расширений в 1С».
Для начала давайте ответим на вопрос: Что такое механизм расширений на платформе 1С?
Платформа начиная с релиза 8.3.6 появился принципиально новый механизм адаптации прикладного решения – механизм расширений. Этот механизм позволяет реализовать новые стратегии изменения прикладных решений. Теперь можно кастомизировать решения 1С не снимая само решение с поддержки 1С, обновления остаются типовыми, но функциональность изменяется и адаптируется под потребности бизнеса.
Давайте перейдем непосредственно к примерам я сразу приготовил. На текущий момент платформа 1С до релиза 8310 позволяет взимать четыре вида объектов, четыре пункта функциональности системы: это формы, роли, подсистемы с интерфейсом и добавление отчетов и обработок.
Давайте посмотрим на примере как можно добавить или поправить форму в расширении. Непосредственно работа с расширениями происходит через окно расширения и конфигурации. Здесь можно добавлять несколько различных расширений. Обратите внимание что можно выбрать назначение расширения. Оно нужно для последовательности подключения этих расширений в систему. Последовательность, порядок подключения в этом случае следующий: сначала идут расширения с назначением исправления, потом адаптация, потом дополнения. То есть исправления нужно для оперативного исправления каких-то ошибок, чтоб сначала подключалось то расширение которое имеет значение. То есть все ошибки которые мы нашли поправили, сначала они исправляются. Далее адаптация и потом выполнение. В нашем случае я использовал только одно назначение расширения – это исправление. Также здесь можно работать, сохранять эти расширения в файл, загружать их отдельно, сравнивать, объединять с каким-то другим расширением, обновлять скажем так и т.д. Здесь общий принцип схож с тем как работать с конфигурациями. При работе с расширениями у нас появляется такое дополнительное окно показываем расширение, которое мы уже работаем непосредственно с объектами вот этого расширения. Для того чтобы отредактировать объект расширения или добавить свой. Для того чтобы отредактировать текущий объект системы его необходимо добавить в расширения, для этого непосредственно в основной конфигурации, мы заходим в объект или в реквизит какой-то, отдельный, добавить расширения или весь объект, добавить и расширить. У нас добавляется в расширение, сам объект и его непосредственно можно уже до настраивать что-то добавлять, менять и т.д.
Так, непосредственно работа с формами. Как происходит. Вот я для примера добавил расширение, добавил форму элемента и в форму элемента добавил реквизит, ну допустим справочную информацию, вывел ее в основную форму. И добавил несколько событий формы. То есть при открытии какое-то значение по умолчанию и перед записью. Обратите внимание добавляется префикс расширения и добавляется в данном случае два слова перед. Само событие перед записью и обозначает в какой момент оно исполняется, то есть перед основным событием вот этой перезаписи формы, после основного события и т.д.
Для примера здесь могу что-нибудь продемонстрировать. Вот видите тип вызова, который показывает, когда будут выполняться события. То есть вызывать перед, вызывать после, вызывать вместо основного события, которое будет его заменять. То есть мы при кастомизации этих расширений, настраиваем момент вызова вот этого модуля, который мы добавляем. Давайте посмотрим добавилась у нас действительно вот эта вот справочная информация. Есть одна особенность. При работе в конфигураторе, когда мы в откладке, 1С не дает работать с расширениями пока мы не закроем конфигуратор. Это продемонстрирую. То есть получается одновременно с расширением можно работать либо в конфигураторе, либо в поисковом режиме. В принципе оно довольно динамично, быстро открывается в конфигураторе, поэтому мне трудностей таких серьезных не создавало.
Вот видите система расширения, возникла ошибка у нас, произвести какое-то действие. Видите, что нужно закрыть конфигуратор. Закрываю расширение, снова повторяю отладку не забывая при этом применить это расширение. То есть если не применить изменение в данном расширении, то будет подтянута предыдущая версия расширения.
Здесь мы опять ждем 1С, смотрим результат. Давайте я пока другую конфигурацию вам покажу. Какие основные возможности можно изменять к самим обьектам, которые я озвучил. Можно еще изменять такие параметры например как: режим запуска, назначения, можно применять модули управленного приложения, можно изменить команды, интерфейс, можно настраивать основные формы, режим совместимости. Здесь есть особенность. Режим совместимости можно указать меньше чем основные конфигурации, можно понизить, а не повысить.
Итак, давайте откроем карточки номенклатура, смотрим добавилось у нас наше расширение, наши реквизиты, здесь мы что-то записали, из справочника информацию добавили, записали, сработало событие, и система информирует нас о том что действительно данные записаны в базу.
Следующий момент, это работа с ролями. Можно как захвативать какие-то роли и кастомизировать, настраивать. И мы можем добавлять свои роли, назначать какие-то права.
Какие здесь есть особенности? Первая особенность, в расширении можно использовать роли при совместимости с 8.3.8 и меньше по основным конфигурациям. Для этого я с поддержки основную конфигурацию снял чтобы можно было изменить режим совместимости. Делать это в рабочей базе конечно не рекомендуется, лучше взять какое-то обновление и после этого начать использовать роли в расширении. В основном вся работа проводится как обычно с ролями. Я для примера, давайте посмотрим что я здесь сделал, я здесь добавил сразу подсистему отдельную, добавил эту роль для подсистемы, в некотором роде я организовал такое новое рабочее место не изменяя конфигурацию, не прибегая к изменению типового решения, а добавил новый рабочий стол с определенным доступом, с определенным набором обьектов в рабочем столе. Там какие-то будут пользователи. То есть я добавил подсистему, называется «Работа с номенклатурой», включил ее в команду интерфейс, добавил в состав этой подсистемы предваритель захватив в расширения нужные справочники,и какие-то еще обьекты, которые должны быть доступны, добавил роль, добавил права к этим обьектам необходимые этой роли. Давайте продемонстрирую, что в итоге у меня получилось. Как обычно при работе с ролями есть тонкости и особенности решений, приходится много обьектов добавлять, чтобы служебные формы открывались, но принцип работы как с основными ролями, конфигурацими, та и с расширениями один и тот же. Самый главный это режим совместимости. Запускается отладка.
Давайте немного забегу вперед, в принципе ничего сложного нету в том, чтобы добавлять сюда также какие-то отчеты. То есть добавляем расширения, добавляем основную конфигурацию товара,отче тили обработку, настраиваем ее, разрабатываем, допиливаем и он работает аналогично как будто бы он встроен в эту базу. Если он коректно разработан конечно.
Также я на этом примере и покажу. Вот непосредственно интерфейс, рабочий стол, который я разработал на базе расширения, то есть я добавил необходимые работы и необходимые обьекты для работы с номенклатурой и некоторые тестовые отчеты. То есть не снимая с поддержки.
Непосредственно можно работать в номенклатуре. Впринципе основные возможности в текущей рабочей платформе, это возможности изменять формы, модули, настраивать режимы какие-то запуска, изменять роль, подсистему вместе с интерфейсом, настраивать, добавлять отчеты и обработки.
Можно сказать что можно применять механизмы расширения к адаптации вашей системы Windows, несмотря на какой-то первоначальный уровень развития инструментов. Механизм вполне себя оправдывает. Например, скачается временное обновление, и оно будет второе, а второе как известно обновляется относительно быстрее, чем типового. Ну или нет потребности возвращаться к типовой, искать типовой релиз, если изменения больше не потребуются. Захотели вернутся к типовому решению, мы просто включаем это изменение, это расширение. При необходимости это расширение можно вернуть, то есть добавить расширение и загрузить расширение с файла и сохранить.
Учитывая, что у расширений пока ограниченные возможности, они применяются там, где небольшие доработки, которые я сейчас продемонстрирую. Но касаясь дальнейших вопросов по развитию механизмов расширения начиная с платформы 8311. 1С анонсирует введение в расширения возможностей изменения архитектуры баз. Давайте на примере посмотрим, я у себя установил платформу 8.3.11 в тестовом режиме бета тестировании, здесь добавил уже непосредственно объект, добавил справочник. Тоже ничего сложного. Единственно что пока нужно ждать пока 1С выпустит рабочий релиз. Обещали, что в конце октября будет уже 8311. Нужно подождать, когда они выпустят более стабильную версию, релиз платформы.
Итак, пока еще нету возможности добавлять регистры накопления и регистры бухгалтерии, хотя давайте я сам анонс покажу. Кто не знает, в 1С есть «Заметки из Зазеркалья», в которых они анонсируют что и когда появится, какие возможности появятся новые в платформе, какие будут нюансы и тд. Планируется версия 8.3.11. Что они сделали? Можно добавлять собственные обыекты: справочники, документы, регистры сведений, планы обмена. Пока еще нет регистры сведений, обмена. Мы ждем. Можно добавлять собственные реквизиты, табличные части, реквизиты табличных частей. Как это работает? Создается некая копия таблицы основной, в которой изменяется реквизит, вы переносите старые данные в справочник объекта, дальнейшие обращения идут к этой таблице, переадресовываются. Когда мы расширения отключаем идет обратная операция. То есть расширенные таблицы возвращаются в основную и обращения уже идут к основной таблице. Есть тут такой нюанс, про разделение данных, и здесь можно сделать вывод, что разделение данных используется в серьезных крупных масштабах, проектах, системах. Соответственно применимостью вот этого расширения, можно сказать что расширения можно применять и планировать применять уже более серьезно в компаниях, предприятиях. Если раньше речь была о том, что пока расширения стоит применять там, где нужны небольшие поправки, в небольших компаниях, где быстренько нужно создать рабочий стол, поправить роли, добавить объекты. То это намек на то, что в перспективе можно полноценно на расширениях разрабатывать модули и довольно таки масштабные модули. Здесь можете прочитать про невозможность применения расширения, удаление расширения, про загрузку. Давайте я пока запущу расширение с новым объектом со справочника, для наглядности.
Так ограничения и планы, пока еще далеко не все должны реализовать. И также говорят про содействие в развитии этих расширений, вы можете присылать пожелания, рекомендации, они анализирую их. Можно взаимодействовать с 1С. Пока еще понятно, что это молодое направление, не использованное в каких-то крупных проектах. Пока еще применимость его в небольших предприятиях с небольшими доработками. Но перспективы у него по всей видимости серьезные, учитывая, что 1С заговорила о применении расширении для областей данных. Возможно в будущем 1С вообще не будет необходимости снимать конфигурацию поддержки, достаточно будет доработать это расширение. В компаниях разработки возможно будут выпускать отдельные модульные расширения, а не кастомизированые как сейчас. Единственно есть вопрос о производительности, поскольку система с каждым годом все требовательнее. Сам по себе механизм расширения требует дополнительных ресурсов в момент перемещения, в момент подключения этих расширений. То есть пока на вскидку, то что я делал, разницы особой нет в производительности расширений. Я не делал никаких замеров, все познается на практике, по отзывам будет понятно насколько расширения будут влиять на производительность. Надеемся на лучшее, перспективы у этого решения интересные, вполне реализуемые.
Вот это ссылка на Зазеркалье: https://wonderland.v8.1c.ru/blog/rasshirenie-dannykh/. Если интересно можете посмотреть и почитать, если есть вопросы – обращайтесь, пишите на почту. Буду рад выделить время, пообщаться.