Змінні і оператори основи програмування 1с - проект - курси 1с

У цій статті ми приступаємо до вивчення вбудованої мови 1С: Підприємство 8. Виконавчий код міститься в програмних модулях.

Існує досить велика кількість модулів, які призначені для обробки різних подій.

Так, вхід користувача в систему обробляється в одному модулі, а обробка натискання користувача на деяку кнопку - в абсолютно іншому.

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

Перем Склад, Підрозділ, Комірник Експорт;

За ними розташовується розділ основної програми, який буде виконуватися в момент звернення до даного модулю.

Наприклад, в розділі основної програми можна здійснити ініціалізацію змінних, тобто привласнити їм деякі початкові значення:

Стан = 1;
НовоеВираженіе = 2;
Результат = 3;

Модуль можна уявити, як комбінацію різних операторів, які виконують різні потрібні нам дії.

Роздільником операторів є символ «;» (крапка з комою). Цей знак є ознакою закінчення оператора. Тобто оператор може бути записаний в такому вигляді:

Результат = 100х200
+400
-600;

При цьому не важливо, на скількох рядках розташовується оператор.

Звичайно, частіше зручніше і наочніше розташовувати оператор в одному рядку, але іноді оператори є досить довгими (число рядків обгрунтовано може досягати декількох десятків).

Крапку з комою можна не ставити в завершальному операторі даної конструкції, наприклад, процедури. Тобто Наступного код буде працювати:

ІсходноеЗначеніе = 100;
ПромежуточноеЗначеніе = ІсходноеЗначеніе / 5;
ІтоговоеЗначеніе = ІсходноеЗначеніе + ПромежуточноеЗначеніе

Однак краще використовувати крапку з комою в завершальному операторі. Не виключено, що з часом конструкція буде продовжена, і завершальний оператор виявиться вже не завершальним. Доведеться спеціально відстежувати цю ситуацію.

Змінні призначені для того, щоб зберігати деякі значення будь-якого типу даних. Вони використовуються для проміжного зберігання інформації, для обробки.

Практично в будь-якому програмному модулі, який виконує деякі дії, є різні змінні. Типізація змінних за значеннями в Платформі 1С: Підприємство 8 м'яка.

Наприклад, змінна може містити значення одного типу даних, а через кілька рядків - іншого типу:

Створено = Брехня;
Створено = Істина;
Створено = 100;

У перших двох операторах значення змінних булевское, а в третьому вона змінюється на числове значення. Тобто типізація залежить від того значення, яке присвоюється даної змінної.
Описувати змінні можна двома способами:

  • неявний спосіб (згадка в лівій частині оператора присвоювання описує дану змінну, немає попереднього опису змінної зі словом Перем, тобто немає спеціального розділу опису змінних);
  • явне опис змінних (Перем КонтрольниеДанние;). Явна опис змінних використовується, наприклад, якщо передбачається подальша передача цієї змінної в функцію.

Для назви змінних використовується класичне опис ідентифікатора. Ідентифікатор складається з букв, цифр і знаків підкреслення. Починатися ідентифікатор повинен або з букви, або зі знака підкреслення.

При цьому назва змінної повинно відображати зміст цієї змінної. Назви змінних з однієї літери (типу А, В, С) є поганими прикладами. Вони не відображають суть змінних.

Приклади правильного назви змінних: Лічильник (збільшується змінна для циклу), Контрагент. Якщо ім'я змінної містить кілька слів, то кожне нове слово, для наочності, слід починати з великої літери.

У назві змінних не можна використовувати зарезервовані слова, такі як Процедура, Функція, Цикл, КонецЦікла і т.д. (Ці конструкції виділяються в програмному модулі червоним кольором).

Зарезервовані слова - це оператори вбудованої мови і їх досить невелика кількість. Всі вони представлені в Синтакс-помічника.

Змінні і оператори основи програмування 1с - проект - курси 1с

Слід зазначити, що типи даних до зарезервованих словам не відносяться (наприклад, Масив, Булево, Істина, Брехня). Система такі імена змінних сприйме коректно.

Для написання програмного коду регістр не має ніякого значення. Наприклад, слово Процедура можна писати як з великою, так і з маленької літери. Більш того, великі і маленькі букви можна чергувати всередині слова.

Для Платформи це не має ніякого значення. Проте, за правилами хорошого тону початок слова потрібно писати з великої літери, всі інші літери маленькими.

З приводу мови. Можна використовувати і українську мову, і англійську, і комбінацію двох мов. Якщо комусь зручно, можна спокійно використовувати англійську мову для написання програмного коду, а також комбінувати українською та англійською мовами. Для Платформи це не важливо.

Але існують рекомендації використовувати українську мову, тому що в системі досить велика кількість об'єктів, які мають довгі назви.

Багато назви англійською мовою досить складно пам'ятати. При використанні комбінації двох мов погіршується Новомосковскемость програмного коду.

булеві операції

В операторах порівняння дуже часто використовується булевська логіка, яка повертає значення Істина або Брехню.

Наприклад, в умовному операторі можна порівнювати: Якщо Подія = Продаж Тоді алгоритм піде по одній гілці (тобто при значенні Істина), за умовою Брехня виконується інша гілка алгоритму.

Умови можуть бути досить складними, вони можуть комбінуватися, при цьому застосовуються такі оператори: І, АБО, і НЕ. Так, для оператора І:

Істина І істина = Істина;
Істина І Брехня = Брехня;
Брехня І Істина = брехня;
Брехня І брехня = брехня.

Для опрератора АБО досить, щоб один з операндів дорівнював Істина, тоді і значення комбінації буде Істина. Значення Брехня виходить тільки в тому випадку, коли обидва операнда Брехня.

Оператор НЕ просто інвертує поточне значення (Брехня в Істину, Істину в Брехня).

За допомогою комбінації даних операторів можна будувати досить складні умови. При складанні складних умовних операторів слід враховувати пріоритети.

Вищий пріоритет має оператор НЕ, наступним йде оператор І, а за ним оператор АБО. Те, що укладено в дужки, має найвищий пріоритет і виконується в першу чергу.

Наприклад, розставимо пріоритети (послідовність виконання) для операцій в наведеному вираженні:

НЕ (Условіе1 АБО Условіе2) І Условіе3 АБО Условіе4
1. результат1 = (Условіе1 АБО Условіе2);
2. Результат2 = НЕ результат1;
3. Результат3 = Результат2 І Условіе1;
4. Результат = Результат3 АБО Условіе4;

Існує правило перетворення:

НЕ (Условіе1 АБО Условіе2) = НЕ Условіе1 І НЕ Условіе2.

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

оператор присвоювання

Не слід плутати оператор присвоювання з рівністю, не дивлячись на те, що у них однакове написання.

Принцип роботи оператора присвоювання такий, що лівому значенням (змінної з лівої частини) присвоюється то значення, яке знаходиться праворуч від знака рівності. Розберемо приклад:

Переменная1 = Переменная2 = Переменная3;

Ліве значення - Переменная1, далі йде оператор присвоювання.

Переменной1 присвоюється значення рівності з булевою логіки, тобто Істина, якщо Переменная2 = Переменная3, або Брехня в зворотному випадку.

При тестуванні на посаду початківця програміста досить часто використовується завдання: змінити значення двох змінних місцями.

Дане завдання вирішується з використанням оператора присвоювання і має два рішення.

Рішення №1 з використанням тимчасової змінної:
ВременнаяПеременная = Переменная1;
Переменная1 = Переменная2;
Переменная2 = ВременнаяПеременная;

Рішення №2:
Переменная1 = Переменная1 + Переменная2;
Переменная2 = Переменная1 - Переменная2;
Переменная1 = Переменная1 - Переменная2;

умовний оператор

Є такий оператор Якщо, після якого необхідно описати деякий умова (саме умова може бути досить великим). Після умови слід слово Тоді і виконувані оператори.

Далі може слідувати ключове слово Інакше і серія інших операторів. Якщо різних умов кілька, можна використовувати серію ключових слів ІначеЕслі (див. Приклад нижче). Вся конструкція обов'язково завершується ключовим словом КонецЕсли. після чого слід знак крапки з комою.

Змінні і оператори основи програмування 1с - проект - курси 1с

Крім простого і множинного умови існує скорочена форма умовного оператора. (Умова, Вираз1, Вираженіе2);

Якщо умова справжнє, то буде виконуватися Вираз1. в іншому випадку - Вираженіе2. Приклад коду: ДорогойТовар =? (Товар.Цена> 100000, Істина, Брехня);

На практиці замість записів порівняння зі значенням Істина (Брехня) типу:

Якщо Мінлива = Істина Тоді
і
Якщо Мінлива = Брехня Тоді

реально використовуються еквівалентні записи:

Якщо Мінлива Тоді
і
Якщо НЕ Мінлива Тоді

циклічні оператори

Для будь-якого виду циклу обов'язково явне вказівку закінчення цього циклу за допомогою ключового слова КонецЦікла. Існує кілька типів циклів.

Цикл за лічильником - цикл з фіксованою кількістю повторень. Умовою виходу з циклу є перевищення граничного значення. Приклад використання для розрахунку значення А!

А = 5;
Факторіал = 1;
Для Лічильник = 1 За А Цикл
Факторіал = Факторіал Лічильник;
КонецЦікла;

Цикл за умовою - виконується поки істинно умова даного циклу. приклад:

ОстатокСумми = 1000;
ЦенаДополнітельногоТовара = 243;
Кількість = 0;
Поки ОстатокСумми> 0 Цикл
Кількість = кількість + 1;
ОстатокСумми = ОстатокСумми - Кількість * ЦенаДополнітельногоТовара;
ЦенаДополнітельногоТовара = ЦенаДополнітельногоТовара * 0.8;
КонецЦікла
Кількість = кількість-1;

Даний цикл обчислює, скільки одиниць товару можна купити на цю суму (1000 рублів), якщо після покупки кожної одиниці товару попередня його ціна множиться на коефіцієнт 0,8. Початкова ціна товару - 243 рубля.

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

Цикл по колекціях (інша назва Для кожного).

У Платформі існує досить велика кількість колекцій (це такі контейнери, які містять елементи певного типу).

Обійти елементи колекції можна за допомогою циклу спеціального виду.

Наприклад, існує масив чисел, необхідно порахувати суму всіх елементів масиву:

Сума = 0;
Для кожного Елемент З Масив Цикл
Сума = сума + Елемент;
КонецЦікла;

Для циклів існують спеціальні оператори: Продовжити і Перервати.

Якщо в деякій точці циклу виконання подальших операторів даного витка стає безглуздим, то щоб повернутися на початок циклу і організувати його наступний виток використовується оператор Продовжити.

Оператор Перервати дозволяє закінчити виконання циклу, навіть якщо умова циклу істинно.

PDF-версія статті для учасників групи ВКонтакте

1 і 2 помилки. Виправимо, велике спасибі.
З 3 ніби все зрозуміло:
«Є такий оператор Якщо, після якого необхідно описати деякий умова (саме умова може бути досить великим). Після умови слід слово Тоді і виконувані оператори. Далі може слідувати ключове слово Інакше і серія інших операторів. Вся конструкція обов'язково завершується ключовим словом КонецЕсли, після чого слід знак крапки з комою. »За цим відразу наочні приклади з ІначеЕслі. Подумаємо як зробити зрозумілішими. Дякуємо.

Можна було б на початку привести знімок програмного модуля з дуже коротким прикладом змінних, процедур, функцій і розділом основної програми.
Тоді новачкам буде зрозуміліше те, що потім пояснюється.