Похожие презентации:
Практическая работа 3 ред 10(объед)
1. Практическая работа 3. Синтаксические конструкции
Присваивание. Вычислить выражение. Оператор условия.Операторы циклов. Операторы прерывания.
2. Цель занятия
Изучить Синтаксические конструкции операторы условия, цикла, перехода, функции и процедуры.Рассмотреть :
• Оператор условия;
• Операторы цикла;
• Операторы перехода;
• Функции;
• Процедуры.
2
3. Содержание практической работы
3.01. Вызов диалога ввода значения3.02. Условный оператор
3.03. Операторы циклов
3.04. Операторы перехода
3.05. Конфигурация и внешние обработки
3.06. Функции
3.07. Процедуры
3.08. Передача параметров
3.09. Способы передачи параметров
3
4. Выполнение практической работы 3
Разработка программного кода выполняется обычно реализуется в режиме конфигуратора.В рамках данной дисциплины режим конфигуратора будет использоваться в практикумах
посвященных: процедурам и функциям, объектной модели, объектам, модулям, табличной
модели.
В рамках данного практикума, для знакомства с использованием универсальных коллекции,
реализация программного кода будет происходить в режиме пользователя.
Для этих целей будет использоваться специальная обработка «Консоль кода» реализующая
нестандартный сценарий работы с 1С.
4
5. Запуск обработки для выполнения практикумов
В открывшейся конфигурации необходимо запустить обработку "Алгоритмы".Далее задания практической работы выполняются с помощью этой обработки.
5
6. 3.01. Вызов диалога ввода значения
Функция ВвестиЗначение()7. Содержание
• Теория• Интерактивный ввод значений
• Самостоятельное задание 3.01
8. Стандарты именования переменных
• Имена переменных запрещается начинать с подчеркивания.• Имена переменных не должны состоять из одного символа. Использование
односимвольных имен переменных допускается только для счетчиков циклов.
• Имя переменной типа булево, должно быть утверждением, актуальным для значения Истина.
Например:
Перем ЕстьОшибки; // Признак наличия ошибок в процедуре.
Перем ЭтоТоварТара; // Признак, что товар относится к возвратной таре.
8
9. Метод ВвестиЗначение()
Метод ВвестиЗначение() - вызывает диалог для ввода значения заданного типа.Если тип переменной не определен и <Тип> представляет собой составной тип данных, то в
поле ввода появляется кнопка выбора типа.
Синтаксис:
ВвестиЗначение(<Значение>, <Подсказка>, <Тип>)
Параметры:
<Значение> (обязательный)
Тип: Произвольный.
Имя доступной в модуле переменной. В эту переменную будет помещено введенное
значение.
<Подсказка> (необязательный)
Тип: Строка.
Текст заголовка окна диалога ввода значения. Может использоваться в качестве подсказки
пользователю.
<Тип> (необязательный)
Тип: Тип, ОписаниеТипов.
Тип вводимого значения. Если параметр не указан, используется тип параметра <Значение>.
Возвращаемое значение:
Тип: Булево.
• Истина - в диалоге было введено значение;
• Ложь - пользователь отказался от ввода значения.
9
10. Метод ВвестиЗначение()
Данные = Неопределено ;ВвестиЗначение(Данные, "Ввести число", Тип("Число"));
Сообщить("Данные = " + Данные);
Данные = 0;
ВвестиЗначение(Данные, "Ввести число");
Сообщить("Данные = " + Данные);
10
11. Интерактивный ввод значений
Интерактивный ввод значений (ввод значений пользователем через клавиатуру в момент исполненияалгоритма) применяется метод "ВвестиЗначение":
Необходимо
1. Ввести в поле текст:
Данные = Неопределено ;
1
ВвестиЗначение(Данные, "Ввести число", Тип("Число"));
Сообщить("Данные = " + Данные);
2. Нажать на кнопку "На клиенте".
Результат работы:
11
12. Интерактивный ввод значений
Интерактивный ввод значений (ввод значений пользователем через клавиатуру в момент исполненияалгоритма) применяется метод "ВвестиЗначение":
Необходимо
3. Ввести в поле текст:
Данные = 0;
3
ВвестиЗначение(Данные, "Ввести число");
Сообщить("Данные = " + Данные);
4. Нажать на кнопку "На клиенте".
Результат работы:
12
13. Самостоятельное задание 3.01
Чтобы закрепить материал, необходимо написать программный код для реализацииследующих задач.
Сохранить скриншоты всех выполненных упражнений в отчёте согласно образцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в заголовке окна
отображалась Ваша фамилия.
Задачи:
Реализуйте интерактивный ввод с помощью ВвестиЗначение() перечисленных ниже
значений.
Проверку введенного значения произвести с использованием Сообщить().
1. ООО "Очень хорошая компания".
2. 2,71828.
3. 01.02.2026 10:00:00.
4. ЭкзаменСдан = Истина.
5. 01.09.2026 09:10:15
13
14. 3.02. Условный оператор
Оператор условия. Пример использования. Тернарный оператор.15. Содержание
• Теория• Пример использования конструкции ветвления
• Самостоятельное задание 3.02
16. Назначение условного оператора Если
Условный оператор Если предназначен для управления ходом выполнения программы.Он выполняет или игнорирует блок кода в зависимости от истинности логического выражения.
Синтаксис:
Если <Логическое выражение> Тогда
// Операторы
[ИначеЕсли <Логическое выражение> Тогда]
// Операторы
[Иначе]
// Операторы
КонецЕсли;
16
17. Пример использования условного оператора Если
началоВыбранРусскийЯзык = Истина;
ВыбранРусскийЯзык = Истина
Ввестизначение(ВыбранРусскийЯзык,
ВыбранРусскийЯзык
"Выберите язык", Тип("Булево"));
Если ВыбранРусскийЯзык Тогда
Представление = "Понедельник";
Иначе
Да
ВыбранРусскийЯзык = Истина
Представление = "Понедельник"
Нет
Представление = "Monday "
Представление = "Monday";
КонецЕсли;
Сообщить("Первый день недели: " + Представление);
Представление
окончание
17
18. Вычислить выражение по условию (Тернарный оператор)
Синтаксис:?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)
Параметры:
<Логическое выражение>
Логическое выражение, результат вычисления которого определяет одно из
результирующих выражений, которые будут вычислены.
•Если результат его вычисления Истина, то будет вычисляться <Выражение 1>.
•Если результат Ложь – то <Выражение 2>.
<Выражение 1>
Результирующее выражение, которое будет вычисляться, если результат логического
выражения Истина.
<Выражение 2>
Результирующее выражение, которое будет вычисляться, если результат логического
выражения Ложь.
18
19. Вычислить выражение по условию (Тернарный оператор)
Оператор вычислить выражение по условию позволяет написать условие в одну строку:Представление = ?( ВыбранРусскийЯзык ,"Понедельник" , "Monday" ) ;
Вместо
Если ВыбранРусскийЯзык Тогда
Представление = "Понедельник";
Иначе
ВыбранРусскийЯзык = Истина
Да
Представление = "Понедельник"
Нет
Представление = "Monday"
Представление = "Monday";
КонецЕсли;
19
20. Пример использования конструкции ветвления
Запрашивается значение переменной "ВыбранРусскийЯзык" у пользователя методом"ВвестиЗначение". Затем определяется тип используемой переменной (читаем и пишем снизу
вверх). В данном примере тип значения влияет на работу ниже следующего метода.
Необходимо
1. Ввести в поле текст:
ВыбранРусскийЯзык = Истина;
2
Ввестизначение(ВыбранРусскийЯзык,
"Выберите язык", Тип("Булево"));
1
Если ВыбранРусскийЯзык Тогда
Представление = "Понедельник";
Иначе
Представление = "Monday";
КонецЕсли;
Сообщить("Первый день недели: " + Представление);
2. Нажать на кнопку "На клиенте".
Результат работы:
Первый день недели: Понедельник
20
21. Самостоятельное задание 3.02
Чтобы закрепить материал, необходимо написать программный коддля реализации следующих задач.
Сохранить скриншоты всех выполненных упражнений в отчёте
согласно образцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в
заголовке окна отображалась Ваша фамилия.
Задачи:
1. Поиск фальшивой монеты.
21
22. Самостоятельное задание 3.02
Задачи:Поиск фальшивой монеты
Условие задачи:
Имеется 3 монеты, внешне абсолютно неразличимых. Одна из этих монет является
фальшивой, а две другие — настоящие. Известно, что фальшивая монета имеет меньший
вес, чем настоящая (а все настоящие монеты весят одинаково).
В вашем распоряжении есть рычажные (чашечные) весы без гирь, которые могут
показывать только одно из трех состояний:
Левая чаша тяжелее (опустилась вниз).
Правая чаша тяжелее (опустилась вниз).
Чаши находятся в равновесии.
Задание:
1. Написать программный код, с помощью которого можно гарантированно определить
фальшивую монету ровно за 1 взвешивание. Реализовать эту логику с помощью
операторов ветвления (условных операторов) на основе известных весов монет.
Входные данные
Три числовых значения (или переменные), представляющие вес каждой монеты.
22
23. 3.03. Операторы циклов
Операторы цикла. Генератор случайных чисел. Примеры использования.24. Содержание
• Теория• Пример использования конструкций цикла
• Самостоятельное задание 3.03
25. Параметрический цикл Для-По
Параметрический цикл Для ... По ... Цикл используется, когда количество итераций (повторений)известно заранее.
В качестве параметра выступает числовой счетчик, значение которого автоматически
увеличивается на 1 при каждом переходе к следующему шагу (итерации).
Синтаксис:
Для <Имя переменной> = <Выражение 1> По <Выражение 2> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла;
25
26. Итерации по условию цикл Пока
Цикл Пока используется, когда количество повторений (итераций) заранее неизвестно, авыполнение кода зависит от истинности определенного логического условия.
В отличие от цикла Для, здесь разработчик имеет полный контроль над шагом, направлением
обхода и моментом завершения.
Синтаксис:
Пока <Логическое выражение> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла;
Параметры:
<Логическое выражение>
Логическое выражение.
Цикл
Операторы, следующие за ключевым словом Цикл,
выполняются, пока результат логического выражения
равен Истина.
// Операторы
Исполняемый оператор или последовательность таких
операторов.
КонецЦикла
Ключевое слово, которое завершает структуру оператора
цикла.
26
27. Устройство и синтаксис цикла Для Каждого
Цикл Для Каждого ... Из ... Цикл — это специализированная высокопроизводительная конструкция,созданная специально для последовательного перебора элементов коллекций без использования
числовых индексов
В цикле Для Каждого ... Из ... Цикл инициализация следующего элемента коллекции происходит в
самом начале каждой итерации, непосредственно при входе в цикл
Синтаксис:
Для Каждого <Имя переменной 1> Из <Имя переменной 2> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла;
27
28. Генератор Случайных Чисел
Генератор Случайных ЧиселВ следующем примере алгоритм использует генератор случайных чисел.
Рассмотрим как используется встроенный объект ГенераторСлучайныхЧисел.
Объект позволяет получать как случайные целые числа в заданном диапазоне, так и случайные
числа в формате типа Число произвольной длины.
ГенераторСлучайныхЧисел - объект, используемый для генерации последовательности
случайных числовых значений.
Синтаксис:
Методы:
СлучайноеЧисло (RandomNumber)
Конструкторы:
По начальному числу
По умолчанию
Генератор = Новый ГенераторСлучайныхЧисел;
28
29. Итерации по условию цикл Пока
Значение = Неопределено;начало
Значение = Неопределено
Генератор = Новый ГенераторСлучайныхЧисел;
Генератор = Новый ГенераторСлучайныхЧисел
Пока Значение <> 8 Цикл
Значение <> 8
Значение = Генератор.СлучайноеЧисло(1,10);
Нет
Да
Значение = Генератор.СлучайноеЧисло(1,10)
Сообщить(Значение);
КонецЦикла;
Сообщить(Значение)
окончание
29
30. Пример использования конструкции Для Цикл
Реализовать интерактивное заполнение массива, размерностью 5 элементов, числовымизначениями.
Необходимо
1. Ввести в поле текст:
2
1
Данные = Новый Массив(5);
Для Индекс = 0 По 4 Цикл
ВвестиЗначение(Данные[Индекс],
"Введите значение "
+ Строка(Индекс + 1),Тип("Число"));
КонецЦикла
2. Нажать на кнопку "На клиенте".
Результат работы:
30
31. Пример использования конструкции Пока Цикл
Реализовать интерактивное заполнение массива, размерностью 5 элементов, числовымизначениями.
Необходимо
3. Ввести в поле текст:
Данные = Новый Массив(5);
Индекс = 0;
Пока Индекс < 5 Цикл
ВвестиЗначение(Данные[Индекс],
"Введите значение "
+ Строка(Индекс + 1),Тип("Число"));
Индекс = Индекс + 1;
КонецЦикла
4
3
4. Нажать на кнопку "На клиенте".
Результат работы:
31
32. Пример использования конструкции Для Каждого цикл
Реализовать интерактивное заполнение массива, размерностью 5 элементов, числовымизначениями.
Необходимо
5. Ввести в поле текст:
Данные = Новый Массив(5);
Индекс = 0;
Для Каждого Элемент Из Данные Цикл
ВвестиЗначение(Элемент,
"Введите значение "
+ Строка(Индекс + 1),Тип("Число"));
Индекс = Индекс + 1;
КонецЦикла
6
5
6. Нажать на кнопку "На клиенте".
Результат работы:
32
33. Пример работы с конструкцией цикла
Чтобы продемонстрировать ввод и вывод массива можно использовать следующий код:Необходимо
7. Внести в поле текст:
Данные = Новый Массив(5);
Индекс = 0;
Для Индекс=0 По 4 Цикл
ВвестиЗначение(Данные[Индекс],
"Введите значение "
+ Строка(Индекс + 1),Тип("Число"));
КонецЦикла;
8
7
Для Каждого Элемент Из Данные Цикл
Сообщить(Элемент);
КонецЦикла;
8. Нажать на кнопку "На клиенте".
Результат работы:
33
34. Пример работы с конструкцией цикла
Чтобы продемонстрировать ввод и вывод массива можно использовать следующий код:Необходимо
9. Внести в поле текст:
Данные = Новый Массив(5);
Индекс = 0;
Для Индекс=0 По 4 Цикл
ВвестиЗначение(Данные[Индекс],
"Введите значение "
+ Строка(Индекс + 1),Тип("Число"));
КонецЦикла;
10
9
Для Каждого Элемент Из Данные Цикл
Сообщить(Элемент);
КонецЦикла;
10. Нажать на кнопку "На клиенте".
Результат работы:
34
35. Пример работы с конструкцией цикла
Чтобы продемонстрировать ввод массива с использованием генератора случайных чисел и выводмассива можно использовать следующий код:
Необходимо
11. Внести в поле текст:
Данные = Новый Массив(5);
Генератор=новый ГенераторСлучайныхЧисел;
Индекс = 0;
Для Индекс=0 По 4 Цикл
Данные[Индекс] = Генератор.СлучайноеЧисло(1,10);
КонецЦикла;
Для Каждого Элемент Из Данные Цикл
Сообщить(Элемент);
КонецЦикла;
12
11
12. Нажать на кнопку "На клиенте".
Результат работы:
35
36. Самостоятельное задание 3.03
Чтобы закрепить материал, необходимо написать программный коддля реализации следующих задач.
Сохранить скриншоты всех выполненных упражнений в отчёте
согласно образцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в
заголовке окна отображалась Ваша фамилия.
Задачи:
1. Расчет первых 12 чисел Фибоначчи
36
37. Самостоятельное задание 3.03
Задача: Расчет первых 12 чисел ФибоначчиУсловие задачи:
Числа Фибоначчи — это элементы числовой последовательности, в которой первые два
числа равны 0 и 1 (или 1 и 1 в некоторых вариациях), а каждое последующее число равно
сумме двух предыдущих.
В рамках данной задачи приняты следующие стартовые значения:
F1 = 1 (первое число)
F2 = 1 (второе число)
Формула для последующих чисел: Fn = Fn-1 + Fn-2
Задание:
Разработать программный код в консоли кода, который рассчитывает и выводит в окно
сообщений (Сообщить()) первые 12 чисел Фибоначчи в виде строки через запятую:
Ожидаемый результат (Выходные данные):
Программа должна вывести строго следующую последовательность:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,144
37
38. 3.04. Операторы перехода
Перейти. Прервать. Продолжить.39. Содержание
• Теория• Пример использования конструкций перехода
• Самостоятельное задание 3.04
40. Оператор Прервать в цикле
Оператор Прервать используется для прекращения работы цикла (Для, Для Каждого илиПока). После выполнение этого оператора управление передается оператору,
следующему за ключевым словом КонецЦикла.
Правила использования
• Только внутри циклов - оператор нельзя использовать вне циклов (например, просто
внутри процедуры или функции).
• Прерывает только текущий цикл - Если используются вложенные циклы, Прервать
выйдет только из того внутреннего цикла, где он был вызван.
• Используется с условием - Обычно его вызывают внутри конструкции Если...Тогда,
чтобы выйти при достижении конкретного результата.
40
41. Применение оператора Прервать
Данные = Новый Массив(5);Для Индекс = 0 По 4 Цикл
Данные[Индекс]=Индекс;
Если Индекс = 2 Тогда
Прервать;
КонецЕсли;
Сообщить("Значение " + Строка(Индекс)
+ " элемента = " + Данные[Индекс]);
КонецЦикла;
41
42. Пропуск шага итерации с помощью инструкции Продолжить
Оператор Продолжить используется для пропуска оставшейся части кода текущей итерации цикла.В отличие от Прервать, он не останавливает весь цикл, а сразу переходит к началу следующего шага
(Для, Для Каждого или Пока).
Правила использования:
• Только внутри циклов, как и Прервать, этот оператор работает исключительно внутри циклических
конструкций.
• Фильтрация данных - Чаще всего применяется для того, чтобы отсеять неподходящие элементы и
не выполнять для них сложную логику.
• Переход к следующему шагу - В циклах Для счетчик автоматически увеличивается на единицу, а в
циклах Для Каждого берется следующий элемент коллекции.
42
43. Пропуск шага итерации с помощью инструкции Продолжить
Данные = Новый Массив(5);Для Индекс = 0 По 4 Цикл
Данные[Индекс]=Индекс;
Если Индекс = 2 Тогда
Продолжить;
КонецЕсли;
Сообщить("Значение " + Строка(Индекс)
+ " элемента = " + Данные[Индекс]);
КонецЦикла;
43
44. Пример работы с конструкцией Прервать
Чтобы продемонстрировать использование команды «Прервать» можно использовать следующийкод:
Необходимо
1. Внести в поле текст:
Данные = Новый Массив(5);
Для Индекс = 0 По 4 Цикл
Данные[Индекс]=Индекс;
Если Индекс = 2 Тогда
Прервать;
КонецЕсли;
Сообщить("Значение " + Строка(Индекс)
+ " элемента = " + Данные[Индекс]);
КонецЦикла;
2
1
2. Нажать на кнопку "На клиенте".
Результат работы:
44
45. Пример работы с конструкцией Продолжить
Чтобы продемонстрировать использование команды «Продолжить» можно использоватьследующий код:
Необходимо
3. Внести в поле текст:
4
3
Данные = Новый Массив(5);
Для Индекс = 0 По 4 Цикл
Данные[Индекс]=Индекс;
Если Индекс = 2 Тогда
Продолжить;
КонецЕсли;
Сообщить("Значение " + Строка(Индекс)
+ " элемента = " + Данные[Индекс]);
КонецЦикла;
4. Нажать на кнопку "На клиенте".
Результат работы:
45
46. Самостоятельное задание 3.04
Чтобы закрепить материал, необходимо написать программный коддля реализации следующих задач.
Сохранить скриншоты всех выполненных упражнений в отчёте
согласно образцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в
заголовке окна отображалась Ваша фамилия.
Задачи:
1. Контроль лимита отгрузки (Оператор «Прервать»)
2. Фильтрация дорогих товаров (Оператор «Продолжить»).
46
47. Самостоятельное задание 3.04.1
Задача: Контроль лимита отгрузки (Оператор «Прервать»)Условие задачи:
На складе собирают заказы для крупного клиента. У клиента установлен жесткий
финансовый лимит на одну отгрузку — 50 000 рублей. В массив ЦеныТоваров загружены
стоимости отобранных товаров по порядку.
Необходимо рассчитать итоговую сумму заказа, последовательно прибавляя стоимость
каждого товара. Если в процессе суммирования общая стоимость превышает 50 000
рублей, процесс сборки должен быть немедленно остановлен, а оставшиеся в массиве
товары не должны учитываться.
Задание:
1. Реализуйте интерактивный ввод цен в массив ЦеныТоваров с помощью
ВвестиЗначение(). Для проверки введите числа: 10000, 15000, 26000, 15000, 5000.
2. Напишите код в консоли кода, который обходит массив ЦеныТоваров с помощью
цикла.
3. Внутри цикла проверяйте текущую сумму. Как только сумма превысит лимит,
используйте оператор Прервать для выхода из цикла.
4. Выведите в окно сообщений (Сообщить()) итоговую сумму (которая поместилась в
лимит) и номер товара, на котором сборка прервалась.
47
48. Самостоятельное задание 3.04.2
Задача: Фильтрация дорогих товаров (Оператор «Продолжить»)Условие задачи:
Менеджер закупает товары для розничного магазина. У него есть жесткое правило: не
брать в оборот товары стоимостью строго более 20 000 рублей за штуку, так как их
тяжело продать.
В массив ЦеныТоваров загружена стоимость всех предложенных поставщиком позиций.
Необходимо рассчитать общую сумму закупки, складывая только те товары, которые
проходят по критерию цены. Если товар стоит больше 20 000 рублей, алгоритм должен
пропустить его и сразу перейти к анализу следующего товара.
Задание:
1. Реализуйте интерактивный ввод цен в массив ЦеныТоваров с помощью
ВвестиЗначение(). Для проверки введите числа: 10000, 15000, 26000, 15000, 5000.
2. Напишите код в консоли кода, который обходит массив ЦеныТоваров с помощью
цикла.
3. Внутри цикла проверяйте цену текущего товара. Если она превышает 20 000 рублей,
используйте оператор Продолжить, чтобы пропустить шаг суммирования и перейти к
следующей итерации цикла.
4. Выведите в окно сообщений (Сообщить()) итоговую сумму одобренной закупки.
48
49. 3.05. Конфигурация и внешние обработки
Теория. Внешняя обработка. Пример внешней обработки.50. Выполнение практической работы
Разработка кода реализуется в режиме «Конфигуратор».В рамках данной практической работы создается внешняя обработка «Функции и
процедуры». Все задания оформляются как отдельные команды на форме этой обработки.
Проверка работы производится в режиме «1С:Предприятие».
Если алгоритм работает с ошибкой, он корректируется в конфигураторе и заново
тестируется в пользовательском режиме.
50
51. Содержание
• Теория• Создание обработки
• Самостоятельное задание 3.05
52. Теория. Определение внешней обработки
Внешняя обработка в 1С - это специальный объект (файл с расширением .epf), которыйсодержит программный код, алгоритмы и формы для выполнения определенных задач в базе
данных, но хранится и разрабатывается отдельно от основной конфигурации.
Главная суть внешних обработок заключается в том, что их можно запускать в программе без
изменения самой конфигурации и без необходимости завершать сеансы пользователей для
обновления.
52
53. Теория. Редактор формы
• Редактор формы используется для создания и редактирования форм объектов прикладного решения.• Формы объектов используются системой для визуального отображения данных в процессе работы
пользователя.
53
54. Теория. Редактор формы
Любая управляемая форма представляет совокупность следующих составляющих:Реквизиты
Команды
Параметры
Элементы
Командный
интерфейс
Модуль
формы
54
55. Теория. Реквизиты формы
Флажок "Использовать всегда" определяет доступность реквизита на стороне клиента.Клиент
Форма
Реквизит формы
Строка
Сервер
Форма
Реквизит формы
Объект
Константа.НаименованиеКомпании
Доступен для типов: число, строка, дата, булево, ссылочных типов
База данных
• При создании формы на сервере платформа анализирует состав элементов и определяет, с какими
данными они связаны.
• Соответственно, остальные данные можно не передавать на клиент. Но может потребоваться доступ к
этим данным из модуля на клиенте. Для этого введено свойство Использовать всегда.
• Если у реквизита данное свойство установлено, он будет передан на клиента независимо от того, связан
ли с ним какой-либо элемент формы.
55
56. Теория. Элементы формы
РеквизитыКоманды
Параметры
Элементы
Командный
интерфейс
Модуль
формы
56
57. Теория. Элементы формы
Элементы формы предназначены для отображения данных в форме и для обеспечения возможностиинтерактивного изменения данных.
• Также, как и сама форма, элементы
связаны с данными при помощи
реквизитов формы.
• Поведение
элементов
формы
стандартно, но имеет место специфичное
поведение, определяемое расширениями
формы, расширениями самих элементов и
расширениями,
связанными
с
отображаемыми данными.
57
58. Теория. Изменения расположения элементов формы
• Для изменения расположения элементов формы используютсякоманды «Переместить вверх» и «Переместить вниз» в дереве
элементов формы или перетаскиванием мыши.
• Порядок обхода элементов в управляемой формы зависит от
ролей пользователя и функциональных опций, и по своей сути
определяется положением элементов в дереве элементов в форме
(может
меняться
программно
и
интерактивно
самим
пользователем).
58
59. Теория. Классификация команд
Команды подразделяются на:• Независимые команды
• Параметризируемые глобальные команды
• Команды формы
По способу создания делятся на:
По выполняемому действию:
• Стандартные
• Навигационные
• Созданные в конфигурации
• Команды действия
59
60. Теория. Классификация команд
• Независимые команды – важно отнести к подсистеме. Подсистема определяет в каком разделеинтерфейса будет доступна команда
Параметризируемые команды – важно указать свойство «Тип параметров»
• Команды формы – определяются в рамках формы
• Стандартные команды – предоставляются системой для ряда объектов конфигурации
60
61. Теория. Редактор формы. Обработчики событий
• В редакторе формы также имеетсявозможность быстрого создания или перехода
к
обработчикам
событий
конкретного
элемента формы с помощью подменю
"События" в контекстном меню элемента.
• В состав этого меню входят все события,
которые доступны для данного элемента
формы в окне свойств этого элемента.
61
62. Создание обработки
1. Запустить конфигурацию в режиме«Конфигуратора»
2. Выделить «Обработки»
3. Открыть контекстное меню.
4. Нажать «Добавить»
4
62
63. Создание обработки
5. На вкладке основное заполнитьимя: «ФункцииИОбработки»
5
6
6. После нажатия клавиши «Enter»
синоним заполниться
автоматически.
63
64. Создание обработки. Создание формы
7. Перейти на вкладку: «Формы»8
8. Нажать «Добавить»
64
65. Создание обработки. Создание формы
9. В окне «Конструктор формы обработки» оставитьвсе настройки по умолчанию.
10. Нажать «Готово»
10
65
66. Создание обработки. Создание формы
Форма будет выглядеть следующим образом:66
67. Создание обработки. Настройка формы
Форме необходимо задать заголовок:• В контекстном меню выбрать
«Свойства»
67
68. Создание обработки. Настройка формы
11. Форме необходимо задать заголовок:• Заполнить заголовок своими
данными:
Фамилия инициалы и учебная
группа
11
68
69. Самостоятельное задание 3.05
Сохранить скриншоты всех выполненных упражнений в отчёте согласнообразцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в
заголовке окна отображалась Ваша фамилия.
1. Изменить заголовок формы по шаблону — фамилия инициалы, номер
группы.
69
70. 3.06. Функции
Теория. Функции. Определение функций.71. Содержание
• Теория• Определение собственной функции
• Самостоятельное задание 3.06
72. Теория. Определение функции
Теория. Определение функцииФункция — это именованная часть программного кода (подпрограмма), которая выполняет
определенный алгоритм вычислений и обязательно возвращает результат в место своего
вызова.
Свойства
• Обязательный возврат значения - Внутри тела функции обязательно должен быть хотя бы один
оператор Возврат с указанием возвращаемого значения.
• Функция возвращает результат, её вызов можно подставлять прямо в математические
формулы, условия или присваивать переменным.
• Может принимать входные данные (параметры) для проведения расчетов.
72
73. Теория. Объявление функции
Объявление функции — это синтаксическая конструкция,начинающаяся со слова Функция
и заканчивающаяся словом КонецФункции, которая создает алгоритм вычислений, обязательно
возвращающий результат через оператор Возврат.
Функция РассчитатьСумму(Цена, Количество, Валюта = "руб.")
Стоимость = Цена * Количество;
Стоимость = Строка(Стоимость) + " " + Валюта;
Возврат Стоимость;
КонецФункции
Вызов функции можно подставлять прямо в математические формулы, условия или присваивать
переменным.
Сумма = РассчитатьСумму(100, 5,"тугрик");
73
74. Создание функции
1. В редакторе формы перейти на закладку"Модуль":
2
2. Добавить описание функции с алгоритмом.
Название функции должно содержать
название того, что запрашивается у системы.
1
74
75. Создание команды
43. В редакторе формы открыть вкладку
«Команды».
4. Нажать «Добавить»
75
76. Создание команды
5. В отрывшихся свойствах команды заполнить заголовок «Выполнить алгоритм».6. Добавить «Действие». В окне «создание обработчика команды»
выбрать «Создать на клиенте»
5
6
76
77. Создание команды
77. В процедуру обработчик команды
«Команда1» вписать код.
77
78. Создание команды
8. В редакторе формы перенести мышкой команду «Команда1» на форму.8
78
79. Создание команды
9. В редакторе формы для «Команды1» установить флаг «КнопкаПоУмолчанию».9
79
80. Запуск обработки
Запустить конфигурацию в режиме «1С:Предприятие». В открывшейся конфигурации выбратьобработку "Функции и процедуры".
80
81. Запуск обработки
10. Нажать на кнопку "Выполнить алгоритм".10
81
82. Самостоятельное задание 3.06
Чтобы закрепить материал, необходимо написать программный коддля реализации следующих задач.
Сохранить скриншоты всех выполненных упражнений в отчёте
согласно образцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в
заголовке окна отображалась Ваша фамилия.
Задача.
1. Проект по анализу телефонного трафика и логов АТС.
82
83. Самостоятельное задание 3.06
Задача:В рамках проекта по анализу телефонного трафика и логов АТС необходимо
реализовать механизм вывода сообщения о том, в какой 15-секундный
интервал попадает время.
Для этого требуется создать функцию, которая возвращает номер четверти
минуты, в которую попадает текущее время.
Правила определения:
1 четверть с 0 по 14 секунду включительно (интервал [0, 15));
2 четверть с 15 по 29 секунду включительно (интервал [15, 30));
3 четверть с 30 по 44 секунду включительно (интервал [30, 45));
4 четверть с 45 по 59 секунду включительно (интервал [45, 60));
83
84. 3.07. Процедуры
Теория процедуры. Определение процедур.85. Содержание
• Теория• Определение собственной процедуры
• Самостоятельное задание 3.07
86. Теория. Определение Процедуры
Процедура — это именованная часть программного кода, которая представляет собойзаконченный алгоритм для выполнения определенных действий и не возвращает значение в
место своего вызова.
Свойства:
К процедуре обращаются по уникальному имени.
Не возвращает значение процедура не возвращает результат вычислений обратно в
переменную (оператор Возврат внутри процедуры используется только для досрочного
выхода из неё, без указания данных).
Может изменять те переменные, которые в нее передавались.
Может принимать входные данные (параметры) для изменения логики своей работы.
86
87. Теория. Объявление процедуры
Объявление (создание) процедурыначинает ключевое слово Процедура, а завершается объявление словом КонецПроцедуры.
Процедура РассчитатьИтоги(Цена, Количество, Валюта = "руб.")
Стоимость = Цена * Количество;
Сообщить("Итого: " + Стоимость + " " + Валюта);
КонецПроцедуры
87
88. Определение своей процедуры
Определение своей процедурыРассмотрим еще одну задачу, в которой нам может
потребоваться определение собственного метода.
В данном примере дважды повторяется один и тот
же блок операций:
Счетчик = 100000;
Пока Счетчик <> 0 Цикл
Если Счетчик % 10000 = 0 Тогда
Сообщить(Счетчик / 10000);
КонецЕсли;
Счетчик = Счетчик - 10;
КонецЦикла;
Данный набор действий необходимо реализовать
как отдельную процедуру, для упрощения
восприятия алгоритма.
88
89. Определение своей процедуры
Определение своей процедуры1. Имя создаваемой процедуры: "СделатьПаузу":
2. Алгоритм процедуры:
СделатьПаузу()
Счетчик = 100000;
Пока Счетчик <> 0 Цикл
Если Счетчик % 10000 = 0 Тогда
Сообщить(Счетчик / 10000);
КонецЕсли;
Счетчик = Счетчик - 10;
КонецЦикла;
3. Объявление процедуры в модуле
будет иметь следующий вид:
89
90. Определение своей процедуры
Определение своей процедурыИзменим код примера, заменив блок операций на процедуру. Код примера следующий вид:
90
91. Самостоятельное задание 3.07
Чтобы закрепить материал, необходимо написать программный коддля реализации следующих задач.
Сохранить скриншоты всех выполненных упражнений в отчёте
согласно образцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в
заголовке окна отображалась Ваша фамилия.
Задачи:
1. Список дней недели и рабочих часов.
91
92. Самостоятельное задание 3.07
Задачи:Требуется реализовать код процедуры, генерирующий текстовый
список распределения рабочего времени. Программа должна
последовательно вывести 7 строк для каждого дня недели со
следующей логикой:
• С 1-го по 5-й день (будни): фиксируется 8 рабочих часов.
• С 6-го по 7-й день (выходные): фиксируется 0 рабочих часов.
Пример списка:
«В 1-й день – 8 рабочих часов;»
«Во 2-й день – 8 рабочих часов;»
«В 3-й день – 8 рабочих часов;»
«В 4-й день – 8 рабочих часов;»
«В 5-й день – 8 рабочих часов;»
«В 6-й день – 0 рабочих часов;»
«В 7-й день – 0 рабочих часов.»
92
93. 3.08. Передача параметров
Теория. Передача.94. Содержание
• Теория• Использование параметров
• Самостоятельное задание 3.08
95. Теория. Формальные и фактические параметры
Различия между ними заключаются в том, где они находятся и какую роль выполняют:• формальные параметры — это «шаблоны» внутри подпрограммы,
Процедура РассчитатьИтоги(Цена, Количество, Валюта = "руб.")
• фактические — это ранее определенное значение (или переменная), которое передается в
процедуру в момент её вызова.
РассчитатьИтоги(100, 5, "тенге" );
95
96. Теория. Значения параметров по умолчанию
Значения параметров по умолчанию позволяют делать некоторые параметры подпрограмм(процедур или функций) необязательными при вызове. Если разработчик не передает такой
параметр, система автоматически подставляет в него заранее заданное предопределенное
значение
Процедура РассчитатьИтоги(Цена, Количество, Валюта = "руб.“, Выводить = Ложь) ;
Правила задания параметров по умолчанию
•Параметры со значениями по умолчанию всегда должны находиться в самом конце списка
параметров в заголовке подпрограммы. Нельзя поставить обязательный параметр после
необязательного.
96
97. Использование параметров
1. Добавить на форму обработки «ФункцииИПроцедуры» команду «Сообщить название курса».2. Назначить «Действие». В окне «создание обработчика команды» выбрать «Создать на
клиенте».
3. В модуле формы в обработчике команды внести код:
Сообщить(НазваниеКурсаСПараметром("Полное"));
Сообщить(НазваниеКурсаСПараметром("Краткое"));
97
98. Использование параметров
4. Создать собственную функцию с параметромНазваниеКурсаСПараметром(ВидПредставления) и добавить следующий код.
4
98
99. Использование параметров
Полный код процедуры и функции будет иметь следующий вид:99
100. Использование параметров
5. Проверить работу написанного кода можно в режиме 1С:Предприятие.Необходимо запустить конфигурацию и выбрать обработку «Функции и процедуры»
5
100
101. Использование параметров
6. Нажать на кнопку «Вывод названия курса»6
7. Результат работы:
101
102. Использование параметров
При добавлении параметров в уже существующие процедуры и функции, необходимообеспечить работу старых вызовов.
8. Добавить на форму обработки «ФункцииИПроцедуры» команду «Сообщить название курса с
параметром и без».
9. Назначить «Действие». В окне «создание обработчика команды» выбрать «Создать на
клиенте».
10. В модуле формы в обработчике команды внести код:
//Использование метода без параметра
Сообщить(НазваниеКурсаСПараметромИБез());
//Метод с параметром
Сообщить(НазваниеКурсаСПараметромИБез("Полное"));
Сообщить(НазваниеКурсаСПараметромИБез("Краткое"));
102
103. Использование параметров
11. Создать собственную функциюНазваниеКурсаСПараметромИБез(ВидПредставления = Неопределено)
12. Добавить следующий код.
12
103
104. Использование параметров
Полный код процедуры ифункции будет
иметь следующий вид:
104
105. Использование параметров
13. Проверить работу написанного кода можно в режиме 1С:Предприятие.Необходимо запустить конфигурацию и выбрать обработку «Функции и процедуры»
13
105
106. Использование параметров
14. Нажать на кнопку «Вывод названия курса с параметром и без»14
15. Результат работы:
106
107. Самостоятельное задание 3.08
Чтобы закрепить материал, необходимо написать программный коддля реализации следующих задач.
Сохранить скриншоты всех выполненных упражнений в отчёте
согласно образцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в
заголовке окна отображалась Ваша фамилия.
Задачи:
1. Написать функцию возвращающую количество рабочих часов в
зависимости от дня недели.
107
108. Самостоятельное задание 3.08
Задача: Написать функцию, возвращающую количество рабочих часов взависимости от номера дня недели, и вызвать её в цикле для вывода графика.
Логика вычисления рабочих часов:
•С 1-го по 5-й день (будни): фиксируется 8 рабочих часов.
•С 6-го по 7-й день (выходные): фиксируется 0 рабочих часов.
В результате работы программы в окно сообщений должен выводиться график,
сформированный с помощью вашей функции.
Ожидаемый результат вывода:
«В 1-й день – 8 рабочих часов;»
• «Во 2-й день – 8 рабочих часов;»
• «В 3-й день – 8 рабочих часов;»
• «В 4-й день – 8 рабочих часов;»
• «В 5-й день – 8 рабочих часов;»
• «В 6-й день – 0 рабочих часов;»
• «В 7-й день – 0 рабочих часов.»
108
109. 3.09. Способы передачи параметров
Теория. Передача параметров по значению и по ссылке.110. Содержание
• Теория• Передача параметров по ссылке
• Самостоятельное задание 3.09
111. Теория. Способы передачи параметров
Передача параметров процедур и функций выполняется двумя способами.• Один способ называется передачей по ссылке и представляет собой передачу не конкретного
значения параметра, а адреса памяти (ссылки на переменную), где расположено это значение.
Изменение переданного значения в вызываемой процедуре или функции приведет к изменению
передаваемой переменной в вызывающем методе.
• Другой способ называется передачей по значению и представляет собой передачу копии
значения параметра. В этом случае изменение переданного значения в вызываемой процедуре
или функции не приведет к изменению значения передаваемой переменной в вызывающем
методе.
111
112. Теория. Передача параметров по ссылке
Теория. Передача параметров по ссылкеПо умолчанию, передача параметров в процедуры и функции осуществляется по ссылке.
Это означает, что изменение формального параметра внутри процедуры или функции будет
отражаться на значении фактического параметра, переданного при вызове процедуры или функции.
Процедура Процедура1(ФормальныйПараметр1)
ФормальныйПараметр1 = 2 * 3;
КонецПроцедуры
ФактическийПараметр = 10;
Процедура1(ФактическийПараметр);
// будет выведено значение 6 - изменение формального
// параметра внутри процедуры повлияло на изменение
Сообщить(ФактическийПараметр);
112
113. Теория. Передача параметров по значению
При передаче параметра вызываемой процедуры или функции по значению, изменение значенияформального параметра внутри процедуры или функции никак не влияет на фактический
параметр, передаваемый при вызове процедуры или функции.
Указание, что параметр нужно передавать по значению, осуществляется с помощью ключевого
слова Знач.
Процедура Процедура1(Знач ФормальныйПараметр1)
ФормальныйПараметр1 = 2 * 3;
КонецПроцедуры
ФактическийПараметр = 10;
Процедура1(ФактическийПараметр);
// будет выведено значение 10 - изменение формального
// параметра внутри процедуры НЕ повлияло на изменение значения фактического параметра
Сообщить(ФактическийПараметр);
113
114. Передача параметров по ссылке
Передача параметров по ссылке1. Добавить на форму обработки «ФункцииИПроцедуры» команду «Заполнить список».
2. Назначить «Действие». В окне «создание обработчика команды» выбрать «Создать на
клиенте».
3. В модуле формы в обработчике команды внести код:
ДниНедели = Новый СписокЗначений;
ЗапонитьСписокДанными(ДниНедели);
ДниНедели.ВыбратьЭлемент();
114
115. Передача параметров по ссылке
Передача параметров по ссылке4. Создать собственную процедуру с параметром ЗаполнитьСписокДанными(ДниНедели) и
добавить следующий код.
4
115
116. Передача параметров по ссылке
Передача параметров по ссылкеПолный код процедуры и функции будет иметь следующий вид:
116
117. Использование параметров
5. Проверить работу написанного кода можно в режиме 1С:Предприятие.Необходимо запустить конфигурацию и выбрать обработку «Функции и процедуры»
117
118. Использование параметров
6. Нажать на кнопку «Заполнить список»7. Результат работы:
6
118
119. Самостоятельное задание 3.09
Чтобы закрепить материал, необходимо написать программный коддля реализации следующих задач.
Сохранить скриншоты всех выполненных упражнений в отчёте
согласно образцу отчёта.
Внимание на скриншоте должно быть видно окно полностью, чтобы в
заголовке окна отображалась Ваша фамилия.
Задачи:
1. Написать функцию, возвращающую количество рабочих часов в
зависимости от дня недели. Применить функцию получения
количество рабочих часов и список ДниНедели. Обход произвести в
цикле для вывода графика.
119
120. Самостоятельное задание 3.09
Задача: Написать функцию, возвращающую количество рабочих часов в зависимости отдня недели. Применить функцию получения количество рабочих часов и список
ДниНедели. Обход произвести в цикле для вывода графика.
Логика вычисления рабочих часов:
•С понедельника по пятницу (будни): фиксируется 8 рабочих часов.
•В субботу и воскресенье (выходные): фиксируется 0 рабочих часов.
В результате работы программы в окно сообщений должен выводиться график,
сформированный с помощью вашей функции и списка значений.
Ожидаемый результат вывода:
«В понедельник – 8 рабочих часов;»
«Во вторник – 8 рабочих часов;»
«В среду – 8 рабочих часов;»
«В четверг – 8 рабочих часов;»
«В пятницу – 8 рабочих часов;»
«В субботу – 0 рабочих часов;»
«В воскресенье – 0 рабочих часов.»
120
121.
— Спасибо за внимание!121
Программное обеспечение