- •Ведение
- •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.5.4 Соответствие
Соответствие является универсальной коллекцией, т.е. объектом, предназначенным для работы с не хранящимися в базе данных совокупностями значений. Необходимость в его использовании возникает, когда требуется работать с временным набором данных с чуть более сложной природой, нежели в структуре. Если элемент структуры можно было характеризовать только строковым ключом и значением произвольного типа, то элемент соответствия характеризуется ключом произвольного типа и значением произвольного типа. Чаще всего соответствия применяют в ситуациях, когда необходимо хранить в оперативной памяти для последующей обработки данные с ключами произвольного типа. Кроме того, соответствия удобно использовать для передачи параметров при работе с различными объектами.
Соответствие представляет собой динамический набор данных – коллекцию значений, каждый элемент которой состоит из пар «Ключ» и «Значение». Ключи соответствия уникальны, и поэтому ими можно идентифицировать значения. В отличие от структуры, ключи соответствия могут быть произвольных типов. Рекомендуется, чтобы в качестве ключа выступало значение примитивного типа или другого типа, значение которого может только присваиваться, но не может менять свое содержимое.
При помощи ключей также можно получать значения соответствия, при этом, если передать ключ, не существующий в соответствии, будет возвращено «Неопределено».
Соответствия могут создаваться конструктором «Новый».
СозданноеСоответствие=Новый Соответствие;
где «СозданноеСоответствие» – имя переменной, которая будет содержать созданный объект типа «Соответствие».
После вышеприведенного создания в соответствие можно вставлять элементы (произвольное количество).
Допустим к соответствию «ВозрастСотрудников» нужно добавить новый элемент. В качестве ключа должна выступать ссылка на сотрудника (ее можно считать из переменной «Сотрудник»), в качестве значения – возраст сотрудника (его можно считать из переменной «ВозрастСотрудника»).
Тогда добавление нового элемента можно произвести так
ВозрастСотрудников=Новый Соответствие;
ВозрастСотрудников.Вставить(Сотрудник,ВозрастСотрудника);
или так:
ВозрастСотрудников[Сотрудник]=ВозрастСотрудника;
Запись значений элементов соответствия можно выполнять теми же способами, которые были рассмотрены для соответствия.
А чтение значений элементов соответствия можно выполнять следующим образом:
ВозрастСотрудника= ВозрастСотрудников.Получить(Сотрудник);
или так:
ВозрастСотрудника= ВозрастСотрудников[Сотрудник];
В приведенных примерах из соответствия «ВозрастСотрудников» по ссылке на сотрудника в качестве ключа будет получено значение элемента соответствия.
Поскольку соответствие является коллекцией – перебрать элементы соответствия можно посредством цикла перебора коллекции. Например, чтобы сообщить обо всех ключах и значениях элементов соответствия «Замены», можно сделать следующее:
Для каждого Элемент из Замены Цикл
Сообщить(Элемент.Ключ+Элемент.Значение);
КонецЦикла;
Чтобы удалить элемент соответствия – необходимо знать его ключ. Например, чтобы удалить из соответствия «Замены» элемент со ссылкой на объект, содержащийся в переменной «УдаляемыйТовар», в качестве ключа, достаточно сделать следующее:
Замены.Удалить(УдаляемыйТовар);
Если же нужно удалить все элементы соответствия – применяется метод «Очистить()»:
Замены.Очистить();
В соответствии «КурсыВалютДокумента» в качестве ключа используется значение валюты, а значениями являются структуры, содержащие «Курс» и «Кратность». Как получить курс и кратность валюты «УправленческаяВалюта» ?. Сначала по ключу (ссылке на управленческую валюту) получаем значение соответствия. Поскольку значением является структура курса валют – далее получаем значения структуры по их названиям.
Значение=КурсыВалютДокумента.Получить(УправленческаяВалюта);
Если Значение=Неопределено Тогда
Сообщить(«Данной валюты нет в соответствии»);
Иначе
Курс=Значение[«Курс»];
Кратность=Значение[«Кратность»];
КонецЕсли;