Какие виды программных модулей существуют в 1с предприятие 8

Обновлено: 07.07.2024

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

Обычно программный модуль состоит из трех разделов:

  • область объявления переменных;
  • область описания процедур и функций;
  • основной текст программы.

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

Перем Фамилия Экспорт; / /это глобальная переменная
Перем Имя , Отчество ; //это переменная модуля
Перем ФИО ; //это тоже переменная модуля и к ней можно обращаться

//из любой процедуры и функции нашего модуля

Процедура Процедура1 ( )
Перем Итог ; / /Итог это локальная переменная (переменная процедуры)

Итог = Фамилия + " " + Имя + " " + Отчество ;

Возврат( Фамилия + " " + Имя );

Фамилия = "Иванов" ;
Имя = "Иван";
Отчество = "Иванович" ;

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

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

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

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

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

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

Модуль приложения (управляемого или обычного)

  • может содержать все 3 области
  • выполняется на стороне клиента
  • располагается в корневом разделе конфигурации

В модуле приложения описываются процедуры (обработчики) событий, которые инициализируются при старте и окончании работы системы. Например, при начале работы приложения можно обновить какие-либо данные конфигурации, а при завершении работы - поинтересоваться, стоит ли вообще выходить из программы. Кроме того, в данном модуле перехватываются события от внешнего оборудования, например, торгового или фискального. Стоит отметить, что модуль приложения выполняется только в случае интерактивного запуска приложения, то есть когда запускается окно программы. Этого не происходит, если приложение запускается в режиме com- соединения.
В платформе 1С 8 существует два различных модуля приложения. Это модуль Обычного приложения и модуль Управляемого приложения. Они срабатывают при запуске различных клиентов. Так, модуль Управляемого приложения срабатывает при запуске веб-клиента, тонкого клиента и толстого клиента в режиме управляемого приложения. А модуль обычного приложения срабатывает при запуске толстого клиента в режиме обычного приложения. Настройка режима запуска приложения задается в свойстве конфигурации "Основной режим запуска".

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

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

Модуль внешнего соединения

  • может содержать все 3 области
  • выполняется на стороне сервера
  • располагается в корневом разделе конфигурации

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

Модуль сеанса

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

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

В модуле сеанса существует одно единственное событие «УстановкаПараметровСеанса», которое выполняется самым первым, даже раньше события модуля приложения ПередНачаломРаботыСистемы. В нем не доступны раздел объявления переменных и раздел основной программы. А так же нельзя объявлять экспортные методы. Модуль компилируется на стороне сервера.

Общие модули

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

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

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

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

Модуль формы

  • может содержать все 3 области
  • выполняется на стороне сервера и клиента

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

Структура управляемой формы содержит раздел объявления переменных, описания процедур и функций и основной текст программы (выполняется в момент инициализации формы). К стандартным событиям формы можем обратиться через список ожидаемых процедур и функций формы (Ctrl+Alt+P), либо через палитру свойств самой формы.

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

Модуль объекта

  • может содержать все 3 области
  • выполняется на стороне сервера

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

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

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

  • может содержать все 3 области
  • выполняется на стороне сервера

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

Модуль команды

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

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

Все модули, кроме Общих и Модуля сеанса, структурированы следующим образом:

  • раздел объявления переменных
  • раздел процедур и функций
  • раздел основной программы

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

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

Вопрос 06.01 экзамена 1С:Профессионал по платформе. Какие виды программных модулей существуют в "1С:Предприятие 8"?

  1. Общие модули, модуль сеанса, модули форм
  2. Модуль обычного приложения, модуль управляемого приложения, общие модули, модуль сеанса, модули объектов, модули форм
  3. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули и модули форм
  4. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм и модули макетов
  5. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, модуль команды, общие модули, модули менеджера, модули форм, модули объектов и модули набора записей
  6. Модуль приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм, модули макетов, модули объектов и модули набора записей

Вопрос 06.07 экзамена 1С:Профессионал по платформе. Какой должен быть порядок определения процедур и функций в программном модуле?

  1. Описание функций должно идти выше описания процедур и раздела основной программы
  2. Описание вызываемых процедур и функций должно идти выше вызывающих
  3. Порядок следования процедур и функций не имеет значения
  4. Порядок следования процедур и функций зависит от типа модуля

Правильный ответ третий, неважно, как процедуры и функции расположены внутри своего раздела.

Вопрос 06.09 экзамена 1С:Профессионал по платформе. Только определения процедур и функций может содержать только следующий вид модуля:

Палитра свойств общего модуля 1С

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

Примеры общего модуля 1С:

  • расчет количества разницы рабочих дней;
  • пересчет курсов валют;
  • пересчет количества/цены/суммы в табличной части; проведения по какому-то регистру, и др.

Особенности объекта "Общий модуль":

  1. содержат только раздел процедур и функций;
  2. не могут содержать объявления переменных ;
  3. нет раздела основной программы
  4. экспортируемые переменные, процедуры и функции модуля приложения не доступны в общих модулях;
  5. экспортируемые процедуры и функции общих модулей доступны :
    • в модуле приложения,
    • других общих модулях,
    • остальных программных модулях.
  6. в конфигурации общих модулей может быть несколько (в отличие от модуля приложения, единственного для конфигурации ).

Палитра свойств объекта "Общие модули"

Палитра свойств общего модуля 1С


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

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

"Клиент (управляемое приложение)" — если флаг установлен, методы общего модуля будут доступны для тонкого клиента, веб-клиента, а также для толстого клиента в режиме управляемого приложения.

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

"Сервер" — если флаг установлен, процедуры и функции данного общего модуля могут быть выполнены на сервере (в клиент-серверном варианте).

"Внешнее соединение" — если флаг установлен, программные коды данного общего модуля могут быть выполнены при подключении внешним источником (например, COM).

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

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

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

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

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

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

Опция может принимать следующие значения:

  1. Не использовать — отключение;
  2. На время вызова — на время выполнения определенной процедуры;
  3. На время сеанса — пока пользователь не закрыл сеанс (программу).
Особенности свойства "Повторное использование возвращаемых значений"

Особенности сохранения результатов вызова:

  • если функция выполняется на сервере и вызывается из серверного кода, то значения параметров и результат вызова запоминаются для текущего сеанса на стороне сервера;
  • если функция выполняется на толстом или тонком клиенте, то значения параметров и результатов вызова запоминается на стороне клиента;
  • если функция выполняется на стороне сервера, а вызывается из клиентского кода, то значения параметров вызова запоминаются и на стороне клиента и на стороне сервера.

Сохраненные значения удаляются:

  1. если свойство установлено в значение "На время вызова":
    • на стороне сервера – при возврате управления с сервера;
    • на стороне клиента – при завершении работы процедуры или функции встроенного языка верхнего уровня (вызванной системой из интерфейса, а не из другой процедуры или функции встроенного языка);
  2. если свойство общего модуля установлено в значение "На время сеанса":
    • на стороне сервера – при окончании сеанса;
    • на стороне клиента – при закрытии клиентского приложения.

Сохраненные значения могут быть удалены:

  1. после долгого неиспользования (более 5 (20?) минут);
  2. при нехватке оперативной памяти в рабочем процессе сервера;
  3. при перезапуске рабочего процесса;
  4. при переключении клиента на другой рабочий процесс.

После удаления значений вызов экспортной функции выполняется как при первом вызове!

Рекомендации по выставлению флагов общего модуля 1С:

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

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

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

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

Прочитав статью, вы узнаете:

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

Применимость

В статье рассматривается возможности конфигуратора на примере платформы «1С:Предприятие» редакций 1C 8.3.5 – 8.3.11, поэтому вся информация актуальна.

Улучшения в конфигураторе платформы «1С:Предприятие 8.3»

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

Контекстная подсказка

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

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

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

Контекстная подсказка

Для увеличения нажмите на изображение.

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

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

Автоматическая подсказка при наборе

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

Параметры процедур и функций в контекстной подсказке

Для увеличения нажмите на изображение.

Напомним, что существует документ “Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8”, в котором описаны рекомендации фирмы “1С” к разрабатываемому программному коду.

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

И конфигуратор анализирует комментарии, написанные по таким правилам, и использует их для отображения контекстной подсказки!

Анализ комментариев для отображения посказки в конфигураторе

Для увеличения нажмите на изображение.

Чтобы избежать ручного написания комментария по приведенному формату, в платформе предусмотрены шаблоны текста, ознакомиться с которыми можно, нажав сочетание клавиш Ctrl + Shift + T.

Шаблон с наименованием “Процедура (с заголовком)” как раз и формирует правильный комментарий.

Чтобы этот шаблон сработал, достаточно набрать в редакторе символы “Проц”, нажать Ctrl+Q и выбрать нужный шаблон из предлагаемого системой списка.

Шаблоны текста для формирования комментария

Группировка строк программного кода

Модули типовых решений на платформе “1С:Предприятие 8” достаточно объемные, содержат достаточно большое количество строк кода.

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

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

Группировка операторов и процедур

Для увеличения нажмите на изображение.

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

Настройка группировки строк программного кода

Выделение цветом конструкций

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

Подсветка конструкций

Посветка конструкций в конфигураторе

Для увеличения нажмите на изображение.

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

Выделение цветом скобок

Для увеличения нажмите на изображение.

Параметры - Текущий идентификатор

Подсветка программного кода

Для увеличения нажмите на изображение.

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

Параметры - Выбранный идентификатор

Выделение идентификаторов в тексте модуля

Для увеличения нажмите на изображение.

При выполнении поиска в тексте модуля при помощи строки поиска или после нажатия сочетания клавиш Ctrl + F найденное слово выделяется, а все такие же найденные слова подсвечиваются.

Подсветка найденных слов

Для увеличения нажмите на изображение.

Объединение ячеек табличного документа

Ранее ячейки табличного документа можно было объединить только с помощью пункта меню или соответствующей кнопки командной панели.

Теперь появилось сочетание клавиш Ctrl + M, при нажатии которого и происходит объединение ячеек табличного документа. Также операция “Объединить” доступна в контекстном меню табличного документа.

Объединение ячеек в таблице конфигуратора

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

Новые возможности для разработчика в «1С:Предприятие 8.3.5»

Поиск в конфигураторе

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

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

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

  • набирать с клавиатуры название объекта, при этом система будет искать по совпадению наименования с первой буквы названия, но только в развернутых строках дерева конфигурации;
  • при помощи сочетания клавиш Ctrl+F открыть окно поиска:

Поиск объектов метаданных

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

В платформе 8.3.5 появилось новое поле поиска, расположенное над деревом конфигурации:

Новое поле поиска в конфигурации

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

Причем дерево конфигурации фильтруется “на лету”: в нем остаются только объекты, удовлетворяющие введенному фильтру.

Поиск в конфигурации

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

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

Если кроме того искомая строка присутствует в имени объекта (не в синониме, не в комментарии), то такие вхождения выделяются красным цветом.

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

На приведенном выше рисунке реквизит ИдентификаторПользователяИБ справочника Пользователи отображается в дереве, т.к. его синоним содержит подстроку “пост”:

Объект поиска

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

Поиск по нескольким подстрокам

Аналогичная строка поиска появилось и у окна, содержащего набор свойств выделенного объекта (палитра свойств):

Поиск в палитре свойств

Поиск в палитре свойств

Найденные свойства будут выведены общим списком, без разбивки по категориям.

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

Переключиться между режимами имя/представление можно с помощью команды “Отображать имена свойств” контекстного меню:

Отображать имена свойств

Такая же строка поиска была добавлена в окне выбора типа данных:

Поиск в окне Редактирование типа данных

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

Поиск в окне Выбор объекта метаданных

Быстрое отображение объектов подсистемы

Для быстрого отображения объектов, входящих в одну конкретную подсистему, в контекстном меню появился новый пункт “Объекты подсистемы”:

Быстрое отображение объектов подсистемы

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

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

Отбор по подсистемам в старой версии платформы

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

А, следовательно, это маленькое удобное новшество сэкономит время разработчика.

Быстрое отображение объектов, захваченных в хранилище

Если конфигурация подключена к хранилищу, то в командной панели над самим деревом конфигурации доступна кнопка “Захваченные объекты”:

Фильтр Захваченные объекты

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

Инструменты рефакторинга

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

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

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

Поэтому в конфигураторе платформы 8.3.5 появились механизмы рефакторинга кода и инструменты работы с модальными вызовами.

Они доступны в контекстном меню текстового редактора конфигуратора в отдельном меню Рефакторинг.

Рефакторинг кода

Для увеличения нажмите на изображение.

Рассмотрим подробнее реализованные инструменты рефакторинга.

1. Выделить фрагмент

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

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

Читайте также: