Вспомогательные функции в 1С
12.10.2016
Сергей Кулажевский
|
Добрый день, уважаемые читатели. Хочу рассказать, не столько о важных, сколько о вспомогательных функциях, которые упрощают работу с «1С:Предприятие». Эта статья более ориентирована на программистов 1с, но думаю, будет полезна и новичкам.
|
|
|
|
|
|
Содержание
|
|
|
|
|
|
1. Как встроить часто используемые обработки в интерфейс 1С
2. Как заменить стандартную обработки 1С собственным усовершенствованным вариантом
3. Список стандартных обработок 1С
4. Горячие клавиши. Полезные сочетания клавиш, облегчающие работу в 1С
5. Быстрое отображение объектов, захваченных в хранилище
6. Инструменты рефакторинга в 1С
6.1. Команда – “Выделить фрагмент”
6.2. Команда – “Переименовать”
6.3. Команда – “Преобразовать модальный вызов”
6.4. Команда – “Преобразовать в асинхронную процедуру”
6.5. Команда – “Выделить в асинхронную процедуру”
|
|
|
|
|
|
Как встроить часто используемые обработки в интерфейс
|
|
|
|
|
|
Наверняка каждый сталкивался со стандартными обработками, которые встроены во все типовые решения, однако постоянно вызывать их через меню «Все функции» не всегда удобно. Поэтому, конечно, будет более удобно встроить часто используемые обработки в интерфейс, где их можно быстро вызвать. Как это сделать? Очень просто. Приведу пример на обработке "Поиск ссылок на объекты".
Добавляем в конфигурацию новую команду и в модуле команды прописываем текст:
|
|
|
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПодключитьВнешнююОбработкуНаСервере();
ОткрытьФорму("ВнешняяОбработка.StandardFindByRef.Форма");
КонецПроцедуры
&НаСервере
Процедура ПодключитьВнешнююОбработкуНаСервере()
ВнешниеОбработки.Подключить("v8res://mngbase/StandardFindByRef.epf", "StandardFindByRef", false);
КонецПроцедуры
|
|
|
|
|
|
Список стандартных обработок
|
|
|
|
|
|
1. Активные пользователи - "v8res://mngbase/StandardActiveUsers.epf";
2. Журнал регистрации - "v8res://mngbase/StandardEventLog.epf";
3. Поиск ссылок на объект - "v8res://mngbase/StandardFindByRef.epf";
4. Проведение документов - "v8res://mngbase/StandardDocumentsPosting.epf";
5. Удаление помеченных объектов - "v8res://mngbase/StandardDeleteMarkedObjects.epf";
6. Управление внешними источниками данных - "v8res://mngbase/StandardExternalDataSourcesManagement.epf";
7. Управление итогами - "v8res://mngbase/StandardTotalsManagement.epf";
8. Управление полнотекстовым поиском - "v8res://mngbase/StandardFullTextSearchManagement.epf";
9. Управление расширениями конфигурации - "v8res://mngbase/StandardExtensionsManagement.epf";
|
|
|
|
|
|
Как заменить стандартную обработки 1С собственным усовершенствованным вариантом
|
|
|
|
|
|
Иногда нас не совсем удовлетворяет функционал стандартной обработки, например, мы хотим добавить дополнительные фильтры, дополнительные условия и т.д. В данном случае мы можем сделать подмену стандартной обработки нашим усовершенствованным вариантом. Также приведу пример кода на обработке "Поиск ссылок на объекты".
|
|
|
Процедура ПереопределитьСтандарнуюОбработку(НаименованиеОбработки,ПутьКНовойОбр)
ДвоичныеДанные = Новый ДвоичныеДанные("C:\ВнешняяОбработка.epf");
АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ВнешниеОбработки.Подключить(АдресХранилища, "StandardFindByRef", false);
КонецПроцедуры
|
|
|
|
|
|
Следует помнить, что в данном коде мы используем именно имя заменяемой обработки. Для обработки "Поиск ссылок на объекты" наименование будет – «StandardFindByRef»
|
|
|
|
|
|
Горячие клавиши. Полезные сочетания клавиш, облегчающие работу в 1С
|
|
|
|
|
|
Каждый программист при написании либо отладке программы для того, чтобы зайти в функцию зачастую использует горячую клавишу «F12». Что же делать, когда нам нужно вернуться в момент вызова функции? Для этого нажмите сочетание клавиш «Ctrl»+ «-».
- Пройдемся еще по нескольким удобным сочетаниям клавиш:Оказавшись в начале цикла или условия, для перехода в конец этого цикла или условия, нажмите сочетание клавиш «Ctrl» + «]». Нажатие «Ctrl» + « [» переместит обратно в начало этого цикла или условия.
- Чтобы быстро свернуть или развернуть все циклы, условия, процедуры, функции, нажмите сочетания клавиш «Ctrl» + «Shift» + NumLock «-» или «Ctrl» + «Shift» +NumLock «+» соответственно.
|
|
|
|
|
|
Быстрое отображение объектов, захваченных в хранилище
|
|
|
|
|
|
Рано или поздно любой разработчик на больших проектах сталкивается с хранилищем конфигурации. Захваченных объектов бывает много, и иногда нужно быстро найти нужные захваченные объекты. Для этого в командной панели над самим деревом конфигурации доступна кнопка “Захваченные объекты”
|
|
|
|
|
|
Теперь фильтрация выполняется непосредственно в дереве конфигурации, не нужно открывать отдельное окно для работы с хранилищем, в нем устанавливать отборы на захваченные объекты.
|
|
|
|
|
|
Инструменты рефакторинга в 1С
|
|
|
|
|
|
Не могу обойти стороной сборник функций, которые появились не так давно, однако быстро завоевали интерес – это инструменты рефакторинга. Когда над конфигурацией работает группа из нескольких разработчиков, необходимо следить за понятностью кода, следованием общим стандартам. Контролировать это постоянно не всегда возможно, поэтому периодически проводятся работы по улучшению читаемости кода, пересмотру уже реализованных фрагментов. Такие действия именуются рефакторингом кода. Это процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы. Кроме этого, разработчикам предстоит выполнить в своих конфигурациях работу по отказу от модальности — устранению модальных вызовов. Поэтому в конфигураторе платформы 8.3.5 появились механизмы рефакторинга кода и инструменты работы с модальными вызовами. Они доступны в контекстном меню текстового редактора конфигуратора в отдельном меню
Рефакторинг
|
|
|
|
|
|
|
|
|
Команда – “Выделить фрагмент”
|
|
|
|
|
|
Эта команда преобразует выделенный участок кода в отдельную процедуру или функцию. Если процедура, внутри которой расположен выделенный участок, содержит директиву компиляции (&НаКлиенте, &НаСервере и т.д.), то создаваемая процедура или функция будет иметь такую же директиву компиляции. Если выделенный участок кода может быть расположен в правой части оператора присваивания, то будет создаваться функция.
|
|
|
|
|
|
Команда – “Переименовать”
|
|
|
|
|
|
Эта команда позволяет изменить имя переменной или процедуры (функции) во всех местах, где они фактически используются. Если все вхождения переменной или метода определены однозначно, то система предложит указать новое имя и выполнит замену везде, где встречается этот идентификатор
|
|
|
|
|
|
Команда – “Преобразовать модальный вызов”
|
|
|
|
|
|
Эта команда преобразует выделенный фрагмент кода, содержащий модальный метод, с использованием его асинхронного аналога.
|
|
|
|
|
|
Команда – “Преобразовать в асинхронную процедуру”
|
|
|
|
|
|
Если модальный вызов расположен внутри процедуры, которая в свою очередь располагается внутри еще одной процедуры, то в таком случае весь вызов процедуры с модальным методом внутри будет модальным. А значит, его надо заменить на “асинхронный аналог”, только не тот, который существует во встроенном языке, а на наш собственный, разработанный метод.
|
|
|
|
|
|
Команда – “Выделить в асинхронную процедуру”
|
|
|
|
|
|
Эта команда преобразует выделенный участок кода в процедуру или функцию, преобразуя при этом выделяемый метод к асинхронному виду. В отличие от предыдущего пункта данная команда является “составной”: сначала выделенный участок кода переносится в новую процедуру, имя которой пользователь вводит в диалоговом окне. Затем выполняются действия, аналогичные тому, если бы пользователь щелкнул на заголовке только что созданной процедуры правой кнопкой мыши, а затем нажал “Преобразовать в асинхронную процедуру».
В завершении статьи я лишь хотел бы заострить внимание на том, что платформа 1С не стоит на месте и постоянно развивается. Фирма 1С не только обеспечивает полный, динамически настраиваемый функционал, чем создает удобство рядовому пользователю, а и заботится о разработчиках, избавляя от рутинных операций и делая их работу более продуктивной.
|
|
|
|
|
|
Сергей Кулажевским,
разработчик 1С компании ООО “Кодерлайн”
|
|