Создание автоматизированной информационно-справочной системы учета личных дел студентов в деканате
1. Введение
Система программ "1С: Предприятие" предназначена
для решения широкого спектра задач автоматизации учета и управления, стоящих
перед динамично развивающимися современными предприятиями.
Задача, которая ставится перед системой - смоделировать технологию
накопления и обработки информации об учёте личных дел студентов в деканате.
Основной целью функционирования любой информационной системы является выходная
справочная информация. Для этого:
определяем объекты предметной области, описывающие атрибуты;
создаём "нормальную форму", которая приводит к
нормализации всех полученных отношений;
составляем полный перечень всех запросов к БД;
определяем структурные связи;
построение схемы объекта.
Использование БД и СУБД при построении автоматизированной
информационной системы отделяет логическую структуру данных (т.е. представлении
об организации данных с точки зрения пользователя) от физической структуры
данных в памяти ЭВМ, что значительно облегчает труд по созданию такой системы.
БД - совокупность данных, обладающих следующими свойствами:
· Интегрированность, направленной на решение
общей задачи;
· Структурированность;
· Взаимосвязанность;
· Независимостью описания данных от
прикладных программ.
Под СУБД понимают пакет прикладных программ обслуживания БД,
которая:
· Обеспечивает пользователей языковыми
средствами описания манипулирования данных;
· Обеспечивает поддержку логической модели
данных (т.е. логического представления физических данных);
· Выполнение операции создания и
манипулирования логических данных, а также обрабатывает и отображает операции
над физическими данными;
· Обеспечивает защиту целостности и
корректности данных.
Преимуществом использования БД и СУБД при построении
информационных систем заключается в централизованном управлении информационными
ресурсами всей системы. Достоинством является возможность однократно ввода
данных и многократного использования, а также отсутствия проблемы контроля
избыточности данных вследствие интеграции данных. Унификация средств
организации данных и независимость прикладных программ значительно повышает
эффективность труда.
Функциональные возможности прикладного решения отражают
различные виды получаемой информации. Программный продукт позволяет составлять
личные дела студентов в деканате (далее деканат): личные данные, сведения о
поступлении, характеристики студента и т.д.; вести учет ведомости, переводить
студентов из одной группы в другую, вести архив студентов, когда-либо ходивших
в данную группу.
2. Описание
системы
Рассмотрим задачи, которые должна выполнять проектируемая
информационно-справочная система и некоторые их особенности.
Основное предназначение данной информационно-справочной
системы - вести учет студентов в деканате, переводя их с курса на курс. При
этом система предоставляет такие функции как:
· Зачисление
· Отчисление
· Начисление стипендии
В базе данных хранится информация о студентах (ФИО, дата
рождения, номер зачетной книжки, номер телефона), так же курс, группа,
специальность каждого студента, информация о лицах ответственных за какое-либо
событие (например экзаменаторы ответственны за сдачу экзамена или зачета, декан
- за зачисление, и т.д.)
Также база предусматривает хранение списков отчисленных
студентов, зачисленных и учащихся в данный период времени.
2.1
Нормализация (построение структуры)
Проектирование начинается с обследования предметной области
автоматизации, где выясняется её границы, фрагменты, возможности изменения и
развития. Затем на основании полученных сведений моделируется технология
накопления и обработки информации в системе. После переходят к определению
объектов предметной области и для каждого из них строят перечень описывающих
его атрибутов.
В результате подробного анализа для каждого атрибута
выясняется его тип (цифровой, символьный, логический или тип дата), длина и
диапазон допустимых значений, процент наличия значений атрибутов экземпляров
отношения, частота его использования и вычислимость его значений из другой
информации.
По своему функциональному назначению информацию в базе данных
можно разделить на три основные группы:
. Нормативно-справочная информация (НСИ)
2. Оперативная информация (ОИ)
. Выходная справочная информация (ВСИ)
НСИ помимо сведений о внешнем кодировании обычно содержит
основные неизменяемые параметры описываемых объектов.
ОИ формируется из текущих сведений об объектах и происходящих
в них процессах. Она часто пополняется, обновляется и имеет большой процент
ежемесячного прироста. Дополнительно процедурам пополнения и обновления этой
информации предъявляются повышенные требования по эргономичности реализованного
в них интерфейса пользователя.
ВСИ - это основная цель функционирования любой информационной
системы. Обычно она вычисляется на основе нормативно-справочной и оперативной
информации и в файлах базы данных не хранится.
После определения объектов и их атрибутов в каждом отношении
выделяют первичный ключ и проводят нормализацию всех полученных отношений до
пятой нормальной формы.
Процесс проектирования завершается построением схемы проекта
с указанием всех объектов и связей между ними, затем проводят проверку
корректности и полноты полученного проекта для обеспечения возможности
выполнения всех запросов к базе данных.
Проиллюстрируем создание информационно - справочной системы
учёта студентов в деканате.
Зачисление (номер, дата, ФИО, курс, группа, семестр, предмет,
баллы по Егэ). Она находится в 1НФ отношении, так как все отношения атамарны.
Ключи - дата, курс, группа.
Рассмотрим наблюдающиеся в этом отношении функциональные
зависимости: Курс - Студент, Группа - Студент.
Такая частичная функциональная зависимость может привести к
аномалии, следовательно, она требует доработки.
Приведем это отношение ко 2НФ, при этом получаем отношения:
Группа (Наименование), Курс (Наименование) и Студент (ФИО,
дата зачисления, предмет, баллы по Егэ).
В полученном отношении поставка имеется транзитивная
функциональная зависимость: студент->Количество студентов в группе - >
Количество на курсе.
Далее рассмотрим зависимость ключей от неключевых атрибутов.
Этих зависимостей в полученных отношениях не наблюдается, значит они находятся
в НФБК.
Для приведения к 4НФ разобьем его на две следующие проекции:
В Группе (Наименование, студенты на курсе)
На Курсе (Наименование Группы, студенты в группе)
Эти отношения без потерь могут быть восстановлены в исходное
операцией соединения по атрибуту номер, значит такое разбиение удовлетворяет
требованиям зависимости по соединению, а, следовательно, полученные отношения
находятся в 5НФ.:
Курс (Наименование курса, студенты на курсе), Группа
(Наименование Группы, студенты в группе) и Студент (ФИО, предмет, баллы по Егэ)
2.2 Структура
меню
В главном меню пользователю предоставляется возможность
выбирать следующие пункты меню и пункты подменю:
Константы:
· Декан
· Секретарь
Справочники:
· Студенты
· Сотрудники
· Преподаватели
· Абитуриенты
· Форма обучения
Документы:
· Доп часы
· Начисление стипендии
· Зачисление
· Отчисление
· Учащиеся
· Ведомость студента
Журналы:
· Студенты
· Стипендия
· Доп часы
Перечисления:
· Группа
· Курс
· Специальность
· Должность
· Ученая степень
· Предмет
· Оценка
· Семестр
· Тип сдачи
· Стипендия
Отчеты:
· Ведомость
· Доп часы
· Стипендия
· Студенты
· Универсальный
· Цена предмета
· Рейтинг студентов
Регистр сведений:
· Цена предмета
· Степень
· Ведомость
· Начисление
Регистр накопления:
· Студенты
· Стипендия
2.3
Построение программного продукта
Для создания новой конфигурации надо проделать следующую
последовательность действий:
· Зарегистрировать информационную базу;
· Установить свойства конфигурации;
· Создать объекты метаданных;
· Описать пользовательские интерфейсы;
· Описать права пользователей;
· Сохранить и редактировать конфигурацию.
В начале работы с конфигурацией её необходимо переименовать и
задать сведения об авторе.
Константы
В системе 1С: Предприятие константы предназначены для
хранения постоянной или условно-постоянной информации. Такая информация либо
совсем не изменяется в процессе деятельности предприятия, либо изменяется
достаточно редко. Поэтому при создании информационно - справочной системы учёта
выдачи книг в библиотеке Я посчитала необходимым создать следующие константы:
Форма констант
Перечисления
Перечисление представляет собой служебный тип данных, который
не используется самостоятельно, а применяется, в основном, в совокупности с
другими типами данных. Перечисления используются при вводе значений реквизитов
документов, справочников, при вводе значений констант, и тех случаях, когда
необходимо исключить неоднозначный ввод информации. В данной работе я создала
следующие типы перечислений:
Справочники
Теперь переходим к созданию новых типов справочников. Справочник
является списком возможных значений того или иного реквизита документа. Система
1С: Предприятие позволяет вести практически неограниченное количество
необходимых справочников.
Каждый справочник представляет собой список однородных
объектов: сотрудников, организаций, товаров и т.д. Каждый такой объект будем
называть элементом справочника.
В качестве обязательных реквизитов каждый справочник имеет код
и наименование.
Код элемента справочника может быть как числовым, так и
текстовым. В данной работе я создала следующие справочники:
меню пользователь структура деканат
1. Студенты
Форма списка:
Создаём печатную форму и в модуле формы списка пишем
следующий код:
Процедура ПечатьСтудентов (Элемент)
// {{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК (ПечатьСтудентов)
// Данный фрагмент построен конструктором.
Макет = Справочники. Студенты. ПолучитьМакет
("ПечатьСтудентов");
// Заголовок
Область = Макет. ПолучитьОбласть
("Заголовок");
ТабДок. Вывести (Область);
// Шапка
Область = Макет. ПолучитьОбласть
("Шапка");
ТабДок. Вывести (Область);
Выборка = Справочники. Студенты.
ВыбратьИерархически ();
Пока Выборка. Следующий () = Истина Цикл
Объект = Выборка. ПолучитьОбъект ();
Если Объект. ЭтоГруппа = Истина Тогда
Область = Макет. ПолучитьОбласть
("Группа");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
ТабДок. Вывести (Область);
Иначе
Область = Макет. ПолучитьОбласть
("Элемент");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
Область. Параметры. Фамилия = Объект. Фамилия;
Область. Параметры. Имя = Объект. Имя;
Область. Параметры. Отчество = Объект. Отчество;
Область. Параметры. Курс = Объект. Курс;
Область. Параметры. Группа = Объект. Группа;
Область. Параметры. Специальность = Объект.
Специальность;
Область. Параметры. ДатаРождения = Объект.
ДатаРождения;
Область. Параметры. Курс = Объект. Курс;
Область. Параметры. Ссылка = Объект. Ссылка;
ТабДок. Вывести (Область);
КонецЕсли;
КонецЦикла;
ТабДок. ОтображатьСетку = Ложь;
ТабДок. Защита = Истина;
ТабДок. ТолькоПросмотр = Истина;
ТабДок. ОтображатьЗаголовки = Ложь;
ТабДок. Показать ();
// }}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
КонецПроцедуры
Печатная форма студентов:
Создаём печатную форму и в модуле формы списка пишем
следующий код:
Процедура ПечатьОбучение (Элемент)
// {{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК (ПечатьОбучение)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Справочники. Студенты. ПолучитьМакет
("ПечатьОбучение");
// Заголовок
Область = Макет. ПолучитьОбласть ("Заголовок");
ТабДок. Вывести (Область);
// Шапка
Область = Макет. ПолучитьОбласть
("Шапка");
ТабДок. Вывести (Область);
Выборка = Справочники. Студенты.
ВыбратьИерархически ();
Пока Выборка. Следующий () = Истина Цикл
Объект = Выборка. ПолучитьОбъект ();
Если Объект. ЭтоГруппа = Истина Тогда
Область = Макет. ПолучитьОбласть
("Группа");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
ТабДок. Вывести (Область);
Иначе
Область = Макет. ПолучитьОбласть
("Элемент");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
Область. Параметры. Фамилия = Объект. Фамилия;
Область. Параметры. Имя = Объект. Имя;
Область. Параметры. Отчество = Объект. Отчество;
Область. Параметры. Курс = Объект. Курс;
Область. Параметры. Группа = Объект. Группа;
Область. Параметры. Специальность = Объект.
Специальность;
Область. Параметры. ДатаРождения = Объект.
ДатаРождения;
Область. Параметры. Курс = Объект. Курс;
Область. Параметры. Ссылка = Объект. Ссылка;
СсылкаД = Объект. Ссылка;
ВыборкаД = Справочники. ФормаОбучения. Выбрать (,
СсылкаД,,);
ТабДок. Вывести (Область);
Пока ВыборкаД. Следующий () = Истина
Цикл
ОбъектД = ВыборкаД. ПолучитьОбъект ();
Область = Макет. ПолучитьОбласть
("Форма");
Область. Параметры. Код = ОбъектД. Код;
Область. Параметры. ФормаОбучения = ОбъектД.
ФормаОбучения;
ТабДок. Вывести (Область);
КонецЦикла;
КонецЕсли;
КонецЦикла;
ТабДок. ОтображатьСетку = Ложь;
ТабДок. Защита = Истина;
ТабДок. ТолькоПросмотр = Истина;
ТабДок. ОтображатьЗаголовки = Ложь;
ТабДок. Показать ();
// }}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
КонецПроцедуры
Печатная форма обучение:
. Сотрудники
Форма списка:
Создаём печатную форму и в модуле формы списка пишем
следующий код:
Процедура ПечатьСотрудников (Элемент)
// {{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
(ПечатьСотрудников)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Справочники. Сотрудники. ПолучитьМакет
("ПечатьСотрудников");
// Заголовок
Область = Макет. ПолучитьОбласть
("Заголовок");
ТабДок. Вывести (Область);
// Шапка
Область = Макет. ПолучитьОбласть
("Шапка");
ТабДок. Вывести (Область);
Выборка = Справочники. Сотрудники.
ВыбратьИерархически ();
Пока Выборка. Следующий () = Истина Цикл
Объект = Выборка. ПолучитьОбъект ();
Если Объект. ЭтоГруппа = Истина Тогда
Область = Макет. ПолучитьОбласть
("Группа");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
ТабДок. Вывести (Область);
Иначе
Область = Макет. ПолучитьОбласть
("Элемент");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
Область. Параметры. Фамилия = Объект. Фамилия;
Область. Параметры. Имя = Объект. Имя;
Область. Параметры. Отчество = Объект. Отчество;
Область. Параметры. Должность = Объект.
Должность;
Область. Параметры. Телефон = Объект. Телефон;
Область. Параметры. Ссылка = Объект. Ссылка;
ТабДок. Вывести (Область);
КонецЕсли;
КонецЦикла;
ТабДок. ОтображатьСетку = Ложь;
ТабДок. Защита = Истина;
ТабДок. ТолькоПросмотр = Истина;
ТабДок. ОтображатьЗаголовки = Ложь;
ТабДок. Показать ();
// }}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
КонецПроцедуры
. Преподаватели
Создаём печатную форму и в модуле формы списка пишем
следующий код:
Процедура ПечатьПреподавателей (Элемент)
// {{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
(ПечатьПреподавателей)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Справочники. Преподаватели. ПолучитьМакет
("ПечатьПреподавателей");
// Заголовок
Область = Макет. ПолучитьОбласть
("Заголовок");
ТабДок. Вывести (Область);
// Шапка
Область = Макет. ПолучитьОбласть
("Шапка");
ТабДок. Вывести (Область);
Выборка = Справочники. Преподаватели.
ВыбратьИерархически ();
Пока Выборка. Следующий () = Истина Цикл
Объект = Выборка. ПолучитьОбъект ();
Если Объект. ЭтоГруппа = Истина Тогда
Область = Макет. ПолучитьОбласть
("Группа");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
ТабДок. Вывести (Область);
Иначе
Область = Макет. ПолучитьОбласть ("Элемент");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
Область. Параметры. Фамилия = Объект. Фамилия;
Область. Параметры. Имя = Объект. Имя;
Область. Параметры. Отчество = Объект. Отчество;
Область. Параметры. УченаяСтепень = Объект.
УченаяСтепень;
Область. Параметры. Предмет = Объект. Предмет;
Область. Параметры. Ссылка = Объект. Ссылка;
ТабДок. Вывести (Область);
КонецЕсли;
КонецЦикла;
ТабДок. ОтображатьСетку = Ложь;
ТабДок. Защита = Истина;
ТабДок. ТолькоПросмотр = Истина;
ТабДок. ОтображатьЗаголовки = Ложь;
ТабДок. Показать ();
// }}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
КонецПроцедуры
. Абитуриенты
Создаём печатную форму и в модуле формы списка пишем
следующий код:
Процедура ПечатьАбитуриента (Элемент)
// {{_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
(ПечатьАбитуриента)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Справочники. Абитуриенты. ПолучитьМакет
("ПечатьАбитуриента");
// Заголовок
Область = Макет. ПолучитьОбласть
("Заголовок");
ТабДок. Вывести (Область);
// Шапка
Область = Макет. ПолучитьОбласть
("Шапка");
ТабДок. Вывести (Область);
Выборка = Справочники. Абитуриенты.
ВыбратьИерархически ();
Пока Выборка. Следующий () = Истина Цикл
Объект = Выборка. ПолучитьОбъект ();
Если Объект. ЭтоГруппа = Истина Тогда
Область = Макет. ПолучитьОбласть
("Группа");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
ТабДок. Вывести (Область);
Иначе
Область = Макет. ПолучитьОбласть
("Элемент");
Область. Параметры. Код = Объект. Код;
Область. Параметры. Наименование = Объект.
Наименование;
Область. Параметры. Фамилия= Объект. Фамилия;
Область. Параметры. Имя = Объект. Имя;
Область. Параметры. ДатаРождения = Объект.
ДатаРождения;
Область. Параметры. Отчество = Объект. Отчество;
Область. Параметры. Ссылка = Объект. Ссылка;
Область. Параметры. Город = Объект. Город;
Область. Параметры. КонтактныйНомер= Объект.
КонтактныйНомер;
Область. Параметры. Специальность = Объект.
Специальность;
ТабДок. Вывести (Область);
КонецЕсли;
КонецЦикла;
ТабДок. ОтображатьСетку = Ложь;
ТабДок. ТолькоПросмотр = Истина;
ТабДок. ОтображатьЗаголовки = Ложь;
ТабДок. Показать ();
// }}_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
КонецПроцедуры
. Форма обучения
Документы
Теперь переходим к созданию новых типов документов. Документ
- одно из основных понятий системы 1С: Предприятие. При помощи документов
организуется ввод в систему информации о совершаемых хозяйственных действиях,
ее просмотр и, если необходимо, корректировка.
Каждый документ содержит информацию о конкретной
хозяйственной операции и характеризуется своим номером, датой и временем.
Дата и время - наиболее важные характеристики документов, так
как позволяют устанавливать строгую временную последовательность совершения
операций.
1. Доп. Часы
Создаём печатную форму и в модуле формы списка пишем
следующий код:
Процедура УченаяСтепеньПриИзменении (Элемент)
Отбор=Новый Структура ("УченаяСтепень",
УченаяСтепень);
Запись=РегистрыСведений. Степень.
ПолучитьПоследнее (Дата, Отбор);
Цена=Запись. Стоимость;
КонецПроцедуры
Процедура НадписьУченаяСтепеньНажатие (Элемент)
ФормаСР=РегистрыСведений. Степень.
ПолучитьФормуСписка (
, ЭтаФорма,"Док"+Номер);
ФормаСР. РегистрСведенийСписок. Отбор.
УченаяСтепень. Значение=УченаяСтепень;
ФормаСР. РегистрСведенийСписок. Отбор.
УченаяСтепень. Использование=Истина;
ФормаСР. ЗакрыватьПриЗакрытииВладельца=Истина;
Если Не ФормаСр. Открыта () тогда
ФормаСР. РазрешитьСостояниеПрячущееся=Истина;
ФормаСР. РазрешитьСостояниеПрикрепленное=Истина;
ФормаСР. РазрешитьСоединятьОкно=Истина;
КонецЕсли;
ФормаСР. Открыть ();
КонецПроцедуры
Процедура Печать (Элемент)
// {{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ (Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Документы. ДопЧасы. ПолучитьМакет
("Печать");
// Заголовок
Область = Макет. ПолучитьОбласть ("Заголовок");
ТабДок. Вывести (Область);
// Шапка
Шапка = Макет. ПолучитьОбласть
("Шапка");
Шапка. Параметры. Заполнить (ЭтотОбъект);
ТабДок. Вывести (Шапка);
ТабДок. ОтображатьСетку = Ложь;
ТабДок. Защита = Истина;
ТабДок. ТолькоПросмотр = Истина;
ТабДок. ОтображатьЗаголовки = Ложь;
ТабДок. Показать ();
// }}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ
КонецПроцедуры
Печатная форма Доп Часы:
Процедура ОбработкаПроведения (Отказ, Режим)
// {{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
// регистр ЦенаПредмета
Движение = Движения. ЦенаПредмета. Добавить ();
Движение. Период = Дата;
Движение. ФИОСтудента = ФИОСтудента;
Движение. Предмет = Предмет;
Движение. УченаяСтепень = УченаяСтепень;
Движение. Преподаватель = Преподаватель;
Движение. Цена = Цена;
// }}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
. Начисление Стипендии
Создаём печатную форму и в модуле формы списка пишем
следующий код:
Процедура СтипендияПриИзменении (Элемент)
Отбор=Новый Структура ("стипендия1",
стипендия);
Запись=РегистрыСведений. начисление.
ПолучитьПоследнее (Дата, Отбор);
сумма=Запись. сумма1;
КонецПроцедуры
Процедура Печать (Элемент)
// {{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ (Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Документы. начислениеСтипендии.
ПолучитьМакет ("Печать1");
// Заголовок
Область = Макет. ПолучитьОбласть
("Заголовок");
ТабДок. Вывести (Область);
// Шапка
Шапка = Макет. ПолучитьОбласть
("Шапка");
Шапка. Параметры. Заполнить (ЭтотОбъект);
ТабДок. Вывести (Шапка);
// ТабличнаяЧасть1
Область = Макет. ПолучитьОбласть
("ТабличнаяЧасть1Шапка");
ТабДок. Вывести (Область);
ОбластьТабличнаяЧасть1 = Макет. ПолучитьОбласть
("ТабличнаяЧасть1");
Для Каждого ТекСтрокаТабличнаяЧасть1 Из
ТабличнаяЧасть1 Цикл
ОбластьТабличнаяЧасть1. Параметры. Заполнить
(ТекСтрокаТабличнаяЧасть1);
ТабДок. Вывести (ОбластьТабличнаяЧасть1);
КонецЦикла;
ТабДок. ОтображатьСетку = Ложь;
ТабДок. Защита = Истина;
ТабДок. ТолькоПросмотр = Истина;
ТабДок. ОтображатьЗаголовки = Ложь;
ТабДок. Показать ();
// }}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ
КонецПроцедуры
Печатная форма Начисление Стипендии:
Процедура ОбработкаПроведения (Отказ, Режим)
// {{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
// регистр Стипендия Приход
Движение = Движения. Стипендия. Добавить ();
Движение. ВидДвижения = ВидДвиженияНакопления.
Приход;
Движение. Период = Дата;
Движение. ФИО = ФИО;
Движение. Стипендия = сумма;
// }}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Процедура ОбработкаЗаполнения (Основание)
// {{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Если ТипЗнч (Основание) = Тип
("ДокументСсылка. ВедомостьСтудента") Тогда
// Заполнение шапки
ФИО = Основание. ФИО;
Для Каждого ТекСтрокаТабличнаяЧасть1 Из
Основание. ТабличнаяЧасть1 Цикл
НоваяСтрока = ТабличнаяЧасть1. Добавить ();
НоваяСтрока. оценка = ТекСтрокаТабличнаяЧасть1.
оценка;
НоваяСтрока. предмет = ТекСтрокаТабличнаяЧасть1.
предмет;
КонецЦикла;
КонецЕсли;
// }}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
. Зачисление
Процедура ОбработкаПроведения (Отказ, Режим)
// {{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаТабличнаяЧасть1 Из
ТабличнаяЧасть1 Цикл
// регистр Студенты Приход
Движение = Движения. Студенты. Добавить ();
Движение. ВидДвижения = ВидДвиженияНакопления.
Приход;
Движение. Период = Дата;
Движение. ФИО = ФИО;
Движение. Предмет = ТекСтрокаТабличнаяЧасть1.
предмет;
Движение. группа = группа;
Движение. баллыПоЕгэ = ТекСтрокаТабличнаяЧасть1.
баллыПоЕгэ;
КонецЦикла;
// }}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
. Отчисление
Процедура ОбработкаПроведения (Отказ, Режим)
// {{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаТабличнаяЧасть1 Из ТабличнаяЧасть1
Цикл
// регистр Студенты Расход
Движение = Движения. Студенты. Добавить ();
Движение. ВидДвижения = ВидДвиженияНакопления.
Расход;
Движение. Период = Дата;
Движение. ФИО = ФИО;
Движение. Предмет = ТекСтрокаТабличнаяЧасть1.
предмет;
Движение. Оценка = ТекСтрокаТабличнаяЧасть1.
оценка;
Движение. группа = группа;
КонецЦикла;
// }}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Процедура ОбработкаЗаполнения (Основание)
// {{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Если ТипЗнч (Основание) = Тип
("ДокументСсылка. ВедомостьСтудента") Тогда
// Заполнение шапки
группа = Основание. группа;
курс = Основание. курс;
семестр = Основание. семестр;
ФИО = Основание. ФИО;
Для Каждого ТекСтрокаТабличнаяЧасть1 Из
Основание. ТабличнаяЧасть1 Цикл
НоваяСтрока = ТабличнаяЧасть1. Добавить ();
НоваяСтрока. оценка = ТекСтрокаТабличнаяЧасть1.
оценка;
НоваяСтрока. предмет = ТекСтрокаТабличнаяЧасть1. предмет;
НоваяСтрока. типСдачи = ТекСтрокаТабличнаяЧасть1.
типСдачи;
КонецЦикла;
КонецЕсли;
// }}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
. Ведомость Студента
Процедура ОбработкаПроведения (Отказ, Режим)
// {{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаТабличнаяЧасть1 Из
ТабличнаяЧасть1 Цикл
// регистр Ведомость
Движение = Движения. Ведомость. Добавить ();
Движение. Период = Дата;
Движение. группа = группа;
Движение. семестр = семестр;
Движение. курс = курс;
Движение. ФИО = ФИО;
Движение. типСдачи = ТекСтрокаТабличнаяЧасть1.
типСдачи;
Движение. предмет = ТекСтрокаТабличнаяЧасть1.
предмет;
Движение. оценка = ТекСтрокаТабличнаяЧасть1.
оценка;
КонецЦикла;
// }}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
6. Учащиеся
Форма документа:
Процедура ОбработкаЗаполнения (Основание)
// {{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Если ТипЗнч (Основание) = Тип
("ДокументСсылка. ВедомостьСтудента") Тогда
// Заполнение шапки
группа = Основание. группа;
курс = Основание. курс;
семестр = Основание. семестр;
ФИО = Основание. ФИО;
Для Каждого ТекСтрокаТабличнаяЧасть1 Из
Основание. ТабличнаяЧасть1 Цикл
НоваяСтрока = ТабличнаяЧасть1. Добавить ();
НоваяСтрока. оценка = ТекСтрокаТабличнаяЧасть1.
оценка;
НоваяСтрока. предмет = ТекСтрокаТабличнаяЧасть1.
предмет;
КонецЦикла;
КонецЕсли;
// }}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
Процедура ОбработкаПроведения (Отказ, Режим)
// {{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаТабличнаяЧасть1 Из
ТабличнаяЧасть1 Цикл
// регистр Студенты Приход
Движение = Движения. Студенты. Добавить ();
Движение. ВидДвижения = ВидДвиженияНакопления.
Приход;
Движение. Период = Дата;
Движение. Предмет = ТекСтрокаТабличнаяЧасть1.
предмет;
Движение. Оценка = ТекСтрокаТабличнаяЧасть1.
оценка;
Движение. ФИО = ФИО;
Движение. группа = группа;
КонецЦикла;
// }}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Регистры
Регистры в системе 1С: Предприятие используются для
накопления информации о наличии и движении средств - товарных, денежных и
других. Вся информация о хозяйственных операциях, которая вводится с
использованием документов или формируется при помощи расчетов, должна быть
накоплена в регистрах. Тогда эту информацию можно будет извлечь,
проанализировать и представить пользователю в виде отчетных форм. В моей
программе я использовала следующие регистры:
Отчёты
Любая система автоматизации учета только тогда выполняет свои
функции, когда она имеет средства обработки накопленной в системе информации и
получения сводных данных в удобном для просмотра и анализа виде. Как правило,
для решения подобных задач в системе автоматизации учета существует подсистема
формирования отчетных документов
Для получения сводной выходной информации в системе 1С:
Предприятие используются объекты метаданных, называемые "Отчет" и
"Обработка". Объект данных этого типа представляет собой алгоритм
обработки информации на внутреннем языке системы 1С: Предприятие.
В своей работе я реализовала следующие отчёты:
1. Ведомость
Процедура ПередОткрытием (Отказ,
СтандартнаяОбработка)
ведомостьИнициализация ();
КонецПроцедуры
Процедура ПриЗакрытии ()
СохранитьЗначение
("НастройкаОтчетыведомостьведомость_ceda9c70-8703-479d-abe6-3ae5ddafc2d3",
ПостроительОтчетаведомость. ПолучитьНастройки ());
КонецПроцедуры
Процедура ДействияФормыведомостьНастройка
(Кнопка)
//
{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_НАСТРОЙКА (ведомость)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
Форма = ОтчетОбъект. ПолучитьФорму
("ведомостьНастройка");
Форма. ПостроительОтчета =
ПостроительОтчетаведомость;
Настройка = ПостроительОтчетаведомость.
ПолучитьНастройки ();
Если Форма. ОткрытьМодально () = Истина Тогда
ведомостьВывести ();
Иначе
ПостроительОтчетаведомость. УстановитьНастройки
(Настройка);
КонецЕсли;
//
}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_НАСТРОЙКА
КонецПроцедуры
Процедура ДействияФормыведомостьСформировать
(Кнопка)
// {{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
(ведомость)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
ведомостьВывести ();
// }}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры
Процедура ведомостьВывести ()
//
{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ВЫПОЛНИТЬ (ведомость)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
внесенные вручную изменения будут утеряны!!!
ЭлементыФормы. ПолеТабличногоДокумента. Очистить
();
ПостроительОтчетаведомость. Параметры. Вставить
("ДатаОтчета", ДатаОтчета);
ПостроительОтчетаведомость. Выполнить ();
ПостроительОтчетаведомость.