- •Ведение
- •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 Контрольные вопросы
- •Список литературы
2.3.1.1 Проведение документа
Факт проведения документа и необходимость поддержания актуальной последовательности документов на оси событий порождают два различных способа проведения документов: оперативное и неоперативное проведение.
С оперативным проведением документов связано понятие оперативной отметки времени.
Оперативная отметка времени представляет собой значение типа Дата, которое формирует система. Оперативная отметка времени создается системой каждый раз при оперативном проведении документа. Ее значение формируется исходя из текущего времени и последней созданной оперативной отметки.
Если последняя оперативная отметка меньше текущего времени, в качестве новой оперативной отметки принимается текущее время.
Если последняя оперативная отметка равна или больше текущего времени, в качестве новой оперативной отметки принимается значение, на одну секунду большее, чем старая оперативная отметка времени.
Таким образом, если у объекта конфигурации Документ установлено свойство оперативного проведения, последовательность действий системы будет следующей: при создании нового документа система будет устанавливать ему текущую дату и «нулевое» время.
При проведении такого документа (с текущей датой), система установит в качестве даты документа оперативную отметку времени. Если отменить проведение документа и затем провести его снова (не изменяя даты), система установит документу новую оперативную отметку времени.
Если же попытаться перепровести документ, то будет выдан запрос о виде проведения (оперативное или нет).
В случае оперативного проведения система установит новую оперативную отметку времени, а при неоперативном проведении время документа будет сохранено прежним.
При попытке проведения (или перепроведения) оперативно проводимого документа с датой, отличающейся от текущей, будет выдано сообщение о том, что оперативное проведение невозможно и предложено провести документ неоперативно (т.е. с сохранением существующей даты и времени документа).
2.3.1.2 Создание документа
Пусть одними из самых популярных услуг нашего предприятия являются ремонт телевизоров и установка стиральных машин. И в том, и в другом случае требуются некоторые материалы, которые расходуются в процессе оказания этих услуг. Поэтому двумя важнейшими событиями в хозяйственной жизни нашей организации будут являться поступление материалов и оказание услуг.
Для отражения этих событий в базе данных мы создадим два документа: «Приходная накладная» и «Оказание услуги». Документ «Приходная накладная» будет фиксировать факт поступления в нашу организацию необходимых материалов, а документ «Оказание услуги» будет фиксировать оказание услуг и расход материалов, которые используются при оказании этих услуг.
Создадим новый объект конфигурации Документ. Это делается в дереве конфигурации, на ветке «Документы» делаем щелчок правой кнопкой и из контекстного меню выбираем пункт «Добавить». В ответ запускается мастер создания документов. Зададим имя документа - «ПриходнаяНакладная». Нажмем «Далее».
Рис. 60 Задание имени документа
Рис. 61 Формирование реквизитов документа
Затем переходим на вкладку «Данные», где задаем реквизит документа с именем «Склад» и типом СправочникСсылка.Склады, для этого щелкаем по кнопке «Добавить», и в ответ открывается палитра свойств вновь созданного реквизита:
Рис. 62 Задание свойств реквизитов документов
После этого добавим табличную часть с именем «Материалы» и создадим у нее четыре реквизита:
• «Материал» с типом СправочникСсылка.Номенклатура,
• «Количество» с типом Число, длиной 15, точностью 3, неотрицательное,
• «Цена» с типом Число, длиной 15, точностью 2, неотрицательное,
• «Сумма» с типом Число, длиной 15, точностью 2, неотрицательное.
Для этого щелкаем по кнопке «Добавить табличную часть», в ответ открывается диалог по заданию свойств табличной части.
Рис. 63 Создание табличной части документа
После создания табличной части опишем ее реквизиты. Для добавления нового реквизита надо щелкнуть по кнопке «Добавить реквизит» и в открывшемся диалоге задать его свойства.
Рис. 64 Задание свойств реквизитов табличной части
Затем запустим 1С: Предприятие в режиме отладки и протестируем получившийся результат. В отрывшемся окне программы выполним команду Операции | Документы..., выберем документ «Приходная накладная». Система откроет одну из основных форм документа - основную форму списка.
Пока в нашей базе данных нет ни одного документа «Приходная накладная», поэтому создадим новый документ (создать новый документ можно при помощи пункта меню Действия | Добавить, соответствующей иконки или клавишей «Insert» или щелчком по кнопке «Добавить»).
Система автоматически присвоит номер новому документу и нам останется только выбрать склад и заполнить табличную часть, добавляя новую строку щелком по кнопке «Добавить». Заполним ее материалами для ремонта телевизоров так, как показано на рисунке, затем щелкнем по кнопке [ОК] для выхода с сохранением, и в форме списка документа появится запись о вновь созданном документе:
Рис. 65 Форма документа в пользовательском режиме
Рис. 66 Форма списка документов в пользовательском режиме
Аналогичным образом мы создадим второй документ, который будет приходовать следующие материалы для установки стиральных машин:
Рис. 67 Форма документа в пользовательском режиме
Наверняка вы обратили внимание на то, что при заполнении документа приходится вводить сумму в каждой строке. Это неудобно, и возникает естественное желание автоматизировать работу документа так, чтобы сумма вычислялась автоматически каждый раз при изменении цены или количества материалов в строке. Это совсем не сложно и для этого нам потребуется сначала создать собственную форму документа, а затем воспользоваться возможностями встроенного языка.