Создание автоматизи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» в самых разнообразных
областях:
автоматизация производственных и торговых предприятий, бюджетных и финансовых
организаций, предприятий сферы обслуживания и т.д.;
поддержка
оперативного управления предприятием;
автоматизация
организационной и хозяйственной деятельности;
ведение
бухгалтерского учета с несколькими планами счетов и произвольными измерениями
учета, регламентированная отчетность;
широкие
возможности для управленческого учета и построения аналитической отчетности,
поддержка многовалютного учета;
решение задач планирования, бюджетирования и финансового анализа;
другие
области применения.