1С 8 расширение конфигурации

1С 8 расширение конфигурации

Блог

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

Прежде всего необходимо знать об ограничениях, которые имеют расширения.

Ограничение на создаваемые объекты

На данный момент можно создавать:

  • Справочники
  • Документы
  • Регистры сведений
  • Планы обмена

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

  • Справочники
  • Документы

Что мы имеем в итоге? Добавлять можно не все типы объектов метаданных. Самые распространенные и востребованные, но все-таки не все. Кроме того, в регистры сведений нельзя добавлять новые измерения и ресурсы. Можно только создать полностью новый регистр.

Ограничение режима совместимости

Функционал расширений зависит от режима совместимости конфигурации, к которой применяется расширение.

Режим совместимости 8.3.8 — можно менять только формы объектов и их модули, добавлять свои отчеты и обработки.

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

На данный момент в типовой УТ 11.3 стоит режим совместимости 8.3.8. В УТ 11.4 режим совместимости 8.3.10, то есть, например, для УТ, большая часть функционала расширений недоступна, включая создание объектов метаданных.

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

Ограничение обновления

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

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

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

Выводы

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

Печать (Ctrl+P)

1С: Предприятие 8.3.13 . Документация

Категория свойств «Совместимость»

Палитра свойств Совместимость

1. Режим управления блокировкой данных

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

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

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

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

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

2. Режим автонумерации объектов

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

Значение данного свойства ОсвобождатьАвтоматически используется для обеспечения режима работы нумерации, аналогичного версии «1С:Предприятие 8.0». Полученные автоматически номера и коды будут в дальнейшем использоваться, если объект, для которого они получены, не записан.

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

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

Режим автонумерации НеОсвобождатьАвтоматически действует только на номера, которые выданы вне транзакции. Т.е. если номер выдан вне транзакции и код не был использован (объект не был записан), то в режиме НеОсвобождатьАвтоматическиномер не будет переиспользован, а в режим ОсвобождатьАвтоматически номер будет переиспользован.

3. Режим использования модальности

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

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

Если «1С:Предприятие» запускается из конфигуратора (см. ), то параметр командной строки запуска /EnableCheckModalустанавливается принудительно, без возможности настройки такого поведения.

4. Режим использования синхронных вызовов расширений платформы и внешних компонент

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

При работе веб-клиента, под управлением веб-браузеров Google Chrome или Mozilla Firefox, реализовано следующее поведение:

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

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

Необходимо помнить, что поддержка синхронных вызовов в веб-браузере Google Chrome по умолчанию отключена в версии 42 (апрель 2015 года), а полностью удалена в версии 45 (сентябрь 2015 года). Веб-браузер Mozilla Firefox не поддерживает синхронные вызовы в веб-браузере начиная с версии 43 (декабрь 2015 года).

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

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

5. Режим совместимости интерфейса

Режим совместимости интерфейса ‑ свойство управляет режимом интерфейса клиентского приложения:

● Версия 8.2 ‑ клиентское приложение работает в интерфейсе версии 8.2. Переключение в интерфейс Такси невозможно.

● Версия 8.2. Разрешить Такси ‑ по умолчанию используется интерфейс версии 8.2. Возможно переключение на интерфейс Такси с помощью диалога параметров, объект НастройкиКлиентскогоПриложения или командной строки.

● Такси. Разрешить Версия 8.2 ‑ по умолчанию используется интерфейс Такси. Возможно переключение на интерфейс версии 8.2 с помощью диалога параметров, объект НастройкиКлиентскогоПриложения или командной строки.

● Такси ‑ клиентское приложение работает в интерфейсе Такси. Переключение в режим интерфейса 8.2 невозможно.

При использовании интерфейса версии 8.2 допустимо переключение между интерфейсом в отдельных окнах и интерфейсом в закладках.

Если свойство Режим совместимости установлено в значение, большее значения Версия 8.3.2 (Не использовать, Версия 8.3.3 и выше), а свойство Режим совместимости интерфейса установлено в значение Версия 8.2 или Версия 8.2. Разрешить Такси, то для новых пользователей прикладного решения будет автоматически установлен интерфейс в закладках.

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

6. Режим совместимости

Не поддерживается работа конфигурации с неизвестным режимом совместимости. Неизвестными режимами совместимости являются те, которые соответствуют функциональности, реализуемой в последующих версиях системы «1С:Предприятие». Например, если в версии 8.3.1 установить режим совместимости Не использовать, то он будет считаться неизвестным при открытии конфигурации в версии 8.2.16. При этом, если в версии 8.3.1 установить режим совместимости Версия 8.2.16, то при открытии конфигурации в версии 8.2.16 он будет отображаться как Не использовать. Если в конкретной версии не будет вводиться нового режима совместимости, то действие режима Не использовать будет аналогично предшествующей версии. При попытке запустить или загрузить конфигурацию с неизвестным режимом совместимости, будет выдаваться ошибка с указанием требуемой версии. Запрещена загрузка файлов 1cv8.dt, сформированных в версии 8.3.1 и выше, в «1С:Предприятии» младших версий (младше чем 8.3.1). Исключением является ситуация, когда в версии 8.3.1 свойство конфигурации Режим совместимости установлено в значение Версия 8.2.16.

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

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

Режим совместимости мобильной платформы (см. ) имеет несколько отличий:

● Режим совместимости для мобильной платформы не управляется свойствами конфигурации (в том числе и свойством Режим совместимости). Однако данное свойство существует «внутри» мобильного приложения.

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

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

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

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

Расширения конфигурации. Полезные советы для разработки

0. Введение

1. Показать/скрыть неизмененные объекты

2. Последовательность выполнения обработчиков

а) Типовой код -> Код из расширения

б) Код из расширения -> Типовой код -> Код из расширения

в) Типовой код -> Код из расширения -> Типовой код

г) Отменить типовые обработчики

3. Создание и использование общего модуля, модуля менеджера или модуля объекта

4. Как подключить отладку

5. Как писать запросы

6. Как сохранять данные

а) Сохранение данных формы

б) Хранилище пользовательских настроек

7. Как добавить свой макет

8. Как подменить кнопку заполнения табличной части

9. Расширение как багфикс

10. Как вывести свою обработку в интерфейс

11. Как перевести расширение на 8.3.8

12. Как подключить расширение

13. Как обновить расширение

Благодарность

0. Введение

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

Согласно документации:

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

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

Более подробно о расширениях можно почитать и посмотреть здесь:

Заметки в зазеркалье
Документация
Курсы Гилёва и Насипова
Нюансы расширений
Расширения в 8.3.9

Ниже я приведу полезные советы для работы с расширениями.

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

Итак, поехали!

1. Показать/скрыть неизмененные объекты

При добавлении новых объектов в расширение также автоматически добавляются связанные объекты. В результате в метаданных расширения скапливается много служебных объектов.
Для того, чтобы показать только измененные объекты есть кнопка “Измененные и добавленные в расширении”. При нажатии отображаются только добавленные вручную и измененные объекты расширения.
Принцип её работы показан ниже:

2. Последовательность выполнения обработчиков

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

а) Выполнить сначала типовой код, затем код из расширения:

&НаСервере Процедура Учеб_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить(«Сообщение», «ПослеТиповогоОбработчика!»); УстановитьВыполнениеПослеОбработчиковСобытия(«ВыполнитьПослеТиповогоОбработчика», ДополнительныеПараметры); КонецПроцедуры &НаСервере Процедура ВыполнитьПослеТиповогоОбработчика(Отказ, СтандартнаяОбработка, ДополнительныеПараметры) Сообщить(ДополнительныеПараметры.Сообщение); КонецПроцедуры

б) Выполнить сначала код из расширения, затем типовой код, затем опять код из расширения

&НаСервере Процедура Учеб_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Процедуры до типовых обработчиков Сообщить(«До типового обработчика!»); // Устанавливаем обработчик после типового обработчика событий УстановитьВыполнениеПослеОбработчиковСобытия(«ВыполнитьПослеТиповогоОбработчика»); // Дальше будет выполнен код из типового обработчика КонецПроцедуры &НаСервере Процедура ВыполнитьПослеТиповогоОбработчика(Отказ, СтандартнаяОбработка, ДополнительныеПараметры) // Код после типового обработчика из расширения Сообщить(«После типового обработчика!»); КонецПроцедуры

в) Выполнить сначала типовой код, затем код из расширения, затем снова типовой код

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

&НаСервере Процедура Учеб_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Процедуры до типовых обработчиков Сообщить(«ДоТиповогоОбработчика!»); // Процедуры из типового обработчика Если НЕ ЗначениеЗаполнено(БанковскийСчет.ВалютаДенежныхСредств) Тогда БанковскийСчет.ВалютаДенежныхСредств = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета(); КонецЕсли; РазместитьКонтактнуюИнформацию(); Если Параметры.Ключ.Пустая() Тогда ПодготовитьФормуНаСервере(); КонецЕсли; УправлениеФормой(ЭтаФорма); // Процедуры после типовых обработчиков Сообщить(«ПослеТиповогоОбработчика!»); // Остановим выполнение типовых обработчиков УстановитьВыполнениеОбработчиковСобытия(Ложь); КонецПроцедуры

г) Отменить типовые обработчики

&НаСервере Процедура Учеб_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Остановим выполнение типовых обработчиков УстановитьВыполнениеОбработчиковСобытия(Ложь); КонецПроцедуры

3. Создание и использование общего модуля, модуля менеджера или модуля объекта

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

&НаСервере Процедура СообщитьДиректораНаСервере() Должность = «Директор»; ФИОРуководителя = «Иванов И.И.»; Обработки.Учеб_Обработка.СообщитьДиректора(Должность, ФИОРуководителя); КонецПроцедуры

Модуль менеджера обработки:

Процедура СообщитьДиректора(Знач Должность, Знач ФиоРуководителя) Экспорт ТекстСообщения = СтрШаблон( НСтр(«ru=’%1 %2′»), Должность, ФиоРуководителя); Сообщить(ТекстСообщения); КонецПроцедуры

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

4. Как подключить отладку

В типовых конфигурациях на основе библиотеки стандартных подсистем (БСП) при отладке расширений встречается вот такое страшное сообщение:

Оно возникает если в конфигураторе открыто наше расширение и лечится только закрытием окна расширения.

Для того, чтобы подключить отладку в расширении следует использовать ключ командной строки — “РежимОтладки”

Это упрощает отладку кода. В частности:

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

Для того чтобы его установить:

  • Запустить предприятия с ключом командной строки — » /C РежимОтладки «
  • В режиме конфигуратора установить параметр запуска:
    Сервис -> Параметры -> Запуск 1С:Предприятия -> Параметр запуска: ввести строку <РежимОтладки>

При первом подключении расширения или при изменении в версии расширения или поставщика, отладка может не подключится с таким же сообщением.

Для того, чтобы исправить эту ситуацию можно попробовать следующие действия:

1. В конфигураторе закрыть это расширение
2. Запустить конфигурацию в режиме предприятие и открыть форму, связанную с расширением
3. Открыть расширение в конфигураторе
4. Перезапустить отладку.

5. Как писать запросы

Расширение видит и работает только с теми объектами, которые заимствованы из основной конфигурации.
Объекты, которые не заимствованы, в расширении не видны и при попытке обращения к ним, например, в тексте запроса, в режиме “Конфигуратор” вызывают ошибку. Хотя в пользовательском режиме код выполняется без проблем.
Для того чтобы писать или редактировать запросы с большим количеством метаданных лучше воспользоваться любой внешней обработкой. В ней доступны все метаданные из основной конфигурации:

6. Как сохранять данные

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

а) Сохранение данных формы

В редактируемой форме можно установить свойство — “АвтоматическоеСохранениеДанныхВНастройках” в «Использовать» и поставить флаг «Сохранение» над нужными реквизитами. Это позволит сохранять значения реквизитов типовым механизмом платформы:

Такое сохранение данных .

б) Хранилище общих настроек

В этом хранилище можно хранить любые данные. Подробнее можно .
Рассмотрим пример хранения произвольных данных.

Сохранение данных:

&НаСервере Процедура ПередЗакрытиемНаСервере() // Подготовим структуру хранения данных СтруктураНастроек = Новый Структура; СтруктураНастроек.Вставить(«Всем», Всем); СтруктураНастроек.Вставить(«Близким», Близким); СтруктураНастроек.Вставить(«Друзьям», Друзьям); // Сохраним данные в хранилище общих настроек ОбщегоНазначения.ХранилищеОбщихНастроекСохранить( «Учеб_СделатьВсёХорошо», «Настройки», СтруктураНастроек); КонецПроцедуры

Восстановление данных:

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Инициализируем структуру СтруктураНастроек = Новый Структура; // Восстановим сохраненные данные СтруктураНастроек = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( «Учеб_СделатьВсёХорошо», «Настройки», СтруктураНастроек); // Заполним значения реквизитов формы ЗаполнитьЗначенияСвойств(ЭтаФорма, СтруктураНастроек); КонецПроцедуры

7. Как добавить свой макет

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

8. Как подменить кнопку заполнения табличной части

Иногда может потребоваться и добавить свою кнопку заполнения и оставить типовую кнопку.
Для того, чтобы убрать типовую кнопку подальше, но не удалять её совсем можно установить свойство — “Только во всех действиях” — «Да»:

В этом случае кнопка будет доступна из подменю “Еще”. Это позволит в случае непредвиденных ситуаций продолжить работу с типовой функциональностью.

9. Расширение как багфикс

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

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

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

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

10. Как вывести свою обработку в интерфейс

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

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

11. Как перевести расширение на 8.3.8

Чтобы перевести расширение на 8.3.8 следует выполнить следующие действия:

1. Снять режим совместимости в расширении.
Установить свойства совместимости такими же как и у основной конфигурации.

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

3. Обновить формы в расширении.
Следует обновить формы расширений из основной конфигурации. Чтобы и в расширении и в конфигурации формы были одинаковыми.

4. Привести компоновку формы к новым правилам движка.
С рекомендациями по адаптации форм к новой платформе можно ознакомиться по .

5. Проверить, что расширение выглядит и работает правильно.

Более подробно по каждому пункту описано в этой памятке. Там же приведены полезные материалы по теме.

12. Как подключить расширение

1. Администрирование — «Печатные формы и обработки»

2. Гиперссылка «Расширения»

3. Кнопка «Добавить» — Выбираем файл

4. Кнопка «Перезапустить»

5. Готово!

13. Как обновить расширение

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

1. Зачем нужны расширения конфигурации

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

2. Возможности расширений конфигурации

С помощью расширений конфигураций вы можете:

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

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

3. Сравнение с дополнительными отчетами и обработками

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

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

4. Порядок разработки и использования

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

  1. Авторизация разработчиков. Право на добавление в сервис расширений конфигурации выдается фирмой «1С» сотрудникам обслуживающих организаций сервиса1cfresh.com со статусом «1С:ЦСК» по их заявкам. Сотрудники этих организаций, получившие право на добавление в сервис расширений конфигурации, получают статус разработчик расширений конфигурации. Подробнее об этом см. в статье .
  2. Разработка расширения. Разработчик расширений конфигурации разрабатывает расширение на своем компьютере, тестирует расширение. Требования к расширениям конфигурации приведены .
  3. Загрузка расширения в сервис. После того, как расширение конфигурации разработано и протестировано, разработчик добавляет его в сервис, как описано в статье . Расширение помещается в централизованный каталог расширений сервиса.
  4. Аудит расширения. При добавлении в сервис расширения конфигурации или его новой версии расширение автоматически направляется на аудит. Аудит выполняется сотрудниками провайдера (администратора) сервиса.

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

  5. Публикация в сервисе. После успешного прохождения аудита расширение конфигурации получает статус «Опубликовано в сервисе» и может использоваться — то есть, встраиваться в приложения.
  6. Предоставление доступа клиентам (абонентам). Если правообладателем расширения конфигурации является обслуживающая организация, то она может:

    • использовать расширение в своих приложениях;
    • предоставить доступ к расширению своим клиентам (обслуживаемым абонентам) — одному, некоторым по своему выбору или всем (см. статью ).

    Если правообладателем расширения конфигурации является клиент (абонент), по заявке которого разработано расширение, то:

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

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

5. Сопровождение и обновление

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

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

6. Примеры расширений конфигурации

6.1. Пример 1: вывод сведений о погоде

Расширение конфигурации «Демо:Погода» (его можно скачать ) показывает, как в приложении можно вывести информацию, полученную из внешней системы посредством выполнения HTTP-запроса.

Расширение отображает в начальной странице приложения сведения о погоде, полученные через публичный API с погодного сайта http://api.wunderground.com.

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

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

Расширение совместимо с любой конфигурацией, так как не заимствует объектов из расширяемой конфигурации.

6.2. Пример 2: предоставление ленты новостей

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

Приложение создает внешний программный интерфейс для получения информации в формате RSS, используемом лентами новостей, о последних десяти поступлениях в кассу для конфигурации «Бухгалтерия предприятия, редакция 3.0». В составе расширения реализован XDTO-пакет (URI пространства имен http://www.w3.org/2005/Atom):

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

Для удобства подключения к RSS-ленте расширение выводит в начальной странице приложения:

  • гиперссылку с адресом ленты новостей;
  • QR-код с адресом ленты новостей — для чтения с помощью камеры мобильного устройства.

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

Для генерации QR-кода расширение конфигурации обращается к внешнему ресурсу http://api.qrserver.com, поэтому это расширение также должно подключаться в небезопасном режиме.

Заметки из Зазеркалья

Быстрое масштабирование форм

Реализовано в версии 8.3.10.2168.

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

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

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

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

В клиентских приложениях

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

Диалог установки масштаба открывается в правом верхнем углу, но вы можете переместить его в любое удобное вам место экрана:

Масштаб формы можно изменять в диапазоне от 50% до 400%. При этом не просто увеличивается или уменьшается размер шрифта и элементов, а вся форма перестраивается под новые размеры элементов.

Например, вы можете увеличить её до 200%.

Или наоборот, уменьшить до 70%.

Изменение масштаба выполняется на клиенте и не требует вызова сервера.

Масштабирование применяется только к содержимому формы. Системные панели, диалог избранного и диалог истории не масштабируются. Также не масштабируются рамки и полосы прокрутки внутри формы. Изменения размера этих элементов можно добиться путём изменения разрешения экрана (DPI).

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

Несмотря на то, что мы заложили довольно большой диапазон изменения масштаба, мы не считаем, что весь он обязательно будет использоваться. По нашим оценкам пользователи, которые захотят применить эту возможность, слегка уменьшат все формы, до 90-95%, а некоторые формы наоборот слегка увеличат до 105-110%.

Сохранение масштаба

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

Масштаб формы в конфигураторе

В конфигураторе вы тоже можете задать масштаб, в котором форма будет показана пользователю. Для этого мы реализовали у формы свойство Масштаб. Это свойство мы рекомендуем использовать в тех случаях, в которых раньше вы использовали ВариантМасштаба: Компактный. Исходить нужно из того, что в компактном режиме масштаб формы равняется примерно 80%.

Предварительный просмотр формы в масштабе

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

В результате форма, отображаемая в области предварительного просмотра, будет увеличена, например, до 150%.

Показ картинок

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

Теперь для отображения задаётся не одна картинка, а набор вариантов этой картинки в виде архива. В этом архиве есть варианты под разные разрешения и под разные варианты интерфейса. Для показа платформа подбирает вариант, подходящий под текущее DPI и масштаб формы.

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

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

Рассказать друзьям:


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

Ваш адрес email не будет опубликован. Обязательные поля помечены *