- •Курсовая работа
- •2 Программная реализация информационной системы 10
- •1 Описание системы
- •1.1 Нормализация и схема базы данных
- •1.2 Структура меню
- •2 Программная реализация информационной системы
- •2.1 Перечисления
- •2.2 Справочники
- •2.3 Документы
- •2.4 Регистры
- •2.5 Журналы
- •2.6 Отчеты
- •2.7 Администрирование
2.4 Регистры
1) Цены На Билеты (регистр сведений) – независимый, цены вводятся пользователем.
Измерения:
Поезд
Места
Ресурсы:
Цена
2) Продажа Билетов (регистр сведений) – регистратором является документ Билет.
Измерения:
Номер Билета
Пассажир
Ресурсы:
Цена
3) Информация О поездах (регистр сведений) – регистратором является документы Билет и Расписание Поездов.
Измерения:
Поезд
Станция Отправления
Станция Прибытия
Дата Отправления
4) Проданные Билеты (регистр остатков) – регистратором является документы Билет, Возврат Билетов.
Измерения:
Пассажир
Ресурсы:
Номер Билета
5) Касса (регистр остатков) – регистратором является документы Билет, Возврат Билетов, Бронирование Билетов .
Ресурсы:
Сумма.
Реквизиты:
Пассажир.
2.5 Журналы
1) Касса.
Реестр документов:
2.6 Отчеты
1) ЦеныНаБилеты
Диалог:
Печатная форма:
Модуль отчёта:
процедура Действия Формы Цены На Билеты Сформировать (Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Цены На Билеты)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = Элементы Формы. Поле Табличного Документа ;
Цены На Билеты (ТабДок);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
Конец Процедуры
Процедура Цены На Билеты(ТабДок) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Цены На Билеты)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = Отчет Объект. Получить Макет ("Цены На Билеты ");
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| Цены На Билеты. Период ,
| Цены На Билеты. Поезд,
| ПРЕДСТАВЛЕНИЕ(Цены На Билеты. Поезд),
| Цены На Билеты. Места,
| Цены На Билеты. Цена
|ИЗ
| Регистр Сведений. Цены На Билеты КАК Цены На Билеты ";
Результат = Запрос. Выполнить ();
Область Заголовок = Макет. Получить Область("Заголовок");
Область Подвал = Макет. Получить Область("Подвал");
Область Шапка Таблицы = Макет. Получить Область ("Шапка Таблицы");
Область Подвал Таблицы = Макет. Получить Область ("Подвал Таблицы ");
Область Детальных Записей = Макет. Получить Область ("Детали");
ТабДок. Очистить();
ТабДок. Вывести(Область Заголовок );
ТабДок. Вывести(Область Шапка Таблицы);
ТабДок. Начать Автогруппировку Строк();
Выборка Детали = Результат .Выбрать();
Пока Выборка Детали. Следующий() Цикл
Область Детальных Записей. Параметры. Заполнить (Выборка Детали);
ТабДок. Вывести (Область Детальных Записей, Выборка Детали. Уровень());
Конец Цикла;
ТабДок. Закончить Автогруппировку Строк();
ТабДок. Вывести(Область Подвал Таблицы);
ТабДок. Вывести(Область Подвал );
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
Конец Процедуры
Информация о поездах
2) Диалог:
Печатная форма:
Модуль отчёта:
Процедура ДействияФормыИнформацияОПоездахСформировать(Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(ИнформацияОПоездах)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
ИнформацияОПоездах(ТабДок, ДатаКонца, ДатаНачала);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры
Процедура ИнформацияОПоездах(ТабДок, ДатаКонца, ДатаНачала) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ИнформацияОПоездах)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = ОтчетОбъект.ПолучитьМакет("ИнформацияОПоездах");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИнформацияОПоездах.Период,
| ИнформацияОПоездах.Поезд,
| ИнформацияОПоездах.СтанцияОтправления,
| ИнформацияОПоездах.СтанцияПрибытия,
| ИнформацияОПоездах.ДатаОтправления,
| ИнформацияОПоездах.ДатаПрибытия
|ИЗ
| Регистр Сведений.ИнформацияОПоездах КАК Информация О Поездах
|ГДЕ
| ИнформацияОПоездах.Период МЕЖДУ &ДатаНачала И &ДатаКонца";
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетали = Результат.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
Конец Процедуры
3) Расписание поездов
Диалог:
Печатная форма:
Модуль:
Процедура Действия Формы Расписание Поездов Сформировать(Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Расписание Поездов)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = Элементы Формы. Поле Табличного Документа;
Расписание Поездов (ТабДок);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
Конец Процедуры
Процедура Расписание Поездов(ТабДок) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Расписание Поездов)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = Отчет Объект. Получить Макет ("Расписание Поездов ");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасписаниеПоездов.НомерПоезда,
| РасписаниеПоездов.НазваниеПоезда,
| ПРЕДСТАВЛЕНИЕ(РасписаниеПоездов.НазваниеПоезда),
| РасписаниеПоездов.СтанцияОтправления,
| РасписаниеПоездов.СтанцияПрибытия,
| РасписаниеПоездов.ДатаОтправления,
| РасписаниеПоездов.ДатаПрибытия
|ИЗ
| Документ.РасписаниеПоездов КАК РасписаниеПоездов";
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетали = Результат.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры
4) Проданные билеты
Диалог:
Печатная форма:
Модуль:
Процедура ДействияФормыПроданныеБилетыСформировать(Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(ПроданныеБилеты)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
ПроданныеБилеты(ТабДок, ДатаКонца, ДатаНачала);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры
Процедура ПроданныеБилеты(ТабДок, ДатаКонца, ДатаНачала) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ПроданныеБилеты)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = ОтчетОбъект.ПолучитьМакет("ПроданныеБилеты");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПроданныеБилеты.Период,
| ПроданныеБилеты.Пассажир,
| ПроданныеБилеты.НомерБилета
|ИЗ
| РегистрНакопления.ПроданныеБилеты КАК ПроданныеБилеты
|ГДЕ
| ПроданныеБилеты.Период МЕЖДУ &ДатаНачала И &ДатаКонца";
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетали = Результат.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры
5) Билет
Диалог:
Печатная форма:
Модуль:
Процедура ДействияФормыБилетСформировать(Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Билет)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
Билет(ТабДок, ФИО);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры
Процедура Билет(ТабДок, ФИО) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Билет)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = ОтчетОбъект.ПолучитьМакет("Билет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Билет.ФИО,
| ПРЕДСТАВЛЕНИЕ(Билет.ФИО),
| Билет.НомерБилета,
| Билет.Документ,
| ПРЕДСТАВЛЕНИЕ(Билет.Документ),
| Билет.Поезд,
| ПРЕДСТАВЛЕНИЕ(Билет.Поезд),
| Билет.СтанцияОтправления,
| Билет.СтанцияПрибытия,
| Билет.ДатаОтправления,
| Билет.ДатаПрибытия,
| Билет.Вагон.(
| НомерСтроки,
| ТипВагона,
| НомерВагона
| ),
| Билет.Место.(
| НомерМеста,
| Цена,
| НДС,
| Сумма
| ),
| Билет.СуммаДокумента КАК СуммаДокумента
|ИЗ
| Документ.Билет КАК Билет
|ГДЕ
| Билет.ФИО = &ФИО";
Запрос.УстановитьПараметр("ФИО", ФИО);
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
Вагон Область Шапка Таблицы = Макет. Получить Область ("Вагон Шапка Таблицы");
Вагон Область Подвал Таблицы = Макет. Получить Область("Вагон Подвал Таблицы");
Вагон Область Детальных Записей = Макет. Получить Область("Вагон Детали");
Место Область Шапка Таблицы = Макет. Получить Область("Место Шапка Таблицы");
Место Область Подвал Таблицы = Макет. Получить Область("Место Подвал Таблицы");
Место Область Детальных Записей = Макет. Получить Область("Место Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетали = Результат.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
ТабДок.НачатьГруппуСтрок();
ТабДок.Вывести(ВагонОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВагонВыборкаДетали = ВыборкаДетали.Вагон.Выбрать();
Пока ВагонВыборкаДетали.Следующий() Цикл
ВагонОбластьДетальныхЗаписей.Параметры.Заполнить(ВагонВыборкаДетали);
ТабДок.Вывести(ВагонОбластьДетальныхЗаписей, ВагонВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ВагонОбластьПодвалТаблицы);
ТабДок.Вывести(МестоОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
МестоВыборкаДетали = ВыборкаДетали.Место.Выбрать();
Пока МестоВыборкаДетали.Следующий() Цикл
МестоОбластьДетальныхЗаписей.Параметры.Заполнить(МестоВыборкаДетали);
ТабДок.Вывести(МестоОбластьДетальныхЗаписей, МестоВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(МестоОбластьПодвалТаблицы);
ТабДок.ЗакончитьГруппуСтрок();
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры
6) Движение наличности за период
Диалог:
Печатная форма:
Модуль:
Процедура ДействияФормыДвижениеНаличностиЗаПериодСформировать(Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(ДвижениеНаличностиЗаПериод)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
ДвижениеНаличностиЗаПериод(ТабДок, ДатаКонца, ДатаНачала);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры
Процедура ДвижениеНаличностиЗаПериод(ТабДок, ДатаКонца, ДатаНачала) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ДвижениеНаличностиЗаПериод)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = Отчет Объект. Получить Макет("Движение Наличности За Период");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Касса.Период,
| Касса.Сумма КАК Сумма,
| Касса.Пассажир КАК Пассажир,
| Касса.Регистратор,
| ПРЕДСТАВЛЕНИЕ(Касса.Регистратор)
|ИЗ
| РегистрНакопления.Касса КАК Касса
|ГДЕ
|ИТОГИ
| СУММА(Сумма)
|ПО
| ОБЩИЕ";
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
Выборка Общий Итог = Результат. Выбрать(Обход Результата Запроса. По Группировкам);
ВыборкаОбщийИтог.Следующий(); // Общий итог
ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень());
ВыборкаДетали = ВыборкаОбщийИтог.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры