В данной статье предлагаю рассмотреть, что такое «расширение конфигурации», как добавить расширение или же отключить его. Начиная с версии 1C 8.3.6.1977 в платформе введен новый механизм – расширения конфигурации. Сначала немного теории.
Что такое расширения?
Расширения представляют в 1С собой что-то вроде параллельных конфигураций, которые автоматически объединяются с основной конфигурацией поставщика. Причем в расширениях можно добавлять как свои объекты, так и заимствовать объекты основной конфигурации.
Для чего нужны расширения?
В первую очередь расширения созданы для облегчения внесения изменений в программу. То есть, если пользователи просят добавить какой-либо функционал, то до появления расширений программистам приходилось снимать конфигурацию с полной поддержки и менять типовую конфигурацию.
Снятие с полной поддержки влечет за собой ряд неудобств:
- пропадает возможность автоматического обновления, что приводит как минимум к увеличению времени на то, чтобы обновить конфигурацию;
- требуется высокая квалификация специалиста, обслуживающего программу;
- если изменения вносились в стандартные объекты типовой конфигурации, то при обновлении они могут пропасть, то есть замениться опять на типовые, от поставщика.
При использовании расширений при внесении изменений программист не будет трогать типовую конфигурацию. Все изменения будут делаться при помощи расширений, которые (как я писал выше) тоже являются конфигурациями. Таким образом, основная конфигурация останется на полной поддержке.
После обновления основной конфигурации, если произошли в новом релизе какие-то изменения с объектом, который ранее был изменен расширением, то изменения все равно возьмутся из расширения. То есть расширения имеют больший приоритет, чем основная конфигурация.
Видео — расширения в 1С за 45 минут
Получите 267 видеоуроков по 1С бесплатно:
Пример добавления расширения в 1С
Чтобы показать, что такое расширение, лучше привести пример его создания в конфигураторе 1С.
В конфигураторе зайдем в меню «Конфигурация» и выберем пункт «Расширения конфигурации». Откроется окно со списком расширений (если они есть). Нажмем кнопку «Добавить» и добавим новое расширение. Теперь можно открыть конфигурацию расширения:
Как видно, конфигурация расширения имеет точно такую же структуру, как и основная. Только она изначально совершенно чистая, без объектов.
Недавно я писал статью о том, как самим сделать обработку для перенумерации объектов. На её примере я хочу сделать ее встроенной при помощи расширения.
В обработке у меня есть поле со ссылкой на справочник «Организации». Поэтому мне этот справочник необходим. Но мы не будем создавать новый справочник «Организации», тем более что платформа этого и не позволит. Нельзя, чтобы в конфигурации расширения были объекты, одноименные с объектами в основной конфигурации.
Поэтому справочник мы позаимствуем из основной конфигурации:
Теперь нажмем правой кнопкой мышки на «Обработки» и выберем «Вставить внешнюю обработку, отчет…» Таким образом, добавим новую обработку в конфигурацию расширения. Если Вы используете мою обработку, то сразу переименуйте ее, так как в основной конфигурации уже есть обработка с таким именем.
Ну и последний штрих. Я хочу, чтобы моя обработка отражалась в меню «Администрирование». Для этого позаимствуем одноименную подсистему основной конфигурации. Не забудьте указать в обработке, что она относится к этой подсистеме.
Вот такая структура у меня получилась:
Посмотрим, что у нас получилось. Обновляем конфигурацию базы данных и запускаем программу в режиме 1C: Предприятие, и идем в меню «Администрирование». Да, чуть не забыл, конфигурацию расширения необходимо закрыть, иначе программа не запустится:
Таким образом, мы добавили в программу новую обработку, не изменив при этом основную конфигурацию.
Расширение можно выгрузить в файл и загрузить потом в другую конфигурацию. Это очень удобно для разработчиков. Получив заказ, программист на своей конфигурации делает расширение и передает его потом заказчику.
В заключение хочу сказать, что работа с расширениями еще не закончена. Постоянно добавляются новые возможности, расширяется круг объектов, с которыми можно работать. Поэтому, если Вы решили активно работать с расширениями, чаще обновляйте платформу.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Технологический блог фирмы 1С
Мы добавили в планировщик функциональность, позволяющую создавать визуально удобную, независимую вложенность измерений.
Сделать удобное мобильное приложение – дело непростое, это редко получается с первого раза. Для разработчика важно понять, насколько мобильное приложение удобно в использовании, где пользователь встречается с трудностями, использует ли пользователь мобильное приложение так, как задумал разработчик.
Чтобы решить эту задачу, мобильные приложения интегрируются с сервисами аналитики; сервисы помогают собрать информацию о статистике использования приложения, о действиях пользователей, источниках установок приложения и т.д.
Мы продолжаем развивать Систему взаимодействия в соответствии с нашим видением перспектив продукта и с учетом замечаний пользователей.
Для полноценной работы веб-клиента 1С иногда может потребоваться установить дополнительные программы: расширение для браузера и/или расширения для работы с файлами, криптографией, программой «1С:Предприятие – оповещения и запуск», внешние компоненты. Механизмы безопасности браузеров не дают сделать это полностью автоматически и требуют участия пользователя на некоторых фазах установки; в некоторых случаях может потребоваться перезапуск браузера.
В версии 8.3.17 мы переработаем интерфейс установки расширений, сделаем его более удобным для пользователей.
В версии 8.3.17 в функциональности демонстрации экрана в Системе взаимодействия (появилась в версии 8.3.16) произойдут изменения:
В версии 8.3.16 в Chrome демонстрация экрана
- Была доступна, начиная с версии Chrome 56
- Требовала установленного браузерного расширения
- Позволяла демонстрировать:
- Весь экран
- Вкладку Chrome
В версии 8.3.17 в Chrome демонстрация экрана
- Доступна, начиная с версии Chrome 72
- Не требует установленного браузерного расширения
- Позволяет демонстрировать:
- Весь экран
- Окна программ
- Вкладку Chrome
С целью помощи разработчикам при отладке и расследовании проблем мы ввели в платформу некоторые дополнительные возможности.
В версии 8.3.18 планируется следующее изменение: параметр командной строки /Out на ОС Windows будет выводить данные в файл в кодировке UTF-8 (поведение параметра будет унифицировано для всех поддерживаемых ОС).
Команда «Искать везде» используется для глобального поиска выделенного текста в поле ввода, в текстовом и форматированном документе, а также используется для поиска значения текущей ячейки в таблице или табличном документе.
Мы решили поменять сочетание клавиш для этой команды с Ctrl+Shift+C на Alt+L и скоро выпустим это изменение.
Это вызвано тем, что в типовых конфигурациях сочетание клавиш Ctrl+Shift+C используется для копирования в буфер обмена выделенных строк в таблице.
Нами принято решение, что изменение значений параметров:
- Критический объем памяти процессов
- Временно допустимый объем памяти процессов
- Предел превышения (секунд) временно допустимого объема памяти процессов
можно будет делать с лицензиями уровня ПРОФ.
При этом поведение для опции "Временно допустимый объем памяти процессов" для ПРОФ и КОРП лицензий будет отличаться.
С лицензиями ПРОФ изменение параметра будет действовать только на перезапуск процессов, а с лицензиями КОРП – и на перезапуск процессов, и на прерывание объёмных клиентских вызовов сервера.
Сейчас в версии 8.3.15 эти опции доступны только с лицензиями уровня КОРП.
Изменение попадет в следующую финальную версию 8.3.15 (после 8.3.15.1656).
В версии 8.3.16 появится функциональность, позволяющая программно наполнять контекстное меню планировщика, передавая при этом информацию об области, на которой был произведен клик, будь то элемент, заголовок измерения, пустая область элементов и т.п. Это позволит разработчику конфигурации более гибко настраивать содержимое контекстного меню в зависимости от того, на чем был произведен клик. Появится также возможность задавать действие по умолчанию при нажатии левой кнопкой мыши в зависимости от области нажатия.
1. Как создать расширение конфигурации.
1с расширение конфигурации как работать? Все очень просто, первым делом необходимо понять, какой функционал из расширения можно использовать. Разделить можно на две части:
• Совместимость с 8.3.6 по 8.3.8 – 1с расширения конфигурации работают только с модулями форм, отчетов, обработок, ролями и подсистемами.
• Совместимость с 8.3.9 и выше – в расширения добавляется еще работа с модулями объектов, менеджерами объектов и общие модули (не все).
Совместимость находится в свойствах конфигурации
Создаем новое расширение в конфигураторе в окне «Расширения конфигурации», меню Конфигурация -> Расширения конфигурации.
Для полноценной работы с расширением сразу рекомендую снять безопасный режим с расширения
2. Как перенести метаданные для нашего расширения
Расширение конфигурации 1с 8.3 имеет функционал переноса метаданных из основной конфигурации в свою. Это необходимо, чтобы расширение видело те объекты основной конфигурации, с которыми будет работать, и при необходимости будет проверять при подключении.
Добавление метаданных происходит следующим образом
В расширение конфигурации общий модуль можно добавить таким же самым способом и работать с ним как с модулем объекта.
3. Добавляем код
1с работа с расширениями конфигурации не может обойтись без строчки кода. Для этого мы поставим две задачи, которые будем решать с помощью расширений.
Первая доработка будет изменять форму документа, а именно – будет отображать задолженность по договору.
Добавляем в расширении в форме документа вызовы на процедуры «ПриСозданииНаСервере» и «КонтрагентПриИзменении». Для обоих случаев тип вызова выбираем «после».
Дописываем код на получение остатков и в итоге получаем в форме следующие процедуры.
Листинг модуля формы:
Результат работы с и без расширения:
Вторая доработка требует неким образом модифицировать движения документа при проведении. Для примера в регистре накопления «Расчеты с контрагентом» поменяем все суммы на цифру 1.
Расширение конфигурации 8.3 может использовать три типа вызова: перед, после, вместо. В нашем случае будет использоваться модуль объекта документа. Для решения задачи достаточно было бы добавить вызов процедуры «ОбработкаПроведения» с типом вызова «после». Но в документе «Реализация товаров и услуг» используется принудительная запись, говорящая нам о том, что дальнейшие изменения с движением документа не запишутся, если их принудительно не записать. Но выберем другое решение, полностью заменим процедуру «ОбработкаПроведения».
Создаем вызов процедуры «ОбработкаПроведения» с типом вызова «вместо».
Копируем полностью код основной процедуры и перед принудительной записью добавляем наши строки корректировки движения.
Листинг модуля объекта:
Данное решение имеет очень большой минус – это полностью копирование кода из основной процедуры. Но данный пример наглядно показывает способ работы по полному замещению основной процедуры на процедуру из расширения.
Результат работы с и без расширения:
Как результат расширения неплохо помогают с задачей изменить функционал, но не снимать конфигурацию с поддержки.
Пример расширения конфигурации можно скачать ЗДЕСЬ.
разработчик компании ООО “Кодерлайн”