РефератыИнформатика, программированиеСоСоздание автоматизиpованной инфоpмационно-спpавочной системы расписания движения поездов и продажи билетов

Создание автоматизиpованной инфоpмационно-спpавочной системы расписания движения поездов и продажи билетов

ФЕДЕРАЛЬНОЕ АГЕНТСТВО МОРСКОГО И РЕЧНОГО ТРАНСПОРТА


Федеральное государственное образовательное учреждение высшего профессионального образования


«Санкт-Петербургский государственный университет водных коммуникаций»


КУРСОВАЯ РАБОТА


ПО ДИСЦИПЛИНЕ «БАЗЫ ДАННЫХ И ЭКСПЕРТНЫЕ СИСТЕМЫ»


ТЕМА:


«
Создание автоматизиpованной инфоpмационно - спpавочной системы расписания движения поездов и продажи билетов»


Санкт-Петербург


2009 г


Оглавление


Введение


1 Описание системы


1.1 Нормализация и схема базы данных


1.2 Структура меню


2 Программная реализация информационной системы


2.1 Перечисления


2.2 Справочники


2.3 Документы


2.4 Регистры


2.5 Журналы


2.6 Отчеты


2.7 Администрирование


Заключение


Введение


Система программ "1С: Предприятие" предназначена для решения широкого спектра задач автоматизации учета и управления, стоящих перед динамично развивающимися современными предприятиями.


Смоделировать технологию накопления и обработки информации об учёте карточек пациентов в поликлинике. Обязательно должна быть выходная справочная информация (является основной целью функционирования любой информационной системы). Для этого:


- определяем объекты предметной области, описывающие атрибуты;


- создаём «нормальную форму», которая приводит к нормализации всех полученных отношений;


- составляем полный перечень всех запросов к БД;


- определяем структурные связи;


- построение схемы объекта.


Использование БД и СУБД при построении автоматизированной информационной системы отделяет логическую структуру данных (т.е. представлении об организации данных с точки зрения пользователя) от физической структуры данных в памяти ЭВМ, что значительно облегчает труд по созданию такой системы.


Под СУБД понимают пакет прикладных программ обслуживания БД, которая:


Обеспечивает пользователей языковыми средствами описания манипулирования данных;


Обеспечивает поддержку логической модели данных (т.е. логического представления физических данных);


Выполнение операции создания и манипулирования логических данных, а также обрабатывает и отображает операции над физическими данными;


Обеспечивает защиту целостности и корректности данных.


Преимуществом использования БД и СУБД при построении информационных систем заключается в централизованном управлении информационными ресурсами всей системы.


Достоинством является возможность однократно ввода данных и многократного использования, а также отсутствия проблемы контроля избыточности данных вследствие интеграции данных. Унификация средств организации данных и независимость прикладных программ значительно повышает эффективность труда.


1 Описание системы


Рассмотрим задачи, которые должна выполнять проектируемая информационно-справочная система и некоторые их особенности.


Основное предназначение информационно-справочная системы учёта расписания движения поездов и продажа билетов –покупка и бронирование билетов пассажирами. При этом оформляются различного рода документы. Пассажир может получить предоставляемую услугу за наличный расчёт, безналичный расчёт, взаиморасчет. В базе хранится информация о поездах


По своей сути СУБД будет оперативно выполнять следующие функции:


- формирование и печать сопроводительных документов, операций с пассажирами;


- формирование и печать отчёта расписания поездов;


-
формирование и печать отчёта о ценах билетов;


-
формирование и печать отчёта о проданных билетах за период;


-
формирование и печать отчёта о билете конкретного пассажира;


-
формирование и печать отчёта о поездах за период;


-
формирование и печать отчёта о движениях наличности за период;


-
разграничение прав доступа пользователей к той или иной информации, хранящейся в информационной базе.


1.1 Нормализация и схема базы данных


Определим объекты и атрибуты проектируемой системы.Рассмотрим отношение следующей структуры:


ПриемПациента (Код_Пациента, Наименование_Пациента, Диагноз, НомерАмбулаторнойКарты, Адрес, Вид_Оплаты, Документ, Симптомы, Наименование_Услуга, Цена, Количество, Сумма)


В этом отношении имеется составной ключ – это код_пациент, диагноз, услуга. Все атрибуты отношения атомарны, значит оно находится в 1НФ. Рассмотрим наблюдающиеся в этом отношении функциональные зависимости. Прежде всего, в отношении содержится частичная функциональная зависимость неключевых атрибутов от ключа отношения:


Пациент – Наименование_Пациента, Пациент – Адрес_Пациента, Диагноз – Симптомы, наименование_Услуга – Цена.


Не ключевой атрибут Наименование_Пациента зависит от от ключа Код_Пациента.


Транзитивные зависимости: Диагноз ->-> Услуга->-> Симптомы


Наименование_Пациента ->-> Адрес


Наименование_Пациента ->-> Симптомы


Приведем это отношение ко 2НФ, разбивая исходное отношение и производя внешнее кодирование, при этом получаем отношения:


Пациент(Код, Наименование_Пациента, Адрес, Симптомы)


АмбулаторнаяКарта(Код_Пациента,Наименование_Пациента, Номер_АмбулаторнаяКарта, Диагноз, Услуга, Цена, Сумма)


Услуга(Код_Услуги, Наименование_Услуги, Цена_Услуги, Единица_Измерения)


Перейдём к рассмотрению в полученных отношениях транзитивных зависимостей неключевых атрибутов от ключа.


Код_Пациента -> Номер_АмбулаторнаяКарта -> Диагноз.


Ввиду дублирования информации об одном диагнозе для одного товара, избыточность данных, будем дальше преобразовывать отношение.


Выявим теперь независимые многозначные зависимости, они имеются в отношении ПриёмаПацинта:


Номер ->-> Код_Пациента ->-> Номер->->Код_Услуги


Будем считать, что у нас нет транзитивных зависимостей неключевых атрибутов от ключа. Получаем следующие отношения:


Пациент (Номер Пациента, Дата Рождения, НомерАмбулаторнойКарта);


Сотрудники (Номер_Сотрудника,ФИО, Данные);


Услуги (Дата, Наименование, Цена, Сеанс, ЕдиницаИзмерения);


Документ (НомерДокумента, ДатаВыдачи).


Здесь мы освобождаем отношение от избыточности, а также различного рода аномалий. Но не всех.


В нашем отношении присутствует зависимость неключивого атрибута от ключа. Для того, чтобы не возникало новых аномалий, необходимо ликвидировать части составного ключа от неключевых атрибутов. С этой целью исходное отношение разлагается на отношения:


Выявлено у пациента (Диагноз, Пациент) и Назначение (Пациент, Услуги).


Теперь раскладываем исходное отношение на несколько отношений с многозначными зависимостями от одного ключа. Раскладываем отношение на два отношения: Номер_АмбулаторнаяКарта (АмбулаторнаяКарта, Пациент);


Назначение (Пациент, Симптомы).


В результате нормализации была получена следующая система отношений:


Пациент ( Наименование_Пациента, Дата_Рождения, Пол, Номер_АмбулаторнойКарты, Адрес);


Сотрудник(Наименование_Сотрудника, Дата_Рождения, Пол, Образование);


Адрес ( Наименование_Адреса);


Документ (Наименование_ Документ, Номер, Дата_Выдачи);


Услуги(Наименование_Услуги, Цена, Сеанс, Единица_Измерения);


Болезни (Код_ Болезни, Наименование_ Болезни);


Симптомы (Заболевание).


1.2 Структура меню


В главном меню пользователю предоставляется возможность выбирать следующие пункты меню и пункты подменю:


Справочники:


Пассажиры;


Поезд;


Места;


Документ;


Журналы документов
:


Касса;


Документы
:


Билет;


Бронирование Билетов;


Возврат;


Расписание Поездов;


Отчеты:


Расписание Поездов;


Цены На Билеты;


Информация О поездах ;


Проданные Билеты;


Движение Наличности За Период;


Билет;


2 Программная реализация информационной системы


2.1 Перечисления


Перечисления:


На снимке экрана представлены перечисления, используемые в системе:



2.2 Справочники


В данной информационно-справочной системе существуют следующие справочники: Документ, Места, Пассажиры, Поезд.



1) Пассажиры:


Форма элемента:



Печатная форма элемента справочника:



Форма списка:




Печатная форма:


2) Документ


Форма элемента:



Форма списка:



Печатная форма:



3) Поезд


Форма элемента:



Печатная форма:



Форма списка:



Печатная форма:



4) Места


Форма элемента:



Печатная форма:



Форма списка



Печатная форма:



2.3 Документы


1) Билет:


Форма документа:




Печатная форма:


Модуль документа:


Процедура Место Цена При Изменении (Элемент)


Строка Табличной Части = Элементы Формы. Место. Текущие Данные; Рассчитать Сумму (Строка Табличной Части );


Конец Процедуры


Процедура Место НДС При Изменении (Элемент)


Строка Табличной Части = Элементы Формы. Место. Текущие Данные; Рассчитать Сумму (Строка Табличной Части );


Конец Процедуры


Процедура Перед Записью (Отказ, Режим Записи, Режим Проведения)


Сумма Документа = Место. Итог ("Сумма");


Конец Процедуры


Процедура Печать(Элемент)


//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


Таб Док = Новый Табличный Документ;


Макет = Документы. Билет. Получить Макет("Печать");


// Заголово Область = Макет. Получить Область("Заголовок");


Таб Док. Вывести (Область);


// Шапка


Область = Макет. Получить Область("Шапка");


Область. Параметры. Номер = Номер;


Область. Параметры. Дата = Дата;


Область. Параметры. Номер Билета = Номер Билета;


Область. Параметры. ФИО = ФИО;


Область. Параметры. Документ = Документ;


Область. Параметры. Поезд = Поезд;


Область. Параметры. Станция Отправления = Станция Отправления;


Область. Параметры. Станция Прибытия = Станция Прибытия;


Область. Параметры. Дата Отправления = Дата Отправления;


Область. Параметры. Дата Прибытия = Дата Прибытия;


Таб Док. Вывести(Область);


// Вагон


Область = Макет. Получить Область ("Вагон Шапка");


Таб Док. Вывести (Область);


Для Каждого Тек Строка Вагон Из Вагон Цикл


Область = Макет. Получить Область ("Вагон");


Область. Параметры. ТипВагона = ТекСтрока Вагон. Тип Вагона;


Область. Параметры. Номер Вагона = ТекСтрока Вагон. Номер Вагона;


ТабДок. Вывести (Область);


Конец Цикла;


// Место


Область = Макет. Получить Область ("Место Шапка");


ТабДок. Вывести(Область);


Для Каждого ТекСтрока Место Из Место Цикл


Область = Макет. Получить Область ("Место");


Область. Параметры. Номер Места = ТекСтрока Место. Номер Места ;


Область. Параметры. Цена = ТекСтрока Место. Цена;


Область. Параметры. НДС = ТекСтрока Место. НДС;


Область. Параметры. Сумма = ТекСтрока Место. Сумма;


ТабДок. Вывести(Область);


Конец Цикла;


// Подвал


Область = Макет. Получить Область("Подвал");


Область. Параметры. Сумма Документа = Сумма Документа ;


ПараметрыПредметаИсчисления="рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2";


Форматная Строка="Л=ru_RU";


Область. Параметры. Сумма Прописью = Число Прописью (Сумма Документа, Форматная Строка, Параметры Предмета Исчисления );


ТабДок. Вывести(Область);


ТабДок. Отображать Сетку = Ложь;


ТабДок. Защита = Истина;


ТабДок. Только Просмотр = Ложь;


ТабДок. Отображать Заголовки = Ложь;


ТабДок. Показать();


//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ


Конец Процедуры


2) Бронирование билетов


Форма документа:



Печатная форма:



Модуль документа:


Процедура Печать(Элемент)


//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


ТабДок = Новый Табличный Документ;


Макет = Документы. Бронирование Билетов. Получить Макет("Печать");


// Заголовок


Область = Макет. Получить Область ("Заголовок");


ТабДок. Вывести (Область);


// Шапка


Область = Макет. Получить Область ("Шапка");


Область. Параметры. Номер = Номер;


Область. Параметры. Дата = Дата;


Область. Параметры. ФИО = ФИО;


Область. Параметры. Документ = Документ;


Область. Параметры. Станция Отправления = Станция Отправления;


Область. Параметры. Дата Отправления = Дата Отправления;


Область. Параметры. Станция Прибытия = Станция Прибытия;


Область. Параметры. Дата Прибытия = Дата Прибытия;


Область. Параметры. Цена = Цена;


ПараметрыПредметаИсчисления="рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2";


Форматная Строка ="Л=ru_RU";


Область. Параметры. Сумма Прописью = Число Прописью (Цена, Форматная Строка, Параметры Предмета Исчисления );


ТабДок. Вывести (Область);


ТабДок. Отображать Сетку = Ложь;


ТабДок. Защита = Истина;


ТабДок. Только Просмотр = Истина;


ТабДок. Отображать Заголовки = Ложь;


ТабДок. Показать();


//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ


Конец Процедуры


3) Возврат билетов


Форма документа:



Печатная форма:



Модуль документа:


Процедура Печать1(Элемент)


//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать1)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


ТабДок = Новый Табличный Документ;


Макет = Документы. Возврат Билетов. Получить Макет("Печать1");


// Заголовок


Область = Макет. Получить Область ("Заголовок");


ТабДок. Вывести(Область);


// Шапка


Область = Макет. Получить Область ("Шапка");


Область. Параметры. Номер = Номер;


Область. Параметры. Дата = Дата;


Область. Параметры. Пассажир = Пассажир;


Область. Параметры. Номер Билета = Номер Билета ;


Область. Параметры. Станция Отправления = Станция Отправления;


Область. Параметры. Станция Прибытия = Станция Прибытия;


Область. Параметры. Дата Отправления = Дата Отправления;


Область. Параметры. Дата Прибытия = Дата Прибытия;


Область. Параметры. Сумма = Сумма; ПараметрыПредметаИсчисления="рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2";


Форматная Строка ="Л=ru_RU";


Область. Параметры .Сумма Прописью = Число Прописью (Сумма, Форматная Строка, Параметры Предмета Исчисления );


ТабДок. Вывести(Область);


ТабДок. Отображать Сетку = Ложь;


ТабДок. Защита = Истина;


ТабДок. Только Просмотр = Истина;


ТабДок. Отображать Заголовки = Ложь;


ТабДок. Показать ();


//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ


Конец Процедуры


4) Расписание поездов


Форма документа:



Печатная форма:



Модуль документа:


Процедура Печать(Элемент)


//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


ТабДок = Новый Табличный Документ;


Макет = Документы. Расписание Поездов. Получить Макет ("Печать");


// Заголовок


Область = Макет. Получить Область ("Заголовок");


ТабДок. Вывести (Область);


// Шапка


Область = Макет. Получить Область("Шапка");


Область. Параметры. Номер = Номер;


Область. Параметры. Номер Поезда = Номер Поезда ;


Область. Параметры. Название Поезда = Название Поезда;


Область. Параметры. Станция Отправления = Станция Отправления;


Область. Параметры. Дата Отправления = Дата Отправления;


Область. Параметры. Станция Прибытия = Станция Прибытия;


Область. Параметры. Дата Прибытия = Дата Прибытия;


ТабДок. Вывести (Область);


ТабДок. Отображать Сетку = Ложь;


ТабДок. Защита = Истина;


ТабДок. Только Просмотр = Истина;


ТабДок. Отображать Заголовки = Ложь;


ТабДок. Показать ();


//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ


Конец Процедуры


2.4 Регистры


1) Цены На Билеты
(регистр сведений) – независимый, цены вводятся пользователем.


Измерения:


Поезд


Места


Ресурсы:


Цена


2) Продажа Билетов
(регистр сведений) – регистратором является документ Билет.


Измерения:


Номер Билета


Пассажир


Ресурсы:


Цена


3) Информация О поездах
(регистр сведений) – регистратором является документы Билет и Расписание Поездов.


Измерения:


Поезд


Станция Отправления


Станция Прибытия


Дата Отправления


4) Проданные Билеты
(регистр остатков) – регистратором является документы Билет, Возврат Билетов.


Измерения:


Пассажир


Ресурсы:


Номер Билета


5) Касса
(регистр остатков) – регистратором является документы Билет, Возврат Билетов, Бронирование Билетов .


Ресурсы:


Сумма.


Реквизиты:


Пассажир.


2.5 Журналы


1) Касса.


Реестр документов:



2.6 Отчеты



1) ЦеныНаБилеты


Диалог:


Печатная форма:



Модуль отчёта:


процедура Действия Формы Цены На Билеты Сформировать (Кнопка)


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Цены На Билеты)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктор

а, внесенные вручную изменения будут утеряны!!!


ТабДок = Элементы Формы. Поле Табличного Документа ;


Цены На Билеты (ТабДок);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА


Конец Процедуры


Процедура Цены На Билеты(ТабДок) Экспорт


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Цены На Билеты)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


Макет = Отчет Объект. Получить Макет ("Цены На Билеты ");


Запрос = Новый Запрос;


Запрос. Текст =


"ВЫБРАТЬ


| Цены На Билеты. Период ,


| Цены На Билеты. Поезд,


| ПРЕДСТАВЛЕНИЕ(Цены На Билеты. Поезд),


| Цены На Билеты. Места,


| Цены На Билеты. Цена


|ИЗ


| Регистр Сведений. Цены На Билеты КАК Цены На Билеты ";


Результат = Запрос. Выполнить ();


Область Заголовок = Макет. Получить Область("Заголовок");


Область Подвал = Макет. Получить Область("Подвал");


Область Шапка Таблицы = Макет. Получить Область ("Шапка Таблицы");


Область Подвал Таблицы = Макет. Получить Область ("Подвал Таблицы ");


Область Детальных Записей = Макет. Получить Область ("Детали");


ТабДок. Очистить();


ТабДок. Вывести(Область Заголовок );


ТабДок. Вывести(Область Шапка Таблицы);


ТабДок. Начать Автогруппировку Строк();


Выборка Детали = Результат .Выбрать();


Пока Выборка Детали. Следующий() Цикл


Область Детальных Записей. Параметры. Заполнить (Выборка Детали);


ТабДок. Вывести (Область Детальных Записей, Выборка Детали. Уровень());


Конец Цикла;


ТабДок. Закончить Автогруппировку Строк();


ТабДок. Вывести(Область Подвал Таблицы);


ТабДок. Вывести(Область Подвал );


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ


Конец Процедуры


Информация о поездах



2) Диалог:



Печатная форма:


Модуль отчёта:


Процедура ДействияФормыИнформацияОПоездахСформировать(Кнопка)


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(ИнформацияОПоездах)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;


ИнформацияОПоездах(ТабДок, ДатаКонца, ДатаНачала);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА


КонецПроцедуры


Процедура ИнформацияОПоездах(ТабДок, ДатаКонца, ДатаНачала) Экспорт


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ИнформацияОПоездах)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


Макет = ОтчетОбъект.ПолучитьМакет("ИнформацияОПоездах");


Запрос = Новый Запрос;


Запрос.Текст =


"ВЫБРАТЬ


| ИнформацияОПоездах.Период,


| ИнформацияОПоездах.Поезд,


| ИнформацияОПоездах.СтанцияОтправления,


| ИнформацияОПоездах.СтанцияПрибытия,


| ИнформацияОПоездах.ДатаОтправления,


| ИнформацияОПоездах.ДатаПрибытия


|ИЗ


| Регистр Сведений.ИнформацияОПоездах КАК Информация О Поездах


|ГДЕ


| ИнформацияОПоездах.Период МЕЖДУ &ДатаНачала И &ДатаКонца";


Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);


Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);


Результат = Запрос.Выполнить();


ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");


ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");


ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");


ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");


ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");


ТабДок.Очистить();


ТабДок.Вывести(ОбластьЗаголовок);


ТабДок.Вывести(ОбластьШапкаТаблицы);


ТабДок.НачатьАвтогруппировкуСтрок();


ВыборкаДетали = Результат.Выбрать();


Пока ВыборкаДетали.Следующий() Цикл


ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);


ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());


КонецЦикла;


ТабДок.ЗакончитьАвтогруппировкуСтрок();


ТабДок.Вывести(ОбластьПодвалТаблицы);


ТабДок.Вывести(ОбластьПодвал);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ


Конец Процедуры


3) Расписание поездов


Диалог:


Печатная форма:



Модуль:


Процедура Действия Формы Расписание Поездов Сформировать(Кнопка)


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Расписание Поездов)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


ТабДок = Элементы Формы. Поле Табличного Документа;


Расписание Поездов (ТабДок);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА


Конец Процедуры


Процедура Расписание Поездов(ТабДок) Экспорт


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Расписание Поездов)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


Макет = Отчет Объект. Получить Макет ("Расписание Поездов ");


Запрос = Новый Запрос;


Запрос.Текст =


"ВЫБРАТЬ


| РасписаниеПоездов.НомерПоезда,


| РасписаниеПоездов.НазваниеПоезда,


| ПРЕДСТАВЛЕНИЕ(РасписаниеПоездов.НазваниеПоезда),


| РасписаниеПоездов.СтанцияОтправления,


| РасписаниеПоездов.СтанцияПрибытия,


| РасписаниеПоездов.ДатаОтправления,


| РасписаниеПоездов.ДатаПрибытия


|ИЗ


| Документ.РасписаниеПоездов КАК РасписаниеПоездов";


Результат = Запрос.Выполнить();


ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");


ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");


ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");


ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");


ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");


ТабДок.Очистить();


ТабДок.Вывести(ОбластьЗаголовок);


ТабДок.Вывести(ОбластьШапкаТаблицы);


ТабДок.НачатьАвтогруппировкуСтрок();


ВыборкаДетали = Результат.Выбрать();


Пока ВыборкаДетали.Следующий() Цикл


ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);


ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());


КонецЦикла;


ТабДок.ЗакончитьАвтогруппировкуСтрок();


ТабДок.Вывести(ОбластьПодвалТаблицы);


ТабДок.Вывести(ОбластьПодвал);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ


КонецПроцедуры


4) Проданные билеты


Диалог:



Печатная форма:



Модуль:


Процедура ДействияФормыПроданныеБилетыСформировать(Кнопка)


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(ПроданныеБилеты)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;


ПроданныеБилеты(ТабДок, ДатаКонца, ДатаНачала);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА


КонецПроцедуры


Процедура ПроданныеБилеты(ТабДок, ДатаКонца, ДатаНачала) Экспорт


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ПроданныеБилеты)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


Макет = ОтчетОбъект.ПолучитьМакет("ПроданныеБилеты");


Запрос = Новый Запрос;


Запрос.Текст =


"ВЫБРАТЬ


| ПроданныеБилеты.Период,


| ПроданныеБилеты.Пассажир,


| ПроданныеБилеты.НомерБилета


|ИЗ


| РегистрНакопления.ПроданныеБилеты КАК ПроданныеБилеты


|ГДЕ


| ПроданныеБилеты.Период МЕЖДУ &ДатаНачала И &ДатаКонца";


Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);


Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);


Результат = Запрос.Выполнить();


ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");


ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");


ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");


ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");


ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");


ТабДок.Очистить();


ТабДок.Вывести(ОбластьЗаголовок);


ТабДок.Вывести(ОбластьШапкаТаблицы);


ТабДок.НачатьАвтогруппировкуСтрок();


ВыборкаДетали = Результат.Выбрать();


Пока ВыборкаДетали.Следующий() Цикл


ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);


ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());


КонецЦикла;


ТабДок.ЗакончитьАвтогруппировкуСтрок();


ТабДок.Вывести(ОбластьПодвалТаблицы);


ТабДок.Вывести(ОбластьПодвал);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ


КонецПроцедуры


5) Билет


Диалог:


Печатная форма:



Модуль:


Процедура ДействияФормыБилетСформировать(Кнопка)


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Билет)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;


Билет(ТабДок, ФИО);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА


КонецПроцедуры


Процедура Билет(ТабДок, ФИО) Экспорт


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Билет)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


Макет = ОтчетОбъект.ПолучитьМакет("Билет");


Запрос = Новый Запрос;


Запрос.Текст =


"ВЫБРАТЬ


| Билет.ФИО,


| ПРЕДСТАВЛЕНИЕ(Билет.ФИО),


| Билет.НомерБилета,


| Билет.Документ,


| ПРЕДСТАВЛЕНИЕ(Билет.Документ),


| Билет.Поезд,


| ПРЕДСТАВЛЕНИЕ(Билет.Поезд),


| Билет.СтанцияОтправления,


| Билет.СтанцияПрибытия,


| Билет.ДатаОтправления,


| Билет.ДатаПрибытия,


| Билет.Вагон.(


| НомерСтроки,


| ТипВагона,


| НомерВагона


| ),


| Билет.Место.(


| НомерМеста,


| Цена,


| НДС,


| Сумма


| ),


| Билет.СуммаДокумента КАК СуммаДокумента


|ИЗ


| Документ.Билет КАК Билет


|ГДЕ


| Билет.ФИО = &ФИО";


Запрос.УстановитьПараметр("ФИО", ФИО);


Результат = Запрос.Выполнить();


ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");


ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");


ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");


ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");


ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");


Вагон Область Шапка Таблицы = Макет. Получить Область ("Вагон Шапка Таблицы");


Вагон Область Подвал Таблицы = Макет. Получить Область("Вагон Подвал Таблицы");


Вагон Область Детальных Записей = Макет. Получить Область("Вагон Детали");


Место Область Шапка Таблицы = Макет. Получить Область("Место Шапка Таблицы");


Место Область Подвал Таблицы = Макет. Получить Область("Место Подвал Таблицы");


Место Область Детальных Записей = Макет. Получить Область("Место Детали");


ТабДок.Очистить();


ТабДок.Вывести(ОбластьЗаголовок);


ТабДок.Вывести(ОбластьШапкаТаблицы);


ТабДок.НачатьАвтогруппировкуСтрок();


ВыборкаДетали = Результат.Выбрать();


Пока ВыборкаДетали.Следующий() Цикл


ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);


ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());


ТабДок.НачатьГруппуСтрок();


ТабДок.Вывести(ВагонОбластьШапкаТаблицы);


ТабДок.НачатьАвтогруппировкуСтрок();


ВагонВыборкаДетали = ВыборкаДетали.Вагон.Выбрать();


Пока ВагонВыборкаДетали.Следующий() Цикл


ВагонОбластьДетальныхЗаписей.Параметры.Заполнить(ВагонВыборкаДетали);


ТабДок.Вывести(ВагонОбластьДетальныхЗаписей, ВагонВыборкаДетали.Уровень());


КонецЦикла;


ТабДок.ЗакончитьАвтогруппировкуСтрок();


ТабДок.Вывести(ВагонОбластьПодвалТаблицы);


ТабДок.Вывести(МестоОбластьШапкаТаблицы);


ТабДок.НачатьАвтогруппировкуСтрок();


МестоВыборкаДетали = ВыборкаДетали.Место.Выбрать();


Пока МестоВыборкаДетали.Следующий() Цикл


МестоОбластьДетальныхЗаписей.Параметры.Заполнить(МестоВыборкаДетали);


ТабДок.Вывести(МестоОбластьДетальныхЗаписей, МестоВыборкаДетали.Уровень());


КонецЦикла;


ТабДок.ЗакончитьАвтогруппировкуСтрок();


ТабДок.Вывести(МестоОбластьПодвалТаблицы);


ТабДок.ЗакончитьГруппуСтрок();


КонецЦикла;


ТабДок.ЗакончитьАвтогруппировкуСтрок();


ТабДок.Вывести(ОбластьПодвалТаблицы);


ТабДок.Вывести(ОбластьПодвал);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ


КонецПроцедуры


6) Движение наличности за период


Диалог:


Печатная форма:



Модуль:


Процедура ДействияФормыДвижениеНаличностиЗаПериодСформировать(Кнопка)


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(ДвижениеНаличностиЗаПериод)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;


ДвижениеНаличностиЗаПериод(ТабДок, ДатаКонца, ДатаНачала);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА


КонецПроцедуры


Процедура ДвижениеНаличностиЗаПериод(ТабДок, ДатаКонца, ДатаНачала) Экспорт


//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ДвижениеНаличностиЗаПериод)


// Данный фрагмент построен конструктором.


// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


Макет = Отчет Объект. Получить Макет("Движение Наличности За Период");


Запрос = Новый Запрос;


Запрос.Текст =


"ВЫБРАТЬ


| Касса.Период,


| Касса.Сумма КАК Сумма,


| Касса.Пассажир КАК Пассажир,


| Касса.Регистратор,


| ПРЕДСТАВЛЕНИЕ(Касса.Регистратор)


|ИЗ


| РегистрНакопления.Касса КАК Касса


|ГДЕ


|ИТОГИ


| СУММА(Сумма)


|ПО


| ОБЩИЕ";


Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);


Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);


Результат = Запрос.Выполнить();


ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");


ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");


ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");


ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");


ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги");


ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");


ТабДок.Очистить();


ТабДок.Вывести(ОбластьЗаголовок);


ТабДок.Вывести(ОбластьШапкаТаблицы);


ТабДок.НачатьАвтогруппировкуСтрок();


Выборка Общий Итог = Результат. Выбрать(Обход Результата Запроса. По Группировкам);


ВыборкаОбщийИтог.Следующий(); // Общий итог


ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);


ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень());


ВыборкаДетали = ВыборкаОбщийИтог.Выбрать();


Пока ВыборкаДетали.Следующий() Цикл


ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);


ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());


КонецЦикла;


ТабДок.ЗакончитьАвтогруппировкуСтрок();


ТабДок.Вывести(ОбластьПодвалТаблицы);


ТабДок.Вывести(ОбластьПодвал);


//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ


КонецПроцедуры


2.7 Администрирование


В программе были созданы три пользователя с различными правами и интерфейсами:


1) Администратор. Этому пользователю предоставляются полные администраторские права.


Интерфейс:



2) Бухгалтер. Этому пользователю предоставляются права выполнять все возможные действия, помимо административных, в подсистеме «Бухгалтерия».


Интерфейс:



3) Кассир. Этому пользователю предоставляются права выполнять все возможные действия, помимо административных, в подсистеме «Кассир».


Интерфейс:



Заключение


Работа была выполнена в среде 1С:Предприятие 8.0
. В результате данной работы была создана автоматизированная информационно-справочная система, которая полностью решает поставленную задачу и удовлетворяет всем поставленным требованиям.


Типовая конфигурация 1С Предприятие 8.0
реализует наиболее общие схемы учета и может использоваться в большинстве организаций. Для отражения специфики учета конкретного предприятия типовую конфигурацию можно изменить в соответствии с требованиями учета.


Разнообразные возможности системы позволяют использовать ее как средство полной автоматизации учета от ввода первичных документов до формирования отчетности.


1С Предприятие 8.0
позволяет вести торговый учет, производственный учет, учет в сфере оказания услуг, налоговый учет и т.д., а также несложный расчет заработной платы. 1С Предприятие 8.0
включает набор форм бухгалтерской и налоговой отчетности. Разнообразные возможности системы позволяют использовать ее как средство полной автоматизации учета от ввода первичных документов до формирования отчетности.


Гибкость платформы позволяет применять «1С:Предприятие 8.0» в самых разнообразных областях:


автоматизация производственных и торговых предприятий, бюджетных и финансовых организаций, предприятий сферы обслуживания и т.д.;


поддержка оперативного управления предприятием;


автоматизация организационной и хозяйственной деятельности;


ведение бухгалтерского учета с несколькими планами счетов и произвольными измерениями учета, регламентированная отчетность;


широкие возможности для управленческого учета и построения аналитической отчетности, поддержка многовалютного учета;


решение задач планирования, бюджетирования и финансового анализа;


другие области применения.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Создание автоматизиpованной инфоpмационно-спpавочной системы расписания движения поездов и продажи билетов

Слов:3150
Символов:42058
Размер:82.14 Кб.