Создание автоматизи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) Поезд


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

 


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

 


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

 


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



) Места


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



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

 

 Форма списка

 


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



2.3 Документы


1) Билет:


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

 




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

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

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

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

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


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

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


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

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

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

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


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

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

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

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

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

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

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

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

 // Шапка

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

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

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

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

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

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

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

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

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

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

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

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

 // Вагон

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

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

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

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

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

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

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

 Конец Цикла;

 // Место

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

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

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

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

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

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

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

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

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

 Конец Цикла;

 // Подвал

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

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


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

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

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


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


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

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

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

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

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

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

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


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

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



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

 


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

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

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

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

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

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

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

// Заголовок

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

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

// Шапка

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

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

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

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

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

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

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

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

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

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


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

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

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


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


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

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

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

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

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

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

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


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

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



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



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

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

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

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

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

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

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

// Заголовок

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

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

// Шапка

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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



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



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

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

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

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

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

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

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

// Заголовок

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

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

// Шапка

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

 2.4 Регистры


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

 Измерения:

  Поезд

 Места

  Ресурсы:

  Цена

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

 Измерения:

  Номер Билета

 Пассажир

  Ресурсы:

  Цена

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

 Измерения:

  Поезд

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

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

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

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

 Измерения:

  Пассажир

  Ресурсы:

  Номер Билета

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

 Ресурсы:

  Сумма.

  Реквизиты:

  Пассажир.



 2.5 Журналы


1) Касса.

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

 



 2.6 Отчеты



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

 Диалог:


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

 


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

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

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

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

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


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

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


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

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


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

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

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

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


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

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

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

 "ВЫБРАТЬ

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

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

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

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

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

 |ИЗ

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


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


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

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

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

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

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


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

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

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

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

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

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


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

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

 Конец Цикла;


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

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

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


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

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


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

 


2) Диалог:



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


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

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

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

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

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


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

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


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

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


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

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

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

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


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

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

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

 "ВЫБРАТЬ

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

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

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

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

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

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

 |ИЗ

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

 |ГДЕ

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


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

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


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


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

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

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

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

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


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

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

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

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


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


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


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

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

 КонецЦикла;


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

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

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


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

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


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

 Диалог:


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

 


Модуль:

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

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

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

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


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

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


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

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


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

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

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

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

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

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

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

 "ВЫБРАТЬ

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

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

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

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

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

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

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

 |ИЗ

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


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


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

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

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

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

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


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

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

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

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


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


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

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

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

 КонецЦикла;


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

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

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


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

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


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

 Диалог:

 


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

 

 Модуль:

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

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

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

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


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

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


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

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


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

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

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

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

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

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

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

"ВЫБРАТЬ

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

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

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

|ИЗ

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

|ГДЕ

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


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

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


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


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

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

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

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

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


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

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

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

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


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


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


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

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

КонецЦикла;


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

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

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


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

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


) Билет

Диалог:


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

 


Модуль:

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

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

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

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


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

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


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

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

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

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

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

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


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

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

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

 "ВЫБРАТЬ

 |Билет.ФИО,

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

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

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

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

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

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

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

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

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

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

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

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

 |ТипВагона,

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

 |),

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

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

 |Цена,

 |НДС,

 |Сумма

 |),

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

 |ИЗ

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

 |ГДЕ

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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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


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

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


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

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

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


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


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


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

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

 КонецЦикла;

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

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

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

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


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


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


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

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

 КонецЦикла;


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

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

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

 КонецЦикла;


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

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

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


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

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


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

 Диалог:


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

 


Модуль:

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

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

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

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


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

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


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

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

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

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

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

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


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

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

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

 "ВЫБРАТЬ

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

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

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

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

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

 |ИЗ

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

 |ГДЕ

 |ИТОГИ

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

 |ПО

 |ОБЩИЕ";


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

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


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

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

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

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

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

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

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


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

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

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

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


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


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

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

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


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


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


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

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

 КонецЦикла;


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

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

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


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

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


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


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


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


Интерфейс:

 


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


Интерфейс:

 


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


Интерфейс:

 


Заключение


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

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

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

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


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

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

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

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

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

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

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

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

 


Создание автоматизиpованной инфоpмационно-спpавочной системы расписания движения поездов и продажи билетов ФЕДЕРАЛЬНОЕ АГЕНТСТВО МОРСКОГО И РЕЧНОГО ТРАНСПО

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ