
- •Тема 1. Обзор системы 1с:Предприятие 8.0
- •1.1. Обзор системы 1с:Предприятие 8.0
- •1.2. Объекты конфигурации
- •1.3. Инструменты разработки
- •1.4. Администрирование
- •1.5. Файловый и клиент-серверный варианты работы
- •Вопросы для повторения
- •Резюме по теме
- •Тема 2. Встроенный язык. Программные модули.
- •2.1. Встроенный язык
- •2.1.1. Программные модули
- •2.1.2. Разделы программного модуля
- •2.2. Контекст
- •2.3. Стандарты именования переменных, процедур и объектов конфигурации
- •2.4. Правила написания программных модулей
- •2.5. Конструкции встроенного языка
- •2.5.1. Условия
- •2.5.2. Циклы
- •2.5.3. Безусловные переходы
- •2.5.4. Обработка исключений
- •2.5.5. Процедуры и функции
- •2.6. Инструкции препроцессора
- •2.7. Типы данных
- •2.8. Редактор программных модулей
- •Вопросы для повторения
- •Резюме по теме
- •Тема 3. Основные объекты конфигурации
- •3.1. Константы
- •3.2. Справочники, их структура, предопределенные элементы, подчиненные справочники, иерархические справочники
- •3.2.1. Структура справочника
- •3.2.2. Предопределенные элементы
- •3.2.3. Подчиненные справочники
- •3.2.4. Табличные части
- •3.2.5. Иерархические справочники
- •3.2.6. Экранные формы
- •3.3. Документы и журналы документов
- •3.3.1. Структура документа
- •3.3.2. Экранные формы документа
- •3.3.3. Макеты документа
- •3.3.4. Проведение документов
- •3.3.5. Модуль документа
- •3.3.6. Нумерация документов
- •3.3.7. Журналы документов
- •3.3.8. Последовательности
- •3.4. Перечисления
- •3.5. Отчеты и обработки
- •3.6. Внешние обработки
- •Вопросы для повторения
- •Резюме по теме
- •Тема 4. Интерфейс пользователя
- •4.1. Интерфейсы
- •4.2. Экранные формы
- •4.3. Редактор форм
- •4.4. Элементы управления
- •4.4.1. Поле ввода
- •4.4.2. Надпись
- •4.4.3. Кнопка
- •4.4.4. Командная панель
- •4.4.5. Флажок
- •4.4.6. Переключатели
- •4.4.7. Табличное поле
- •4.4.8. Поле списка
- •4.4.9. Поле выбора
- •4.4.10. Панель
- •4.4.11. Поле табличного документа
- •4.4.12. Рамка
- •4.4.13. Картинка
- •4.4.14. Диаграмма
- •4.4.15. Индикатор
- •4.4.16. Полоса регулирования
- •4.4.17. Поле календаря
- •4.4.18. Поле текстового документа
- •4.4.19. Поле html-документа
- •4.4.20. Разделитель
- •4.5. Привязка границ
- •4.6. Приемы программирования
- •4.6.1. Открытие и закрытие форм
- •4.6.2. Формы для выбора
- •4.6.3. Внешний вид формы
- •4.6.4. Элементы формы
- •Вопросы для повторения
- •Резюме по теме
- •Тема 5. Коллекции значений
- •5.1. Массив
- •5.2. Структура и соответствие
- •5.3. Список значений
- •5.4. Таблица значений
- •5.5. Дерево значений
- •Вопросы для повторения
- •Резюме по теме
- •Тема 6. Взаимодействие с другими системами
- •6.1. Текстовые файлы
- •6.1.1. Объект «ТекстовыйДокумент»
- •6.1.2. Последовательный доступ к тексту
- •6.1.3. Объект «ЗаписьТекста»
- •6.1.4. Объект «ЧтениеТекста»
- •6.2. XBase (работа с dbf-файлами)
- •6.2.1. Запись dbf-файла
- •6.2.2. Чтение dbf-файла
- •6.2.3. Удаленные записи
- •6.2.4. Индексы
- •6.3.1. Запись xml
- •6.3.2. Чтение xml
- •6.4. Интернет-технологии
- •6.4.1. Интернет-соединение
- •6.4.2. Поле html-документа
- •6.4.3. Электронная почта (e-mail)
- •6.4.4. Работа с ftp
- •6.5. Работа с операционной системой
- •6.7. Механизм Automation
- •6.8. Технология внешних компонент
- •Вопросы для повторения
- •Резюме по теме
- •Практикум (лабораторный) Лабораторная работа №1. Знакомство с платформой 1с:Предприятие 8.0. Создание новой информационной базы.
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №2. Знакомство с объектом конфигурации «Справочник».
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №3. Знакомство с объектом конфигурации «Документ».
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №4. Знакомство с объектом конфигурации «Регистр накопления».
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №5. Знакомство с объектом конфигурации «Отчет».
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №6. Знакомство с объектом конфигурации «Макет».
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №7. Редактирование макетов и форм.
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №8. Периодический регистр сведений.
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №9. Знакомство с объектом конфигурации «Перечисление».
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №10. Проведение документа по нескольким регистрам.
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа №11. Оборотный регистр накопления.
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа № 12. Знакомство с объектом конфигурации «Отчет» ч.1.
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
- •Лабораторная работа № 13. Знакомство с объектом конфигурации «Отчет» ч.2.
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
2.5. Конструкции встроенного языка
Текст программного модуля записывается на встроенном языке с использованием конечного набора конструкций и ключевых слов.
Конструкции встроенного языка могут записываться на русском или английском языке, кроме нескольких слов, для которых нет подходящих русских эквивалентов, например, Null.
Операторы встроенного языка должны разделяться точкой с запятой («;»), но после ключевых слов КонецПроцедуры или КонецФункции точка с запятой не ставится, поскольку это не операторы, а операторные скобки.
Ниже описаны основные конструкции встроенного языка 1C:Предприятия 8.0.
2.5.1. Условия
Конструкция «Если ... Тогда»
Оператор Если предназначен для проверки логических выражений и полностью аналогичен подобным операторам в других языках программирования. Когда результат логического выражения равен Истина, то выполняется блок операторов после ключевого слова Тогда. Оператор Если может иметь ветви ИначеЕсли, а также ветвь Иначе.
Примеры:
//1-й пример
Если Состав.Количество()=0 Тогда
Предупреждение("Не указано ни одной строки!");
КонецЕсли;
//2-й пример
Eсли Сотр.Категория = Перечисления Категории.Совместитель Тогда
//обработаем как совместителя
Иначе
//обычный сотрудник
КонецЕсли;
//3-й пример
Если выбор = 1 Тогда
Сообщить("Выбран 1-й пункт");
ИначеЕсли выбор = 2 или выбор = 3 Тогда
Сообщить("Выбран 2-й или 3-й пункт");
Иначе
Сообщить("Обработка этого пункта не предусмотрена");
КонецЕсли;
Ключевые слова ИначеЕсли, Иначе и КонецЕсли желательно записывать с новой строки. Следующий пример показывает нежелательное форматирование оператора Если:
//так делать не рекомендуется!
Если Состав. Количество () = 0 Тогда ... Иначе ... КонецЕсли;
При таком форматировании нарушается блочная структура программы, не работают группировки конструкций встроенного языка в редакторе модулей, усложняется понимание программы.
Если результат выражения имеет тип «булево» и требуется сравнить его со значением Истина, то следующие конструкции полностью эквивалентны:
Если Выборка.Следующий() = Истина Тогда //так не рекомендуется
Если Выборка.Следующий() Тогда //это рекомендуемый вариант
Логический оператор НЕ позволяет инвертировать результат логического выражения и подобным же образом заменить сравнение со значением Ложь. Следующие конструкции делают одно и то же:
Если ВыбФирма.Пустая() = Ложь Тогда
Если НЕ ВыбФирма.Пустая() Тогда
Конструкция «?(..., ..., ...)»
Данная конструкция позволяет записать условный оператор в одну строку и вычислить его как выражение.
Пример:
Коментарий = ? (Количество=0, "Пусто", Строка (Количество)+" ш т . ");
Обычно эта конструкция применяется в выражениях и работает как следующая функция:
Функция СокращенноеЕсли(РезультатУсловия,выражение1,выражение2)
Если РезультатУсловия Тогда //Истина
Возврат выражение!;
Иначе //Ложь
Возврат выражение2;
КонецЕсли;
КонецФункции
Логические выражения
В операторе Если, конструкциях «?(...)», а также в цикле Пока применяются логические выражения, т.е. такие, результат которых имеет тип «булево» с двумя значениями: Истина и Ложь.
В логических выражениях могут применяться логические сомножители НЕ, И, ИЛИ (в порядке приоритета). Для задания правильного порядка вычисления рекомендуется расставлять скобки, например:
//следующую конструкцию:
Если НЕ Страна = ВыбСтрана ИЛИ Цена > 100 И Цена < 1000 Тогда
//лучше записать так:
Если (НЕ Страна = ВыбСтрана) ИЛИ (Цена > 100 И Цена < 1000) Тогда
В 1C: Предприятии 8.0 введено сокращенное вычисление логических выражений. Это означает, что если по части выражения можно определить конечный результат, тогда остаток логического выражения не вычисляется.
Например:
Если Цена > 10 И Цена < 20 Тогда
При вычислении результата составного логического выражения проверяется первое условие «Цена > 10». Допустим, цена равна 5, тогда первое условие не выполняется (дает значение Ложь) и следующую часть вычислять уже не нужно, поскольку в любом случае результат всего выражения будет Ложь.
Другой пример:
Если Цена = 10 ИЛИ Цена = ПолучитьЦенуСоСкидкой Тогда
Сначала проверяется первое условие «Цена = 10». Допустим, оно выполняется (дает значение Истина), тогда следующую часть условия можно не вычислять, поскольку результат всего выражения будет Истина, независимо от второго условия. Обратите внимание, что в этом случае функция ПолучитьЦенуСоСкидкой не будет вызвана! Если по проектной логике она должна вызываться в любом случае, тогда это следует сделать до условия, а результат запомнить в переменную, например:
ЦенаСоСкидкой = ПолучитьЦенуСоСкидкой();
Если Цена =10 ИЛИ Цена = ЦенаСоСкидкой Тогда
Итак, при сокращенном вычислении логических выражений применяются следующие правила:
Если один из сомножителей оператора И равен Ложь, то конечный результат выражения будет Ложь, независимо от значения других сомножителей.
Если один из сомножителей оператора ИЛИ равен Истина, то конечный результат выражения будет Истина, независимо от значения других сомножителей.