1s цикъл преход към следващата итерация. Прекъсвания на цикъла. комбиниране на условия. "Горещи" клавиши: управление на форми

12 декември 2014 г. в 13:13 ч

Кой цикъл е по-бърз? Тестване на 1C

  • Висока производителност ,
  • необичайно програмиране,
  • Програмиране

Програмирах 1C от няколко години и тогава дойде мисълта - „Защо не вземете някакъв курс на обучение, изведнъж има пропуски в знанията, за които дори не съм подозирал преди“?Казано, сторено. Седя, слушам курса, достигам до цикличните оператори и след това втората мисъл (да, те не ми се появяват често) - „Кой цикъл е по-бърз?“Трябва да проверим.
Така че намерих пет начинакак можете да организирате цикъла с помощта на 1C.

Първият вид цикъл, нека го наречем условно "ForPo"изглежда така:

За n = 0 по брой итерации Loop SomeAction(); EndCycle;
Втори изглед "За всеки":

За всеки ItemCollection от Collection Loop SomeAction(); EndCycle;
трето "Чао":

Чао н<>NumberIterations Loop SomeAction(); n = n + 1; EndCycle;
Тогава си спомних младостта на монтажника - цикъла "Ако":

~LoopStart: Ако n<>NumberIterations Then SomeAction(); n = n + 1; Прескочи ~StartCycle; EndIf;
И накрая "рекурсия"

Процедура RecursiveLoop(n, брой итерации) SomeAction(); Ако n<>Брой итерации След това рекурсивен цикъл (n+1, брой итерации); EndIf; EndProcedure
Естествено, не е напълно правилно да се приписва рекурсия на цикли, но въпреки това с негова помощ можете да постигнете подобни резултати. Веднага ще направя резервация, че рекурсията не участва в по-нататъшното тестване. Първо, всички тестове са проведени при 1 000 000 итерации, а рекурсията отпада вече при 2000. Второ, скоростта на рекурсията е десет пъти по-малка от скоростта на други цикли.

Последно отстъпление. Едно от условията беше изпълнението на всякакви действия в цикъла. Първо, празният цикъл се използва рядко. Второ, цикълът "За всеки" се използва за някаква колекция, което означава, че останалите цикли трябва да работят с колекцията, така че тестването да се извършва при същите условия.

Добре тогава, да вървим. Тялото на цикъла е прочетено от предварително попълнен масив.


или, когато използвате цикъл "ForEach".

TestValue Receiver = elem;
Тестването беше извършено на платформа 8.3.5.1231 за три типа интерфейс (обикновено приложение, управлявано приложение и такси).
Числата са времето в милисекунди, получено с помощта на функцията CurrentUniversalDateInMilliseconds(), който извиках преди цикъла и след края му. Числата са дробни, защото използвах средно аритметично от пет измервания. Защо не използвах сравнителен анализ? Нямах цел да измервам скоростта на всеки ред код, а само скоростта на цикли с еднакъв резултат от работа.

Изглежда, че това е всичко, но - за да тествате така тествайте!
Резултат за платформа 8.2.19.106
Средно платформа 8.2 е с 25% по-бърза от 8.3. Малко не очаквах такава разлика и реших да го тествам на друга машина. Няма да давам резултатите, можете да ги генерирате сами, като използвате тази конфигурация. Мога само да кажа, че там 8.2 беше с 20 процента по-бърз.

Защо? Не знам, разглобяването на ядрото не беше част от плановете ми, но все пак погледнах измерването на производителността. Оказа се, че самите циклични операции в 8.3 са малко по-бързи от тези в 8.2. Но на линия
TestValue Receiver = TestArray.Get(n);
това означава, че има значителен удар в производителността при четене на елемент от колекция в променлива.

В крайна сметка:
Защо всичко това? За себе си направих няколко извода:

1. Ако е възможно да използвате специализиран цикъл - "За всеки", тогава е по-добре да го използвате. Между другото, сам по себе си работи по-дълго от другите цикли, но скоростта на достъп до елемент на колекция е много по-висока.
2. Ако знаете броя на итерациите предварително - използвайте "За". "Чао" ще работи по-бавно.
3. Ако използвате цикъла "Ако", другите програмисти очевидно няма да ви разберат.

21
//Функцията генерира четливо представяне на стойностите. // Примери за форматиране на числа ValueFormat = Format(123456.789, " NT=10; NT=2"); // ValueFormat = "123456.79" ValueFormat = Format(123456.789, "FH=0; FPV=2"); // Стойност 16
Търсене в пълен текст - позволява ви да намерите текстова информация, поставен почти навсякъде във вашата конфигурация. В същото време можете да търсите необходимите данни или в цялата конфигурация като цяло, или чрез стесняване ... 8
„Момент от време“ е виртуално поле, което не се съхранява в базата данни. Съдържа обект MomentInTime (който включва дата и РЕФЕРЕНЦИЯ НА ДОКУМЕНТ) В 7.7 имаше концепцията за DocumentPosition, а в 8.x Moment in Time За да получите... 6
За 8.x FindByReferences (FindDataByRef) Синтаксис: FindByReferences (Списък с връзки) Параметри: Списък с връзки Задължителен тип: Масив. Масив, съдържащ списък с препратки към обекти, към които да се намерят препратки. ...

В тази статия ще разгледаме такава конструкция на езика за програмиране 1C като Цикли.

Има три начина за организиране на цикли.

  1. Цикли с помощта на булев израз (изпълнете до булев изразвярно)
  2. Обхождане на колекции в цикъл

Нека разгледаме всеки от тези методи.

Цикли с помощта на променлива - брояч на цикли

Синтаксис:

За< Переменная> = < НачальноеЗначение>от< КонечноеЗначение>CycleEndCycle ;

С този метод на организиране на цикли, променливата на брояча се присвоява някои първоначална стойности се изпълнява, докато стойността на променливата на брояча е по-малка или равна на определената крайна стойност.

С всяка итерация стойността на брояча се увеличава с единица. Ето най-елементарния пример за такъв цикъл:

За брояч = 0 до 1000 цикъл Край на цикъл;

За разлика от много други езици за програмиране, 1C не предвижда възможност за посочване на стъпка в цикъл. Ако е необходимо, това може да стане чрез добавяне на желаната стойност към брояча вътре в цикъла

За брояч = 0 по 1000 Брояч на цикъл = Брояч + 10; Краен цикъл;

Цикли, използващи булев израз

Синтаксис:

Чао< ЛогическоеВыражение>CycleEndCycle ;

Отхвърляне = невярно; GeneratorSch = Нов генератор на случайни числа(1) ; Случайно число на цикъла до отказ = GeneratorSch. СлучайноЧисло(0 , 10 ) ; If RandomNumber > 5 Then Rejection = True ; EndIf ; Краен цикъл;

Тоест, цикълът ще се изпълнява, докато не се генерира случайно число, по-голямо от пет.

Обхождане на колекции в цикъл

В езика за програмиране 1C има такова нещо като колекция. Това е набор от елементи, съдържащи се в даден обект.

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

За всеки< ЭлементКоллекции>от< Коллекция>CycleEndCycle ;

Тук <ЭлементКоллекции> е променлива, в която последователно се поставят елементи от колекцията. И вътре в цикъла се обработва съответно.
Като пример ще дам байпас в цикъла на редовете на таблицата със стойности. Нека се нарича TableProductsи изглежда така:

Нека да обиколим тази таблица в цикъл и за всеки ред ще покажем съобщение с името и цената на продукта:

За всеки цикъл RowTableFrom TableProducts Име = RowTable. име; Цена = TableString. Цена; Съобщение = Ново съобщение до потребител; Съобщение. Текст = „Име на продукта:“

Всъщност, същото може да се направи, като се използва първата опция, т.е. в цикъл с помощта на брояч:

Брой редове = TableProducts. Количество() ; За брояч = 0 по брой редове - 1 цикъл RowTable = TableProducts[Counter] ; Име = StringTable. име; Цена = TableString. Цена; Съобщение = Ново съобщение до потребител; Съобщение. Текст = „Име на продукта:“+ Име + "; Цена: " + Цена; Съобщение. Докладвам() ; Краен цикъл;

Но както виждаме, много по-лесно и удобно е да се използва обхождането на елементите на колекцията.

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

Често има ситуация, когато в зависимост от някои е необходимо да се прекъсне изпълнението на цикъла или да се премине от следващата итерация.

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

За Брой = 0 До 100 Цикъл Ако Брой = 0 Тогава Продължете; EndIf ; If Counter = 4 Then Abort ; EndIf ; Резултат = 1 / Брояч; Съобщение = Ново съобщение до потребител; Съобщение. Text = String(Result) ; Съобщение. Докладвам() ; Краен цикъл;

Пропускаме нулата, защото не можеш да делиш на нула. И общо цикълът ще бъде изпълнен пет пъти за стойностите на променливата Брояч 0 до 4

Всяко решение на 1C, базирано на платформата 1C:Enterprise 8, има широк набор от възможности. Има обаче универсални трикове, които могат да се използват във всяка конфигурация. С тази статия откриваме поредица от публикации, в които методолозите на 1C ще говорят за универсалните възможности на платформата 1C:Enterprise 8. Нека започнем с един от най-важните методи за подобряване на ефективността на работата - с описанието на "горещите" клавиши (действията от клавиатурата, като правило, се извършват по-бързо от подобни действия чрез менюто с помощта на мишката). След като усвоите бързите клавиши, ще опростите изпълнението на често повтарящи се действия.

маса 1

Действие

Комбинация от клавиши

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

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

Отворете съществуващ документ

Отворете калкулатора

Отваря калкулатора

Показване на свойства

Alt+Enter
Ctrl+E

Отворете кутията за съобщения

Затворете кутията за съобщения

Ctrl+Shift+Z

Отворено табло с резултати

Отваря табло с резултати

Отворете Помощ

Отваря помощ

Индекс за помощ при обаждане

Shift+Alt+F1

Извиква помощния индекс

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

Глобалните действия са действия, които можете да извършвате във всяко състояние на програмата. Няма значение какво е отворено в момента в 1C:Enterprise. Основното е, че приложението не трябва да е заето с изпълнение на каквато и да е задача.

Глобалните действия са действия, които могат да бъдат извикани навсякъде в работещата платформа 1C:Enterprise 8. Без значение какво се случва в работеща конфигурация, значението на глобалните действия не се променя (например натискането на Ctrl+N винаги ще извежда диалоговия прозорец за създаване на нов документ).

маса 1

Горещи клавиши за глобални действия

Действие

Комбинация от клавиши

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

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

Отваря прозорец, в който ще бъдете помолени да изберете вида на новия документ, в който да бъде създаден различни формати- например в текст, таблица или HTML

Отворете съществуващ документ

Отваря стандартния диалогов прозорец "Отвори", достъпен през менюто "Файл/Отвори...".

Активиране на полето за търсене в командната лента

Поставя курсора на това поле

Отворете калкулатора

Отваря калкулатора

Показване на свойства

Alt+Enter
Ctrl+E

В зависимост от това върху какво е поставен курсорът, отваря съответната палитра със свойства на този обект или елемент. Полезно при работа с таблици, текст, HTML и др.

Отворете кутията за съобщения

Позволява ви да отворите предварително затворен прозорец за съобщения. Често е полезно, когато случайно затворите прозорец и имате нужда от съобщение от него. Моля, обърнете внимание: докато системата не е въвела отново нищо в прозореца за съобщения, старите съобщения се запазват дори в затворен прозорец

Затворете кутията за съобщения

Ctrl+Shift+Z

Затваря кутията за съобщения, когато вече не са необходими. Моля, обърнете внимание: комбинацията е избрана така, че да се натиска лесно с една ръка

Отворено табло с резултати

Отваря табло с резултати

Отворете Помощ

Отваря помощ

Индекс за помощ при обаждане

Shift+Alt+F1

Извиква помощния индекс

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

Общи действия- действия, които имат едно и също значение в различни конфигурационни обекти, но поведението на платформата 1C:Enterprise 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+PageDown
Ctrl+Alt+F

Бързо страниране на активния документ

Предишна страница

Ctrl+PageUp
Ctrl+Alt+B

Включете/изключете смелостта

Използва се там, където форматирането на текст се поддържа и е възможно

Включване/изключване на курсив

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

Преминете към предишната уеб страница/глава за помощ

Използва се в HTML документи

Преминете към следващата уеб страница/помощна глава

Прекратяване на изпълнението на системен отчет за съставяне на данни

Горещи клавиши: Управление на прозорци

Този раздел комбинира общи "горещи" клавиши за всички прозорци и форми на платформата "1C:Enterprise".

Таблица 3

"Горещи" клавиши за управление на прозорци

Действие

Комбинация от клавиши

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

Затворете активен безплатен прозорец, модален диалог или приложение

Тази комбинация може бързо да завърши цялата конфигурация на платформата 1C:Enterprise, така че я използвайте внимателно

Затворете активния нормален прозорец

Затваря текущия нормален прозорец

близо активен прозорец

Затваря текущия активен прозорец

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

Ctrl+Tab
Ctrl+F6

Позволява ви да активирате следващия прозорец сред отворените в рамките на конфигурацията. Натискането в цикъл, докато държите натиснат клавиша Ctrl, ви позволява да превъртате през отворените прозорци „напред“

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

Ctrl+Shift+Tab
Ctrl+Shift+F6

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

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

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

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

Активира предишната секция на текущия прозорец

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

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

Извикване на системното меню на прозореца (с изключение на модалните диалогови прозорци)

Alt + тире + (-)
Alt + Num + (-)

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

Обадете се на главното меню

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

Извикайте контекстното меню

Показва контекстно меню над текущия активен елемент. Подобно на щракване с десния бутон на мишката върху него

Върнете активността в нормален прозорец

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

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

Тук са събрани "горещи" клавиши, които опростяват и ускоряват работата с различни форми, създадени в конфигурации, написани на платформата 1C:Enterprise.

Таблица 4

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

Действие

Комбинация от клавиши

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

Отидете на следващото извикване на бутон за управление/по подразбиране

Навигирайте между контролите във формуляра „напред“ (вижте раздела)

Извикване на бутона по подразбиране

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

Преминете към следващата контрола

Навигирайте между контролите във формуляр за напред

Преминете към предишния контрол

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

Активира командната лента, свързана с активната контрола/формуляр

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

Навигирайте през групирани заедно контроли

нагоре
Надолу
Наляво
вярно

С помощта на клавишите със стрелки можете бързо да се придвижвате между групирани контроли

близка форма

Затваря текущия прозорец на формуляра

Възстановете позицията на прозореца

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

"Горещи" клавиши: работа със списъка и дървото

„Горещите“ клавиши на този раздел ще ви помогнат да работите ефективно, без да използвате мишката в многобройни списъци и дървета, които се използват активно в различни конфигурационни обекти на платформата 1C:Enterprise 8.

Таблица 5

"Горещи" клавиши за работа със списъка и дървото

Действие

Комбинация от клавиши

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

Отваря елемента, върху който е позициониран курсорът за редактиране. Ключът е подобен на действието "Редактиране" в лентата с бутони на стандартния формуляр

Опресняване

Ctrl+Shift+R
F5

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

копие

Създава нов елемент от списъка, като използва текущия елемент като шаблон. Подобно на бутона "Добавяне чрез копие".

Нова група

Създава нова група. Подобно на бутона "Добавяне на група".

Премахване на линия

Директно премахване на текущия елемент. внимание! Използвайте тази комбинация с голямо внимание в динамични списъцизащото изтриването не може да бъде отменено.

Преместете ред нагоре

Ctrl+Shift+Нагоре

В списъци, където е разрешено пренареждане на редове, ви позволява да преместите текущия ред нагоре. Подобно на бутона "Преместване нагоре".

Преместете ред надолу

Ctrl+Shift+надолу

В списъци, където е разрешено пренареждане на редове, ви позволява да преместите текущия ред надолу. Подобно на бутона „Преместване надолу“.

Преместете елемент в друга група

Ctrl+Shift+M
Ctrl+F5

Позволява ви бързо да преместите текущия елемент (например директория) в друга група

Слезте едно ниво надолу, докато разширявате групата

Навигира в папката, където е поставен курсорът

Отидете едно ниво нагоре (до „родител“)

Отива в горната част на папката, в която сте били

Завършете редактирането

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

Отмени търсенето

Прекъсва търсенето

Разширете възела на дървото

Използва се там, където са налични дървовидни възли, маркирани с "+" или "-".

Затворете възела на дървото

Разгънете всички възли на дървото

Променете отметката

Обръща стойността на квадратчето за отметка на текущия елемент (активира или деактивира го)

"Горещи" клавиши: поле за въвеждане

Поле за въвеждане- активно използван контрол на много места във формите за конфигурация. „Горещите“ клавиши за полето за въвеждане ви позволяват бързо да извършвате често използвани действия върху него. Особено полезно е да използвате тези ключове, когато разработчикът на конфигурацията не е показал бутоните за управление на полето за въвеждане, от които се нуждаете.

Таблица 6

"Горещи" клавиши за полето за въвеждане

Действие

Комбинация от клавиши

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

Подобно на поведението при редактиране на обикновен текст, това ви позволява или да добавяте нови знаци, когато пишете към старите, или да презаписвате старите с нови.

Бутон за избор

Избиране на съответния обект, свързан с полето за въвеждане (например избиране на желания документ от списъка). Подобно на бутона за поле за въвеждане "Избор".

Бутон за отваряне

Ctrl+Shift+F4

Отваря формата на избрания обект в текущото поле за въвеждане. Подобно на натискане на бутона за поле за въвеждане "Отвори".

чисто поле

Изчистване на поле за въвеждане от текущата му стойност

Работа с въведен текст в полето за въвеждане

Ctrl+backspace

Отидете в началото на реда

Отидете до края на реда

Натискане на показалеца на мишката с бутона нагоре за бутона за регулиране

Използвайте корекция, ако е позволено в полето за въвеждане. Например промяна на дати, броячи и т.н. Подобно на натискане на бутона "нагоре" на контролера на полето за въвеждане

Бутон с показалец на мишката надолу за бутон за регулиране

Използвайте корекция, ако е позволено в полето за въвеждане. Например промяна на дати, броячи и т.н. Подобно на натискане на бутона "надолу" на контролера на полето за въвеждане

"Горещи" клавиши: поле за картина

поле за картинае стандартен елемент на платформата "1C:Enterprise 8" за показване графични изображения. „Горещите“ клавиши ще помогнат, например, удобно да видите изображението, разположено в полето за картина.

Таблица 7

"Горещи" клавиши за полето за изображение

Действие

Комбинация от клавиши

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

увеличавам

Мащабира картината

отдалечавам

Превъртете

нагоре
Надолу
Наляво
вярно

Движение по картината

Превъртете нагоре размера на прозореца

Превъртете надолу по размер на прозореца

Превъртете размера на прозореца наляво

Превъртете размера на прозореца надясно

"Горещи" клавиши: редактор на електронни таблици

Този раздел групира "горещи" клавиши за различни документи с електронни таблици. Те могат да бъдат много полезни, ако често редактирате данни в такива документи.

Таблица 8

„Горещи“ клавиши за редактор на електронни таблици

Действие

Комбинация от клавиши

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

Отидете в клетката

Отваря диалогов прозорец за преминаване към клетка с координати на колона/ред

Придвижване през клетки

нагоре
Надолу
Наляво
вярно

Премества курсора през клетките на таблицата

Придвижване през клетки до следващата попълнена или празна

Ctrl + (нагоре, надолу, наляво, надясно)

Премества курсора върху попълнените клетки на таблицата

Избор на клетка

Shift + (нагоре, надолу, наляво, надясно)

Избира област от клетки, започваща с текущата

Превъртете страница нагоре

Превъртане на електронна таблица

Превъртете страница надолу

Превъртете страницата наляво

Превъртете страницата надясно

Отидете на редактиране на съдържанието на клетката

Активира режима за редактиране на съдържанието на клетката

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

Отидете в началото на реда

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

Отидете до края на реда

Премества курсора до края на реда

Отидете в началото на текста

Преминете към края на текста

Задаване на името на текущата област

Ctrl+Shift+N

Задава името на текущата област на клетката

"Горещи" клавиши: редактор на текстови документи

„Горещите“ клавиши при редактиране на текст в текстови области и документи могат значително да ускорят и опростят процеса.

Таблица 9

"Горещи" клавиши за редактора текстови документи

Действие

Комбинация от клавиши

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

Превключване на режима на вмъкване/замяна

Позволява ви или да добавяте нови знаци, когато въвеждате към старите, или да замените старите с нови

Отидете в началото на реда

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

Отидете до края на реда

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

Изберете за начало на реда

Избира текст до началото на реда

Изберете до края на реда

Избира текст до края на реда

Отидете в началото на текста

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

Преминете към края на текста

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

Изберете за начало на текст

Ctrl+Shift+Начало

Избира от курсора до началото на текста

Изберете до края на текста

Ctrl+Shift+End

Избира от курсора до края на текста

Превъртете един ред нагоре

Превъртане през текстов документ

Превъртете един ред надолу

Отидете в началото на предишната дума

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

Изберете предходната дума

Ctrl+Shift+ляво

Бърз избордуми (знаци, разделени с интервали)

Изберете следващата дума

Ctrl+Shift+надясно

Превъртете страница нагоре

Превъртане през текстов документ

Превъртете страница надолу

Изберете предишна страница с текст

Пагиниран текст

Изберете следващата страница с текст

Shift + Page Down

Премахване на селекцията

Демаркирайте

Отидете на линия

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

Изтриване на знак отляво на курсора

Изтрива знака отляво на курсора

Изтриване на знак отдясно на курсора

Изтрива знака отдясно на курсора

Изтрийте думата отляво на курсора

Ctrl+backspace

Изтрива думата отляво на курсора

Изтриване на дума отдясно на курсора

Изтрива думата отдясно на курсора

Задаване/демаркиране

Маркира желаната линия

Следваща отметка

Мести курсора между маркираните редове

Предишна отметка

Изтриване на текущия ред

Изтрива текущия ред

Преместете блок надясно

Измества избрания блок от текст надясно

Преместете блока наляво

Измества избрания блок от текст наляво

Можете да излезете от цикъла и да прехвърлите контрола към първия израз след цикъла, като използвате оператора Break. За да пропуснете част от операторите на цикъла и да преминете към следващата итерация, използвайте оператора Continue. В този случай контролът се прехвърля към оператора на началото на цикъла, оператора For или While. Операторите Break и Continue не се използват отделно, а са вградени в клаузи „if“.

Пример.Докладвайте стойността на първата непериодична константа числов тип.

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

// Изпълнява се от процедурата за обработка на сондата Execute()

// изходен флаг

totalConstant = Metadata.Constant(); за ин = 1 над общата постоянна верига

if Metadata.Constant(in).Periodic = 1 тогава

продължете; // Прехвърляне на управление към оператора For endIf;

if Metadata.Constant(in).Type = "Number" тогава

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

Report(id + " " + Constant.GetAttribute(id)); // BalanceDays 1 изходен флаг = 1;

прекъсвам; // Ранно излизане от цикъла For

endIf; край на цикъла; // за

ако изходен флаг = 0 тогава

endProcedures // Изпълнение

Коментирайте. Понякога програмистите в цикъла For, вместо оператора Break, прибягват до промяна на стойността на променливата на цикъла в.Така че в нашия случай операторът Abort може да бъде заменен от оператора

in = обща константа;

Такива действия обаче се класифицират като лош стил на програмиране.

Някои програмисти смятат, че операторите за прекъсване на цикъл (в 1C това са Continue и Interrupt) влошават структурата на програмата и следователно, ако е възможно, отказват да ги използват. Вместо това се използва комбиниране на условия.

Да следваме принципите структурирано програмиране,като напишете кода, който решава проблема по-горе, като използвате обединението на условията. В този код ще трябва да се откажем от цикъла For, заменяйки го с цикъл While.

// Процедура, която използва обединение на условия и извежда стойността на първото

// непериодична константа от числов тип. Изпълнява се от процедурата за обработка на сондата Execute()

var totalConst, изходен флаг, в, идеи; ClearMessageWindow();

// изходен флагще приеме стойност 1, ако бъде намерена

// непериодична константа от числов тип OUTPUT flag = 0;

totalConstant = Metadata.Constant();

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

ако (Metadata.Constant(in).Periodic = 0) и (Metadata.Constant(in).Type = "Number") тогава

идеи = Метаданни.Константа(в).Идентификатор; Report(id + " " + Constant.GetAttribute(id)); изходен флаг = 1;

endIf;

в = в + 1; // Не забравяйте да преминете към следващия постоянен край на Loop; // за

ако изходен флаг = 0 тогава

Доклад("В конфигуратора няма непериодични константи от числов тип."); endIf;

endProcedures // Изпълнение

В горния код комбинацията от условия се използва при два пъти запис на LP: (in<= всегоКонстант) и (флагВывода = 0)

(Metadata.Constant(in).Periodic = 0) и (Metadata.Constant(in).Type = "Number") Това ни позволи да елиминираме инструкциите Continue и Abort от процедурата.