объединение условий. Прерывания цикла. объединение условий Циклы с использование логического выражения

21
//Функция формирует удобное для чтения представление значений. // Примеры форматирования чисел ЗначФормат = Формат(123456.789, " ЧЦ=10; ЧДЦ=2"); // ЗначФормат = " 123 456,79" ЗначФормат = Формат(123456.789, " ЧГ=0; ЧДЦ=2"); // Знач 16
Полнотекстовый поиск - позволит найти текстовую информацию, размещенную практически в любом месте используемой конфигурации. При этом искать нужные данные можно либо по всей конфигурации в целом, либо сузив... 8
" Момент времени" - виртуальное поле, не хранится в базе данных. Содержит объект МоментВремени (который включает в себя дату и ССЫЛКУ НА ДОКУМЕНТ) В 7.7 было понятие ПозицияДокумента, а в 8.x Момент времени Для получения... 6
Для 8.х НайтиПоСсылкам (FindDataByRef) Синтаксис: НайтиПоСсылкам (Список ссылок) Параметры: Список ссылок Обязательный Тип: Массив. Массив со списком ссылок на объекты, ссылки на которые нужно найти. ...

Описание:

Оператор цикла Для предназначен для циклического повторения операторов, находящихся внутри конструкции Цикл – КонецЦикла .

Перед началом выполнения цикла значение Выражение 1 присваивается переменной Имя_переменной . Значение Имя_переменной автоматически увеличивается при каждом проходе цикла. Величина приращения счетчика при каждом выполнении цикла равна 1.

Цикл выполняется, пока значение переменной Имя_переменной меньше или равно значению Выражение 2 . Условие выполнения цикла всегда проверяется в начале, перед выполнением цикла.

Синтаксис:

Параметры:

Имя_переменной Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается на 1 при каждом повторении цикла. Так называемый счетчик цикла. Выражение 1 Числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла. По Синтаксическая связка для параметра Выражение 2 . Выражение 2 Максимальное значение счетчика цикла. Когда переменная Имя_переменной становится больше чем Выражение 2, выполнение оператора цикла Для прекращается. Цикл Операторы, следующие за ключевым словом Цикл выполняются, пока значение переменной Имя_переменной меньше или равно значения Выражение 2 .

Цикл Для Каждого

Описание:

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

Синтаксис:

Параметры:

Имя_переменной_1 Переменная, которой при каждом повторении цикла присваивается значение очередного элемента коллекции. Из Синтаксическая связка для параметра Имя_переменной_2 . Имя_переменной_2 Переменная или выражение, предоставляющее коллекцию. Элементы этой коллекции будут присваиваться параметру Имя_переменной_1 . Цикл Операторы, следующие за ключевым словом Цикл выполняются для каждого элемента коллекции. // Операторы Исполняемый оператор или последовательность таких операторов. Прервать Позволяет прервать выполнение цикла в любой точке. После выполнение этого оператора управление передается оператору, следующему за ключевым словом КонецЦикла . Продолжить Немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Операторы, следующие в теле цикла за ним, на данной итерации обхода не выполняются. КонецЦикла Ключевое слово, которое завершает структуру оператора цикла.

Цикл Пока

Описание:

Оператор цикла Пока предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл – КонецЦикла . Цикл выполняется, пока логическое выражение равно Истина . Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Синтаксис:

Параметры:

Логическое выражение Логическое выражение. Цикл Операторы, следующие за ключевым словом Цикл , выполняются, пока результат логического выражения равен Истина . // Операторы Исполняемый оператор или последовательность таких операторов. Прервать Позволяет прервать выполнение цикла в любой точке. После выполнение этого оператора управление передается оператору, следующему за ключевым словом КонецЦикла . Продолжить Немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Операторы, следующие в теле цикла за ним, на данной итерации обхода не выполняются. КонецЦикла Ключевое слово, которое завершает структуру оператора цикла.
12 декабря 2014 в 13:13

Какой цикл быстрее? Тестируем 1С

  • Высокая производительность ,
  • Ненормальное программирование ,
  • Программирование

Занимаюсь программированием 1С уже несколько лет, и тут посетила мысль - «А не пройти ли какой-нибудь обучающий курс, вдруг в знаниях есть какие-то пробелы, о которых раньше даже и не подозревал»? Сказано-сделано. Сижу, слушаю курс, дохожу до циклических операторов и тут вторая мысль (да, не часто они у меня появляются) - «А какой цикл быстрее»? Надо бы проверить.
Итак, я нашел пять способов , как можно организовать цикл средствами 1С.

Первый вид цикла, назовем его условно «ДляПо» выглядит так:

Для н = 0 по КоличествоИтераций Цикл КакиеТоДействия(); КонецЦикла;
Второй вид «ДляКаждого» :

Для Каждого ЭлементКоллекции из Коллекция Цикл КакиеТоДействия(); КонецЦикла;
Третий «Пока» :

Пока н <> КоличествоИтераций Цикл КакиеТоДействия(); н = н + 1; КонецЦикла;
Далее вспомнил ассемблерную молодость - цикл «Если» :

~НачалоЦикла: Если н <> КоличествоИтераций Тогда КакиеТоДействия(); н = н + 1; Перейти ~НачалоЦикла; КонецЕсли;
Ну и напоследок «Рекурсия»

Процедура РекурсивныйЦикл(н, КоличествоИтераций) КакиеТоДействия(); Если н <> КоличествоИтераций Тогда РекурсивныйЦикл(н+1, КоличествоИтераций); КонецЕсли; КонецПроцедуры
Естественно, что относить рекурсию к циклам не совсем корректно, но тем ни менее с её помощью можно добиться похожих результатов. Сразу оговорюсь, что в дальнейшем тестировании рекурсия не участвовала. Во первых все тесты проводились при 1 000 000 итераций, а рекурсия выпадает уже при 2 000. Во вторых скорость рекурсии в десятки раз меньше, чем скорость остальных циклов.

Последнее отступление. Одним из условий было выполнение в цикле каких-либо действий. Во первых пустой цикл используется очень редко. Во вторых цикл «ДляКаждого» используется для какой-либо коллекции, а значит и остальные циклы должны работать с коллекцией, чтобы тестирование проходило в одинаковых условиях.

Ну что ж, поехали. В качестве тела цикла использовалось чтение из заранее заполненного массива.


или, при использовании цикла «ДляКаждого»

ПриемникТестовогоЗначения = Элем;
Тестирование проводилось на платформе 8.3.5.1231 для трех видов интерфейса (Обычное приложение, Управляемое приложение и Такси).
Числа это время в миллисекундах полученное с помощью функции ТекущаяУниверсальнаяДатаВМиллисекундах() , которую я вызывал до цикла и после его завершения. Числа дробные, потому что я использовал среднее арифметическое пяти замеров. Почему я не использовал Замер производительности? У меня не было цели замерить скорость каждой строчки кода, только скорость циклов с одинаковым результатом работы.

Казалось бы и все, но - тестировать так тестировать!
Результат для платформы 8.2.19.106
В среднем платформа 8.2 на 25% быстрее, чем 8.3. Я немножко не ожидал такой разницы и решил провести тест на другой машине. Результаты приводить не буду, в можете сами нагенерировать их с помощью вот этой конфигурации. Скажу только, что там 8.2 была быстрее процентов на 20.

Почему? Не знаю, дезасемблировать ядро в мои планы не входило, но в замер производительности я все же заглянул. Оказалось, что сами циклические операции в 8.3 проходят несколько быстрее, чем в 8.2. Но на строке
ПриемникТестовогоЗначения = ТестовыйМассив.Получить(н);
то есть при считывании элемента коллекции в переменную происходит значительное снижение производительность.

В итоге:
К чему всё это? Для себя я сделал несколько выводов:

1. Если есть возможность использовать специализированный цикл - «ДляКаждого», то лучше использовать его. Кстати, сам по себе он отрабатывает дольше чем другие циклы, но скорость доступа к элементу коллекции у него на много выше.
2. Если заранее знаешь количество итераций - используй «ДляПо». «Пока» отработает медленнее.
3. Если использовать цикл «Если» - другие программисты тебя явно не поймут.

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

Таблица 1

Действие

Сочетания клавиш

Как работает программа

Создать новый документ

Открыть существующий документ

Открыть калькулятор

Открывает калькулятор

Показать свойства

Alt + Enter
Ctrl + E

Открыть окно сообщений

Закрыть окно сообщений

Ctrl + Shift + Z

Открыть табло

Открывает табло

Открыть справку

Открывает справку

Вызвать индекс справки

Shift + Alt + F1

Вызывает индекс справки

"Горячие" клавиши: глобальные действия

Глобальные действия - это действия, которые вы можете выполнять в любом состоянии программы. При этом не важно, что на данный момент открыто в "1С:Предприятии". Главное, чтобы приложение не было занято выполнением какой-либо задачи.

Глобальные действия - это действия, которые можно вызывать в любом месте запущенной платформы "1С:Предприятие 8". Независимо от того, что именно происходит в запущенной конфигурации, смысл глобальных действий не меняется (например, нажатие Ctrl+N всегда будет вызывать диалог создания нового документа).

Таблица 1

"Горячие" клавиши для глобальных действий

Действие

Сочетания клавиш

Как работает программа

Создать новый документ

Открывает окно, в котором будет предложено выбрать тип создаваемого нового документа в различных форматах - например, в текстовом, табличном или HTML

Открыть существующий документ

Открывает стандартное диалоговое окно "Открыть", доступное через меню "Файл/Открыть…"

Активизация поля поиска в командной панели

Устанавливает курсор в это поле

Открыть калькулятор

Открывает калькулятор

Показать свойства

Alt + Enter
Ctrl + E

В зависимости от того, на что установлен курсор, открывает соответствующую палитру свойств этого объекта или элемента. Полезно при работе с таблицами, текстом, HTML и т. п.

Открыть окно сообщений

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

Закрыть окно сообщений

Ctrl + Shift + Z

Закрывает окно сообщений, когда они больше не нужны. Обратите внимание: комбинация подобрана так, что ее легко нажать одной рукой

Открыть табло

Открывает табло

Открыть справку

Открывает справку

Вызвать индекс справки

Shift + Alt + F1

Вызывает индекс справки

"Горячие" клавиши: общие действия

Общие действия - действия, которые имеют один и тот же смысл в различных объектах конфигурации, но поведение платформы "1С:Предприятие 8" меняется в зависимости от того где именно вы используете то или иное общее действие. Например, нажатие на клавишу "Del", помечает на удаление текущий элемент справочника, если вы находитесь в окне списка элементов справочника. Или удаляет содержимое текущей ячейки табличного документа, если вы его редактируете.

Таблица 2

"Горячие" клавиши для общих действий

Действие

Сочетания клавиш

Как работает программа

Удаляет элемент под курсором (текущий элемент) или выделенную группу элементов

Добавить

Позволяет добавить новый элемент

Сохраняет активный документ

Печать активного документа

Вызывает диалог печати для активного документа

Печать на текущий принтер

Ctrl + Shift + P

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

Копировать в буфер обмена

Ctrl + C
Ctrl + Ins

Копирует необходимый элемент или выделенную группу элементов в буфер обмена ОС Windows

Вырезать в буфер обмена

Ctrl + X
Shift + Del

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

Вставить из буфера обмена

Ctrl + V
Shift + Ins

Вставляет в место, отмеченное курсором находящиеся данные из буфера обмена ОС Windows

Добавить к буферу обмена как число

Shift + Num + (*)

Используется для числовых значений

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

Shift + Num + (+)

Используется для числовых значений. Операция сложения с данными в буфере обмена

Вычесть из буфера обмена

Shift + Num + (-)

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

Выделить все

Отменить последнее действие

Ctrl + Z
Alt + BackSpace

Вернуть отмененное действие

Ctrl + Y
Shift + Alt + BackSpace

Найти следующий

Найти следующий выделенный

Найти предыдущий

Найти предыдущий выделенный

Ctrl + Shift + F3

Заменить

Ctrl + Num + (-)

Выделить все

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

Отменить последнее действие

Ctrl + Z
Alt + BackSpace

Отменяет последнее совершенное действие

Вернуть отмененное действие

Ctrl + Y
Shift + Alt + BackSpace

Позволяет отменить "Ctrl + Z", иными словами - вернуть то, что вы сделали до нажатия отмены последнего совершенного действия

Открывает диалог настройки параметров поиска в активном объекте конфигурации и выполнения этого поиска

Найти следующий

Находит следующий элемент, соответствующий указанным в настройках поиска параметрам

Найти следующий выделенный

Находит следующий элемент, соответствующий тому, который вы выделили (например, на котором установлен курсор)

Найти предыдущий

Находит предыдущий элемент, соответствующий указанным в настройках поиска параметрам

Найти предыдущий выделенный

Ctrl + Shift + F3

Находит предыдущий элемент, соответствующий тому, который вы выделили

Заменить

Открывает диалог поиска и замены значений (там, где это разрешено)

Свернуть (узел дерева, группу табличного документа, группировку модуля)

Ctrl + Num + (-)

Используется там, где доступны узлы деревьев, отмеченные значками "+" или "-"

Свернуть (узел дерева, группу табличного документа, группировку модуля) и все подчиненные

Ctrl + Alt + Num + (-)

Свернуть (все узлы дерева, группы табличного документа, группировки модуля)

Ctrl + Shift + Num + (-)

Развернуть (узел дерева, группу табличного документа, группировку модуля)

Ctrl + Num + (+)

Развернуть (узел дерева, группу табличного документа, группировку модуля) и все подчиненные

Ctrl + Alt + Num + (+)

Развернуть (все узлы дерева, группы табличного документа, группировки модуля)

Ctrl + Shift + Num + (+)

Следующая страница

Ctrl + Page Down
Ctrl + Alt + F

Быстрое листание активного документа

Предыдущая страница

Ctrl + Page Up
Ctrl + Alt + B

Включить/выключить жирность

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

Включить/выключить курсив

Включить/выключить подчеркивание

Переход к предыдущей web-странице/главе справки

Используется в HTML-документах

Переход к следующей web-странице/главе справки

Прервать исполнение отчета системы компоновки данных

"Горячие" клавиши: управление окнами

В этом разделе объединены общие для всех окон и форм платформы "1С:Предиприятие" "горячие" клавиши.

Таблица 3

"Горячие" клавиши для управления окнами

Действие

Сочетания клавиш

Как работает программа

Закрыть активное свободное окно, модальный диалог или приложение

Этой комбинацией можно быстро завершить работу всей конфигурации на платформе "1С:Предприятие", поэтому пользуйтесь ей осторожно

Закрыть активное обычное окно

Закрывает текущее обычное окно

Закрыть активное окно

Закрывает текущее активное окно

Активизировать следующее обычное окно

Ctrl + Tab
Ctrl + F6

Позволяет активизировать следующее окно среди открытых в рамках конфигурации. Нажатие в цикле с удерживанием клавиши Ctrl позволяет листать отрытые окна "вперед"

Активизировать предыдущее обычное окно

Ctrl + Shift + Tab
Ctrl + Shift + F6

Позволяет активизировать предыдущее окно среди открытых в рамках конфигурации. Нажатие в цикле с удерживанием клавиши Ctrl позволяет листать отрытые окна "назад"

Активизировать следующую секцию окна

Активирует следующую секцию текущего окна

Активизировать предыдущую секцию окна

Активирует предыдущую секцию текущего окна

Вызвать системное меню приложения или модального диалога

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

Вызвать системное меню окна (кроме модальных диалогов)

Alt + Hyphen + (-)
Alt + Num + (-)

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

Вызвать главное меню

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

Вызвать контекстное меню

Отображает контекстное меню над текущим активным элементом. Аналогично нажатию правой кнопки мыши на нем

Вернуть активность обычному окну

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

"Горячие" клавиши: управление формами

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

Таблица 4

"Горячие" клавиши для управления формами

Действие

Сочетания клавиш

Как работает программа

Перейти на следующий элемент управления/вызов кнопки по умолчанию

Переход между элементами управления на форме "вперед" (см. Tab)

Вызов кнопки по умолчанию

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

Перейти на следующий элемент управления

Переход между элементами управления на форме "вперед"

Перейти на предыдущий элемент управления

Переход между элементами управления на форме "назад"

Активизирует командную панель, связанную с активным элементом управления/формой

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

Перемещение по элементам управления, объединенным в одну группу

Up
Down
Left
Right

Используя клавиши-курсоры можно быстро перемещаться между сгруппированными элементами управления

Закрыть форму

Закрывает окно текущей формы

Восстановить положение окна

Если сбились какие-то параметры окна формы, эта комбинация позволяет вернуть все назад

"Горячие" клавиши: работа со списком и деревом

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

Таблица 5

"Горячие" клавиши для работы со списком и деревом

Действие

Сочетания клавиш

Как работает программа

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

Обновить

Ctrl + Shift + R
F5

Обновляет данные в списке или дереве. Особенно актуально для динамических списков (например, список документов), когда для них не включено автообновление

Скопировать

Создает новый элемент списка, используя в качестве шаблона текущий элемент. Аналогично кнопке "Добавить копированием"

Новая группа

Создает новую группу. Аналогично кнопке "Добавить группу"

Удаление строки

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

Перемещение строки вверх

Ctrl + Shift + Up

В списках, где разрешено изменение порядка строк, позволяет передвинуть текущую строку вверх. Аналогично кнопке "Переместить вверх"

Перемещение строки вниз

Ctrl + Shift + Down

В списках, где разрешено изменение порядка строк, позволяет передвинуть текущую строку вниз. Аналогично кнопке "Переместить вниз"

Перенести элемент в другую группу

Ctrl + Shift + M
Ctrl + F5

Позволяет быстро переместить текущий элемент (например, справочника) в другую группу

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

Переходит внутрь папки, на которой был установлен курсор

Перейти на уровень вверх (к "родителю")

Выходит наверх из папки, в которой вы находились

Закончить редактирование

Завершает с сохранением изменений редактирование элемента списка

Прервать поиск

Прерывает поиск

Раскрыть узел дерева

Используется там, где доступны узлы деревьев, отмеченные значками "+" или "-"

Закрыть узел дерева

Раскрыть все узлы дерева

Изменение флажка

Инвертирует значение флажка текущего элемента (включает или отключает его)

"Горячие" клавиши: поле ввода

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

Таблица 6

"Горячие" клавиши для поля ввода

Действие

Сочетания клавиш

Как работает программа

Аналогично поведению при редактировании обычного текста, позволяет либо добавлять новые символы при вводе к старым, либо затирать старые новыми

Кнопка выбора

Выбор соответствующего объекта, связанного с полем ввода (например, выбор нужного документа из списка). Аналогично кнопке поля ввода "Выбор"

Кнопка открытия

Ctrl + Shift + F4

Открытие формы выбранного объекта в текущем поле ввода. Аналогично нажатию кнопки поля ввода "Открыть"

Очистить поле

Очистить поле ввода от текущего в нем значения

Работа с набранным текстом в поле ввода

Ctrl + BackSpace

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

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

Нажатие указателем мыши кнопки "Вверх" для кнопки регулирования

Использование регулировки, если это разрешено в поле ввода. Например, изменение дат, счетчиков и т. п. Аналогично нажатию на кнопку "вверх" регулятора поля ввода

Нажатие указателем мыши кнопки "Вниз" для кнопки регулирования

Использование регулировки, если это разрешено в поле ввода. Например, изменение дат, счетчиков и т. п. Аналогично нажатию на кнопку "вниз" регулятора поля ввода

"Горячие" клавиши: поле картинки

Поле картинки - это стандартный элемент платформы "1С:Предприятие 8" для отображения графических изображений. "Горячие" клавиши помогут, например, комфортно просмотреть изображение, расположенное в поле картинки.

Таблица 7

"Горячие" клавиши для поля картинки

Действие

Сочетания клавиш

Как работает программа

Увеличить масштаб

Масштабирует картинку

Уменьшить масштаб

Прокрутить

Up
Down
Left
Right

Перемещение по картинке

Прокрутить на размер окна вверх

Прокрутить на размер окна вниз

Прокрутить на размер окна влево

Прокрутить на размер окна вправо

"Горячие" клавиши: редактор табличных документов

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

Таблица 8

"Горячие" клавиши для редактора табличных документов

Действие

Сочетания клавиш

Как работает программа

Перейти к ячейке

Открывает диалоговое окно перемещения к ячейке с координатами столбец/строка

Перемещение по ячейкам

Up
Down
Left
Right

Перемещает курсор по ячейкам таблицы

Перемещение по ячейкам к следующей заполненной или пустой

Ctrl + (Up, Down, Left, Right)

Перемещает курсор по заполненным ячейкам таблицы

Выделение ячеек

Shift + (Up, Down, Left, Right)

Выделяетобласть ячеек, начиная с текущей

Прокрутить на страницу вверх

Листает табличный документ

Прокрутить на страницу вниз

Прокрутить на страницу влево

Прокрутить на страницу вправо

Перейти к редактированию содержимого ячейки

Включает режим редактирования содержимого ячейки

Переключение режима редактирования/ввода в ячейке

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

Перемещает курсор в начало строки

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

Перемещает курсор в конец строки

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

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

Установка имени текущей области

Ctrl + Shift + N

Устанавливает имя текущей области ячеек

"Горячие" клавиши: редактор текстовых документов

"Горячие" клавиши при редактировании текста в текстовых областях и документах позволяют существенно ускорить и упростить процесс.

Таблица 9

"Горячие" клавиши для редактора текстовых документов

Действие

Сочетания клавиш

Как работает программа

Переключить режим вставки/замены

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

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

Перемещает курсор в начало текущей строки

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

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

Выделить до начала строки

Выделяет текст до начала строки

Выделить до конца строки

Выделяет текст до конца строки

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

Перемещает курсор в начало текста

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

Перемещает курсор в конец текста

Выделить до начала текста

Ctrl + Shift + Home

Выделяет от курсора до начала текста

Выделить до конца текста

Ctrl + Shift + End

Выделяет от курсора до конца текста

Прокрутить на одну строку вверх

Листает текстовый документ

Прокрутить на одну строку вниз

Перейти к началу предшествующего слова

Перейти к началу следующего слова

Выделить предшествующее слово

Ctrl + Shift + Left

Быстрое выделение слова (символы, разделенные пробелами)

Выделить следующее слово

Ctrl + Shift + Right

Прокрутить на страницу вверх

Листает текстовый документ

Прокрутить на страницу вниз

Выделить предыдущую страницу текста

Постранично выделяет текст

Выделить следующую страницу текста

Shift + Page Down

Снять выделение

Снимает выделение

Перейти к строке

Перемещает курсор к строке с номером

Удалить символ слева от курсора

Удаляет символ слева от курсора

Удалить символ справа от курсора

Удаляет символ справа от курсора

Удалить слово слева от курсора

Ctrl + BackSpace

Удаляет слово слева от курсора

Удалить слово справа от курсора

Удаляет слово справа от курсора

Установить/снять закладку

Помечает нужную вам строку

Следующая закладка

Перемещает курсор между отмеченными закладками строками

Предыдущая закладка

Удалить текущую строку

Удаляет текущую строку

Сдвинуть блок вправо

Сдвигает выделенный блок текста вправо

Сдвинуть блок влево

Сдвигает выделенный блок текста влево

Выйти из цикла и передать управление на первый следующий за циклом выполняемый оператор можно, применив оператор Прервать. Чтобы пропустить часть операторов цикла и перейти к следующей итерации, следует использовать оператор Продолжить. При этом управление передается оператору начала цикла оператору Для или Пока. Операторы Прервать и Продолжить отдельно не применяются, а встраиваются в конструкции "если".

Пример. Сообщить значение первой непериодической константы числового типа.

// Процедура, выводящая значение первой непериодической константы числового типа

// Запускается из обработки Проба процедура Выполнить()

// флагВывода

всегоКонстант = Метаданные.Константа(); для ин = 1 по всегоКонстант цикл

если Метаданные.Константа(ин).Периодический = 1 тогда

продолжить; // Передаем управление оператору Для конецЕсли;

если Метаданные.Константа(ин).Тип = "Число" тогда

идеи = Метаданные.Константа(ин).Идентификатор;

Сообщить(иден +" " + Константа.ПолучитьАтрибут(иден)); // БалансДней 1 флагВывода = 1;

прервать; // Досрочный выход из цикла Для

конецЕсли; конецЦикла; // для

если флагВывода = 0 тогда

конецПроцедуры // Выполнить

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

ин = всегоКонстант;

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

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

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

// Процедура, использующая объединение условий и выводящая значение первой

// непериодической константы числового типа. Запускается из обработки Проба процедура Выполнить()

перем всегоКонстант, флагВывода, ин, идеи; ОчиститьОкноСообщений();

// флагВывода примет значение 1, если будет обнаружена

// непериодическая константа числового типа флагВывода = 0;

всегоКонстант = Метаданные.Константа();

ин = 1; // Номер константы пока (ин<= всегоКонстант) и (флагВывода = 0) цикл

если (Метаданные.Константа(ин).Периодический = 0) и (Метаданные.Константа(ин).Тип = "Число") тогда

идеи = Метаданные.Константа(ин).Идентификатор; Сообщить(иден + " " + Константа.ПолучитьАтрибут(иден)); флагВывода = 1;

конецЕсли;

ин = ин + 1; // Не забываем перейти к следующей константе конецЦикла; // для

если флагВывода = 0 тогда

Сообщить("В конфигураторе нет непериодических констант числового типа."); конецЕсли;

конецПроцедуры // Выполнить

В приведенном коде объединение условий использовано при записи ЛВ дважды: (ин <= всегоКонстант) и (флагВывода = 0)

(Метаданные.Константа(ин).Периодический = 0) и (Метаданные.Константа(ин).Тип = "Число") Это позволило нам исключить из процедуры операторы Продолжить и Прервать.