
- •Тема 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.
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
5.2. Структура и соответствие
Структура и соответствие являются динамическими наборами данных — коллекциями значений. Каждый элемент такой коллекции представляет собой пару «ключ» и «значение». Ключи структуры и соответствия уникальны, поэтому они однозначно идентифицируют элемент коллекции.
Структуры часто применяются в методах объектов для указания отборов,
Отбор = Новый Структура("Цена", 100);
Выборка = Справочники.Номенклатура . Выбрать (,Отбор);
Структуры можно использовать для передачи списка параметров (в версии 7.7 для этой цели часто применялся список значений и его методы Установить и Получить):
Параметры = Новый Структура("ДатаНач,ДатаКон");
Параметры.ДатаНач = ВыбДата;
Параметры.ДатаКон = ДобавитьМесяц(ВыбДата,1);
Если ВыбТипОтчета <> 0 Тогда
Параметры.Вставить("ТипОтчета",ВыбТипОтчета);
КонецЕсли;
глСформироватьОбороты(Параметры);
Можно перебрать элементы структуры или соответствия с помощью конструкции «Для Каждого». Каждый элемент коллекции является объектом специального типа КлючИЗначение:
Для Каждого парам Из Параметры Цикл
ИмяПараметра = парам.Ключ;
Значение = парам.Значение;
КонецЦикла;
Для структуры можно обращаться к элементам коллекции через точку, поскольку ключи являются свойствами структуры:
НачДата = парам.ДатаНач;
КонДата = парам.ДатаКон;
Для соответствия такое обращение через точку невозможно, так как ключи соответствия могут быть самого разнообразного типа. С помощью метода Свойство можно получить значение заданного ключа или убедиться, что его в структуре нет, например:
Найдено = парам.Свойство("ТипОтчета",ВыбТипОтчета);
Если Найдено Тогда
СформироватьПользовательскийОтчет(ВыбТипОтчета);
Иначе
СформироватьОтчетПоУмолчанию();
КонецЕсли;
У соответствия нет метода Свойство и обращение производится с помощью оператора [...] или метода Получить:
ТоварАналог = соотвАналоги[Товар].Значение;
5.3. Список значений
Список значений — это аналог одномерного массива, который предназначен в основном для решения интерфейсных задач, например, при использовании элементов управления СписокВыбора и ПолеВыбора.
В списке значения могут храниться значения разных типов, хотя можно наложить ограничение с помощью свойства ТипЗначения.
Список значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных. Список значений можно представить себе как таблицу, содержащую следующие колонки:
Значение — собственно хранимое значение.
Представление — пользовательское представление значения, которое будет показано при выводе значения на экран, например, в диалоге выбора значения из списка. Если представление не указано, то оно формируется системой автоматически.
Пометка — пометка (флажок), связанная со значением. Может быть использована для отметки некоторых значений из списка.
Картинка — графическое изображение, связанное с данным значением.
В 1С:Предприятии 8.0 объект СписокЗначений состоит из объектов типа ЭлементСпискаЗначений, которые имеют свойства Значение, Представление, Пометка и Картинка.
Создание новых списков значений производится с помощью ключевого слова Новый:
сзСотр = Новый СписокЗначений;
Ниже демонстрируются приемы добавления и удаления элементов списка значений:
сзСотр. Очистить(); //удалим все элементы
//У следующего элемента индекс 0, представление "Иванов Иван"
сзСотр.Добавить("Иванов","Иванов Иван");
//У следующего элемента будет индекс 1, представление "Петров Петр"
//и установлена пометка
сзСотр.Добавить("Петров","Петров Петр", Истина);
сзСотр.Удалить(1); //удалить 2-й элемент, т.е. Петрова
сзСотр.Вставить(0,"Сидоров"); //Иванов сдвигается ниже
сзСотр.Сдвинуть(1,-1); //сдвинем Иванова обратно к началу
Обращение к элементу списка значений производится по индексу через оператор [...] или с помощью метода Получить:
сзСотр[0].Значение = "Кузнецов";
Перебор элементов списка значений производится следующим образом:
//1-й вариант
Для Каждого эл Из сзСотр Цикл
Сообщить(Эл.Значение);
КонецЦикла;
//2-й вариант
Для н = 0 По сзСотр.Количество()-1 Цикл
Сообщить(сзСотр[н].Значение);
КонецЦикла;
В списке значений можно искать заданное значение:
НайденныйЭлементСписка = сзСотр.НайтиПоЗначению("Иванов");
Если НайденныйЭлементСписка <> Неопределено Тогда
Сообщить("Элемент найден!");
КонецЕсли;
Как уже говорилось выше, в списке значений могут быть пометки, которые представляют собой флажки (значения типа «булево»). С помощью пометок несколько значений списка могут быть выделены, и тем самым они будут отличаться от остальных. Назначение пометок определяется проектной логикой. Разработчик может программно считывать и устанавливать пометки у элементов списка значений:
сзСотр = Новый СписокЗначений;
сзСотр.Добавить("Иванов",,Истина);//пометка установлена
сзСотр.Добавить("Петров");//пометка не установлена
сзСотр.Добавить("Сидоров");//пометка не установлена
ВыборПроизведен = сзСотр.ОтметитьЭлементы("Укажите сотрудников");
Если ВыборПроизведен Тогда
Для Каждого эл Из сзСотр Цикл
Если эл.Пометка Тогда
Сообщить("Отмечен сотрудник " + эл.Значение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Методы ВыбратьЭлемент и ОтметитьЭлементы открывают диалоговое окно для пользователя, в котором он может выбрать один элемент или расставить пометки, тем самым выбрав несколько элементов.
Элементы списка значений могут быть легко отсортированы по значению или по представлению:
сзСотр.СортироватьПоЗначению(НаправлениеСортировки.Возр);
сзСотр.СортироватьПоПредставлению(НаправлениеСортировки.Убыв);
В список значений можно загрузить значения из массива и выгрузить значения в массив, например:
мас = Новый Массив;
мас.Добавить("Иванов");
мас.Добавить("Якушин");
мас.Добавить("Сидоров"};
сзСотр.ЗагрузитьЗначения(мас);
сзСотр.СортироватьПоЗначению();
мас2 = сзСотр.ВыгрузитьЗначения();
При размещении в форме поля списка автоматически создается новый реквизит формы типа СписокЗначений. Через этот реквизит можно управлять содержимым списка, добавлять или удалять элементы, расставлять пометки, задавать картинки. Следует понимать, что ПолеСписка — это не список значений, а элемент управления, имеющий собственный набор свойств и методов. Со списком значений также тесно связан элемент управления ПолеВыбора. Его свойство СписокВыбора представляет собой список значений, из которого пользователь может выбрать одно значение.