- •Ведение
- •1 Основные теоретические сведения
- •1.1 Архитектура среды 1с:Предприятие
- •1.2 Разработка конфигурации
- •1.3 Инструменты разработки
- •1.3.1 Дерево конфигурации
- •1.3.2 Палитра свойств
- •1.3.2.1 Основные свойства
- •1.3.2.2 Группа свойств «Представление»
- •1.3.2.3 Группа свойств «Разработка»
- •1.3.3 Объектные и необъектные данные
- •1.3.4 Конструкторы
- •1.3.4 Редакторы
- •1.3.4.1 Редактор экранных форм
- •1.3.4.2 Редактор интерфейсов
- •1.3.4.3 Табличный редактор
- •1.3.4.4 Редактор программных модулей
- •1.3.5 Встроенный язык
- •1.3.6 Синтакс – помощник
- •1.3.7 Отладчик
- •1.3.8 Замер производительности
- •1.3.9 Механизм запросов
- •1.3.10 Работа с конфигурацией
- •1.3.10.1 Сохранение конфигурации
- •1.3.10.2 Обновление конфигурации
- •1.3.10.3 Сохранение конфигурации в файл
- •1.3.10.4 Создание резервной копии иб
- •1.3.10.5 Сравнение и объединение конфигураций
- •1.3.11 Работа в пользовательском режиме
- •1.3.12 Основная конфигурация и конфигурация базы данных
- •1.3.13 Средства групповой разработки
- •1.4 Объекты системы
- •1.4.1 Классификация объектов конфигурации
- •1.4.1.1 Прикладные объекты
- •1.4.1.2 Подчиненные объекты
- •1.4.2 Типы данных
- •1.4.3 Встроенный язык программирования
- •1.4.3.1 Виды модулей
- •1.4.3.2 Контекст выполнения модуля
- •1.4.3.3 Формат описания элементов языка
- •1.4.3.4 Формат программного модуля
- •1.4.3.5 Формат операторов
- •1.4.3.6 Имена переменных, процедур и функций
- •1.4.3.7 Зарезервированные слова
- •1.4.3.8 Структура программного модуля
- •1.4.3.9 Специальные символы, используемые в исходном тексте
- •1.4.3.10 Примитивные типы данных
- •1.4.3.10.2 Булево (Boolean)
- •1.4.3.10.3 Дата (Date)
- •1.4.3.10.4 Неопределено (Undefined)
- •1.4.3.10.5 Строка (String)
- •1.4.3.10.7 Число (Number)
- •1.4.3.11 Оператор присваивания
- •1.4.3.12 Выражения языка
- •1.4.3.12.1 Арифметические операции
- •1.4.3.12.2 Логические операции
- •1.4.3.12.3 Операции сравнения:
- •1.4.3.12.4 Булевы операции:
- •1.4.3.13 Оператор объявления переменной
- •1.4.3.14 Оператор условного выполнения
- •1.4.3.15 Операторы цикла
- •1.4.3.16 Оператор управления циклом
- •1.4.3.17 Оператор прерывания цикла
- •1.4.3.17 Оператор перехода
- •1.4.3.18 Оператор обработки исключительных ситуаций
- •1.4.3.19 Процедуры и функции
- •1.4.3.19.1 Описание процедур и функций
- •1.4.3.19.1.1 Процедура
- •1.4.3.19.1.2 Функция
- •1.4.3.19.1.3 Предварительное описание процедур и функций
- •1.4.3.19.2 Вызов процедур и функций. Передача параметров
- •1.4.4 Основные приемы работы с объектами в программе
- •1.4.4.1 Обращение к свойствам объектов
- •1.4.4.2 Дополнение контекста объектов и форм
- •1.4.4.3 Работа с прикладными объектами средствами встроенного языка
- •1.4.4.4 Специфические объекты
- •1.4.4.5 Взаимосвязь объектов
- •1.4.4.6 Иерархия объектов
- •1.4.5 Работа с коллекциями значений
- •1.4.5.1 Использование номеров и индексов
- •1.4.5.2 Массив
- •1.4.5.3 Структура
- •1.4.5.4 Соответствие
- •1.4.5.5 Список значений, таблица значений, дерево значений
- •1.4.5.5.1 Список значений
- •1.4.5.5.2 Таблица значений
- •1.4.5.5.3 Дерево значений
- •1.5 Варианты работы системы
- •1.5.1 Файл - серверный вариант
- •1.5.2 Клиент - серверный вариант
- •1.5.2.1 Сервер 1с:Предприятия
- •1.5.2.2 Безопасная зона
- •1.6 Постановка задачи
- •2.1.1.2 Подсистемы
- •2.1.1.3 Константы
- •2.1.1.4. Перечисления
- •2.1.2 Задание на лабораторную работу
- •2.1.3 Контрольные вопросы
- •2.2 Лабораторная работа № 2. Справочники.
- •2.2.1 Теоретические сведения
- •2.2.1.1 Создание справочника с табличной частью
- •2.2.1.2 Создание иерархического справочника
- •2.2.1.3 Создание справочника с предопределенными элементами
- •2.2.1.4 Создание подчиненного справочника
- •2.2.1.5 Создание формы для работы со связанными справочниками
- •2.2.2 Задание на лабораторную работу
- •2.2.3 Контрольные вопросы
- •2.3 Лабораторная работа № 3. Документы
- •2.3.1 Теоретические сведения
- •2.3.1.1 Проведение документа
- •2.3.1.2 Создание документа
- •2.3.1.3 Создание формы документа
- •2.3.1.4 Создание процедуры обработки события в модуле формы
- •2.3.1.5 Создание процедуры обработки события в общем модуле
- •2.3.1.6 Усовершенствование формы документа
- •2.3.1.7 Ввод документов на основании
- •2.3.2 Задание на лабораторную работу
- •2.3.3 Контрольные вопросы.
- •2.4 Лабораторная работа № 4. Регистры сведений
- •2.4.1 Теоретические сведения
- •2.4.1.1 Регистр сведений «КурсыВалют»
- •2.4.1.2 Отбор в диалоге
- •2.4.1.3 Чтение значения курса валют
- •2.4.1.4 Регистр сведений «Цены поставщиков»
- •2.4.1.5 Регистр сведений «Цены номенклатуры»
- •2.4.1.6 Создание функции РозничнаяЦена()
- •2.4.1.7 Автоматическое заполнение цены документа «ОказаниеУслуги»
- •2.4.2 Задание на лабораторную работу
- •2.4.3 Контрольные вопросы
- •2.5 Лабораторная работа № 5. Регистры накопления
- •2.5.1 Теоретические сведения
- •2.5.1.1 Проведение документа по нескольким регистрам
- •2.5.1.2 Регистр «Остатки номенклатуры»
- •2.5.1.2 Проведение документа «РасходнаяНакладная»
- •2.5.1.3 Оборотный регистр накопления «Продажи»
- •2.5.2 Задание на лабораторную работу
- •2.5.3 Контрольные вопросы
- •2.6 Лабораторная работа № 6. Журналы документов. Критерии отбора.
- •2.6.1 Теоретические сведения
- •2.6.1.1 Создание журнала документов
- •2.6.1.2 Создание критерия отбора
- •2.6.2 Задание на лабораторную работу
- •2.7.1.2 Макеты
- •2.7.1.2.1 Фиксация таблицы (шапки и боковика).
- •2.7.1.2.2 Защита от редактирования.
- •2.7.1.2.3 Перемещение по таблице.
- •2.7.1.2.4 Управление видом таблицы.
- •2.7.1.2.5 Масштабирование изображения.
- •2.7.1.3 Построение отчета
- •2.7.1.4 Печатная форма элемента справочника
- •2.7.1.5 Печатная форма списка справочника
- •2.7.1.6 Расшифровка ячейки печатной формы
- •2.7.1.7 Печатная форма документа
- •2.7.1.8 Печатная форма журнала документов
- •2.7.2 Задание на лабораторную работу
- •2.7.3 Контрольные вопросы
- •2.8 Лабораторная работа № 8. Отчеты и обработки.
- •2.8.1 Теоретические сведения
- •2.8.1.1 Создание отчета «Материалы»
- •2.8.1.2 Печать прайс-листа
- •2.8.1.3 Отчет «ЦеныПоставщиков» на заданную дату
- •2.8.2 Задание на лабораторную работу
- •2.8.3 Контрольные вопросы
- •Список литературы
1.4.3.14 Оператор условного выполнения
Оператор условного выполнения позволяет выбирать один из путей продолжения вычислений, в зависимости от проверяемых логических условий. Синтаксис этого оператора:
Если <Логическое_выражение> Тогда
//операторы;
[ИначеЕсли <Логическое_выражение> Тогда]
//операторы;
[Иначе]
//операторы;
КонецЕсли;
Таблица 1.7 Описание параметров оператора условного выполнения
<Логическое_выражение> |
Логическое выражение. |
Тогда |
Операторы следующие за «Тогда» выполняются, если результатом логического выражения в конструкции «Если» является истина. |
//операторы |
Исполняемый оператор или последовательность таких операторов. |
ИначеЕсли |
Логическое выражение, следующее за ключевым словом «ИначеЕсли» вычисляется только тогда, когда условия в «Если» и всех предшествующих «ИначеЕсли» оказались ложными. Операторы, следующие за конструкцией «ИначеЕсли — Тогда» выполняются, если результатом логического выражения в данном «ИначеЕсли» является истина. |
Иначе |
Операторы, следующие за ключевым словом «Иначе» выполняются, если результаты логических выражений в конструкции «Если» и всех предшествующих конструкциях «ИначеЕсли» оказались ложными. |
КонецЕсли |
Ключевое слово, которое завершает структуру оператора условного выполнения. |
Оператор «Если» управляет выполнением программы, основываясь на результате одного или более логических выражений. Оператор может содержать любое количество групп операторов, возглавляемых конструкциями «ИначеЕсли – Тогда» для построения более сложных логических конструкций, например:
Если (Строка1<Строка2) И (Строка1=”Место для подписи”) Тогда
Сообщить("Недостаточно места" );
КонецЕсли;
Если ДеньНедели(РабочаяДата) = 6 Тогда Сообщить("Сегодня суббота.") ; ИначеЕсли ДеньНедели(РабочаяДата) = 7 Тогда Сообщать("Сегодня воскресенье.") ; Иначе Сообщить("Сегодня рабочий день."); КонецЕсли;
1.4.3.15 Операторы цикла
В языке 1С реализованы три оператора цикла:
оператор «Пока»;
оператор «Для»;
оператор «Для каждого».
Оператор «Пока» реализует итерационный цикл с заранее неизвестным числом повторений, и каждый раз при выполнении тела цикла решается вопрос, надо ли повторять тело цикла еще один раз. Этот оператор реализует цикл с предусловием, т.е. проверка условия повторения производится до выполнения тела цикла. Синтаксис этого оператора:
Пока <Логическое_выражение> Цикл
//операторы;
КонецЦикла;
Таблица 1.8 Описание параметров оператора «Пока»
<Логическое_выражение> |
Логическое выражение. |
Цикл |
Операторы, следующие за ключевым словом «Цикл», выполняются, пока результатом логического выражения является истина. |
//операторы; |
Исполняемый оператор или последовательность таких операторов. |
КонецЦикла |
Ключевое слово, которое завершает структуру оператора цикла. |
Оператор цикла «Пока» предназначен для циклического повторения операторов, находящиеся внутри конструкции «Цикл ... КонецЦикла». Цикл выполняется до тех пор, пока логическое выражение сохраняет значение «Истина». Условие выполнения цикла всегда проверяется в начале, перед выполнением цикла. Например:
I=1;
S=0;
Пока I<=10 Цикл
S=S+I;
I=I+1;
КонецЦикла;
Оператор выполнения цикла «Для» реализует арифметический цикл, в котором число повторений цикла известно до первого вхождения в тело цикла. Этот оператор реализует цикл с предусловиями, т.е. проверка условия повторения производится до выполнения тела цикла. Синтаксис этого оператора:
Для <Имя_переменной> = <Выражение1> По <Выражение2> Цикл
//Операторы;
КонецЦикла;
Таблица 1.9 Описание параметров оператора «Для»
<Имя_переменной> |
Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается при каждом повторении цикла. |
<Выражение 1> |
Числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла. |
По |
Синтаксическая связка для параметра <Выражение 2>. |
<Выражение 2> |
Максимальное значение счетчика цикла. Когда переменная Имя_переменной становится больше чем <Выражение 2>, выполнение оператора цикла «Для» прекращается. Величина приращения счетчика при каждом выполнении цикла равна 1. |
Цикл |
Операторы следующие за ключевым словом Цикл выполняются, пока значение переменной Имя_переменной меньше значения <Выражение 2>. |
//Операторы |
Исполняемый оператор или последовательность таких операторов. |
КонецЦикла |
Ключевое слово, которое завершает структуру оператора цикла. |
Оператор цикла «Для» предназначен для циклического повторения операторов, находящиеся внутри конструкции «Цикл ... КонецЦикла». Перед началом выполнения цикла значение <Выражение 1> присваивается переменной <Имя_переменной>. Значение <Имя_переменной> автоматически увеличивается при каждом проходе цикла. Цикл выполняется пока значение переменной <Имя_переменной> меньше или равно значению <Выражение 2>. Величина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.
Пример:
// Перебор дней текущего месяца ПоследнийДеньМесяца = День(КонецМесяца(РабочаяДата)); Для ТекДень = 1 по ПоследнийДеньМесяца Цикл Состояние("Обрабатывается день: " + ТекДень); // Операторы обработки очередного дня месяца КонецЦикла;
Оператор выполнения цикла «Для каждого» реализует арифметический цикл, в котором число повторений цикла известно до первого вхождения в тело цикла, это число элементов коллекции значений. Этот оператор реализует цикл с предусловиями, т.е. проверка условия повторения производится до выполнения тела цикла. Синтаксис этого оператора:
Для каждого <Имя переменной 1> Из <Имя переменной 2> Цикл
// Операторы
КонецЦикла;
Таблица 1.10 Описание параметров оператора «Для каждого»
<Имя_переменной 1> |
Переменная, которой при каждом повторении цикла присваивается значение очередного элемента коллекции. |
Из |
Синтаксическая связка для параметра <Имя переменной 2>. |
<Имя переменной 2> |
Переменная или выражение, предоставляющее коллекцию. Элементы этой коллекции будут присваиваться параметру <Имя переменной 1>. |
Цикл |
Операторы следующие за ключевым словом Цикл выполняются, пока значение переменной Имя_переменной 1 пробегает все множество значений коллекции <Имя переменной 2>. |
//Операторы |
Исполняемый оператор или последовательность таких операторов. |
КонецЦикла |
Ключевое слово, которое завершает структуру оператора цикла. |
Оператор цикла «Для каждого» предназначен для циклического обхода коллекций значений. При каждой итерации цикла возвращается новый элемент коллекции. Обход осуществляется до тех пор, пока не будут перебраны все элементы коллекции.
Пример:
// Перебор строк табличной части документа. НужныйДокумент=Документы.РасходнаяНакладная.НайтиПоКоду(12345); // Проверим найден нужный нам документ или нет Если Не НужныйДокумент.Пустая() Тогда Для каждого СтрокаСостава из НужныйДокумент.Состав Цикл Состояние("Строка: " + Состав.Индекс(СтрокаСостава) + 1); // Операторы обработки очередной строки табличной части КонецЦикла;
КонецЕсли;