Разработка автоматизированного рабочего места библиотекаря с помощью среды программирования 1С: Предприятие
База данных, в которой описаны: наименование книг имеющихся в библиотечном фонде, читатели, пользующиеся услугами библиотеки. Отчеты предназначены для вывода информации из базы данных. У любого отчета в системе 1С: Предприятие есть экранная форма. При потере книги читатель лишается правом пользования библиотекой на 1 месяц, независимо от количества предупреждений. Все справочники представлены… Читать ещё >
Разработка автоматизированного рабочего места библиотекаря с помощью среды программирования 1С: Предприятие (реферат, курсовая, диплом, контрольная)
1. Введение
2. Теоретическая часть
3. Описание автоматизированного рабочего места
4. Вывод
5. Приложение
1. ВВЕДЕНИЕ
В этом примере рассматривается деятельность городской (районной) библиотеки. В библиотечном фонде храниться много данных, как о книгах (название книг, издание, количество), так и о читателях (ФИО, адрес). Чтобы облегчить работу сотрудникам, правильно отследить данные о читателе и книгах можно автоматизировать его рабочее место.
Целью данной работы является разработка и проектирование базы данных библиотеки, в которой описываются данные о книгах, читателей и вывод на печать определенных документов. Интерфейс пользователя разрабатывается в среде программирования 1С: Предприятия.
2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Постановка задачи.
Требуется создать простейшую систему учета для библиотеки, которая позволит выдавать книги читателям, отслеживать задолженности читателя и формировать отчеты по совершенным операциям за заданный период.
Программа должна содержать:
1. Справочник «Книги»: у каждой книги есть уникальный библиотечный номер (код). Необходимо отметить, что может быть несколько экземпляров одного и того же произведения.
2. Справочник «Читатели»: каждому читателю выдается читательский билет с уникальным номером.
3. Справочник «Произведение»: у каждого произведения есть уникальный код.
4. Справочник «Авторы» и «Жанры»
В программе должны фиксироваться следующие события:
· Выдача книг читателю из библиотеки на определенный срок
· Продление книги
· Возврат книги читателем в библиотеку
· Потеря книги читателем Для каждого события в конфигурации необходимо предусмотреть соответствующий документ.
Правила работы библиотеки следующие:
· Читатель может взять в библиотеке только определенное количество книг (задается директором библиотеки).
· Читатель берет книги обычно на месяц, но может сразу взять книгу на больший срок, если явно скажет об этом.
· Читатель может продлевать книгу, т. е. сообщать о том, что он вернет ее позже указанного ранее срока.
· При просрочке возврата книги, читатель получает предупреждение.
· Когда предупреждений у читателя накапливается больше определенного предела, он лишается правом пользования библиотекой на 1 месяц.
· При потере книги читатель лишается правом пользования библиотекой на 1 месяц, независимо от количества предупреждений.
В программе должна быть возможность сформировать библиотечную выписку, которая показывает все совершенные операции за заданный период. Необходимо иметь возможность выбрать операции только по указанному читателю и/или по указанной книге. В программе должна быть возможность узнать долги конкретного читателя на данный момент, т. е. какие книги у него сейчас на руках и когда он должен их вернуть. В таблице 1 представлены все объекты, которые нужно создать в конфигурации.
Таблица 1.
Тип объектов | Объекты | |
Справочники | · Произведения · Книги (подчинен спр. Произведения) · Читатели · ЖанрыКниг · Авторы | |
Перечисления | · СтатусКниги (значения: Свободна, Выдана, Списана) · ДаНет (значения: Да, Нет) | |
Документы | · ВыдачаКниги · ПродлениеКниги · ВозвратКниги · ПотеряКниги | |
Журналы документов | · Библиотека | |
Отчеты | · БиблиотечнаяВыписка · ДолгиЧитателя | |
Проектирование БД.
Для проектирования БД в системе 1С: Предприятие используется конфигураторв этом режиме создается или корректируется БД, программные модули. В таблице 2 подробно представлены все справочники с реквизитами, которые потребуются для создания БД.
Таблица 2.
№ n/n | Справочники | Реквизиты | |
Произведения | · Жанр · Авторы · Издание · Год издания · Число страниц · Ключевые слова · Аннотация | ||
Книги | · Статус · Читатель · Дата выдачи · Срок возврата | ||
Читатель | · ФИО · Блокирован · Количество предупреждений | ||
Жанры книг | · Наименование жанра | ||
Авторы | · ФИО | ||
В таблицах 3−7 описана подробная структура справочников.
Таблица 3. Справочник «Произведения»
№ | Имя реквизита | Тип значения | |
Жанр | Справочник. ЖанрыКниг | ||
Авторы | Справочник. Авторы | ||
Издание | Число | ||
Год издания | Число | ||
Число страниц | Число | ||
Ключевые слова | Строка | ||
Аннотация | Строка | ||
Таблица 4. Справочник «Книги»
№ | Имя реквизита | Тип значения | |
Статус | СтатусКниг. | ||
Читатель | Справочник. Читатели. | ||
Дата Выдачи | Дата | ||
Срок Возврата | Дата | ||
Таблица 5. Справочник «Читатели»
№ | Имя реквизита | Тип значения | |
ФИО | Строка | ||
Кол-во предупреждений | Число | ||
Блокирован | Да Нет | ||
Таблица 6. Справочник «Жанр Книги»
№ | Имя реквизита | Тип значения | |
Жанр Книги | Строка | ||
Таблица 7. Справочник «Авторы»
№ | Имя реквизита | Тип значения | |
Авторы | Строка | ||
3. ОПИСАНИЕ АВТОМАТИЗИРОВАННОГО РАБОЧЕГО МЕСТА
Разработка приложения.
Разработка приложения состоит из нескольких частей.
· Интерфейс ввода/ корректировка справочников, работа с документами.
· Составление печатных форм отчетов.
1. Интерфейс ввода / корректировки справочников.
Интерфейс пользователя разработан в программной среде
1С: Предприятие.
При запуске программы 1С: Предприятие, пользователь сразу попадает в диалог «Запуск 1С: Предприятия» .
Рис1. Диалог «Запуск 1С: Предприятия» .
В диалоге, информационная база запускается в режиме 1С: Предприятие.
При запуске информационной базы сразу попадаем на главную форму. (Рис2).
Рис2. Окно главного меню.
Для простоты обращения интерфейсы всех трех меню одинаковы.
Меню " Справочники" .
При нажатие на меню «Справочник», всплывает вспомогательное меню, в котором перечислены все используемы справочники программы. (Рис3.)
Рис3. Меню «Справочник»
Все справочники представлены в виде таблицы, в которые можно добавлять, изменять данные и удалять данные. (Рис4).
Рис4. Справочник «Читатели» .
Для справочника «Произведение» создана форма элемента — вызывает редактор форм для создания формы ввода данных в справочник. (Рис5.)
Рис5. Форма для ввода данных в справочник «Произведение» .
Меню " Документы" .
В меню «Документы», представлены все документы, с которыми должен работать библиотекарь. Это документы: «Выдача книг», «Продление книги», «Возврат книги», «Потеря книги». (Рис6.)
Рис 6. Меню «Документы» .
Для всех документов созданы формы элемента, для удобного редактирования. (Рис7).
Рис7. Форма элемента документа «Выдача книги» .
Рис8. Форма элемента документа «Продление книги» .
Рис9. Форма элемента документа «Возврат книги» .
Рис10. Форма элемента документа «Потеря книги» .
Меню " Отчеты" .
Отчеты предназначены для вывода информации из базы данных. У любого отчета в системе 1С: Предприятие есть экранная форма.
Рис11. Экранная форма отчета «Библиотечная выписка» .
Библиотечная выписка, показывает все совершенные операции за заданный период. Можно выбрать операции только по указанному читателю и/или по указанной книге.
Рис 12. Пример работы отчета «Библиотечная выписка» .
В отчете «Долги читателя», можно отследить задолжников.
Рис 13. Экранная форма отчета «Долги читателя» .
Рис 14. Пример отчета «Долги читателя» .
4. ВЫВОД
В результате проектирования были разработаны:
1. База данных, в которой описаны: наименование книг имеющихся в библиотечном фонде, читатели, пользующиеся услугами библиотеки.
2. Разработаны печатные формы (отчеты).
3. Простой в применение интерфейс для пользователей.
5. ПРИЛОЖЕНИЕ
Рис15. Справочник «Книги» .
Рис 16. Справочник «Жанры Книги» .
Рис17. Справочник «Авторы» .
Текст программы:
Выдача Книги:
// ********************
Процедура ОбработкаПроведения ()
СпрКниги = создатьОбъект («Справочник.Книги»);
ВыбратьСтроки ();
Пока ПолучитьСтроку ()=1 Цикл СпрКниги. НайтиЭлемент (Книга);
СпрКниги.Статус = Перечисление.СтатусКниги.Выдана;
СпрКниги.Читатель = Читатель;
СпрКниги.ДатаВыдачи = ДатаДок;
СпрКниги.СрокВозврата = СрокВозврата;
СпрКниги.Записать ();
КонецЦикла;
КонецПроцедуры Продление Книги:
// ********************
Процедура ОбработкаПроведения ()
СпрКниги = создатьОбъект («Справочник.Книги»);
ВыбратьСтроки ();
Пока ПолучитьСтроку ()=1 Цикл Если Число (НовыйСрокВозврата)<>0 Тогда СпрКниги. НайтиЭлемент (Книга);
СпрКниги.СрокВозврата = НовыйСрокВозврата;
СпрКниги.Записать ();
КонецЕсли;
КонецЦикла;
КонецПроцедуры Продление книги:
// ********************
Процедура ОбработкаПроведения ()
СпрКниги = создатьОбъект («Справочник.Книги»);
СпрЧитатели = СоздатьОбъект («Справочник.Читатели»);
ВыбратьСтроки ();
Пока ПолучитьСтроку ()=1 Цикл СпрКниги. НайтиЭлемент (Книга);
Если СпрКниги. СрокВозврата < ДатаДок Тогда СпрЧитатели. НайтиЭлемент (Читатель);
СпрЧитатели.КоличествоПредупреждений =
СпрЧитатели.КоличествоПредупреждений + 1;
СпрЧитатели.Записать ();
Если СпрЧитатели. КоличествоПредупреждений >
Константа.МаксКолвоПредупреждений Тогда УстановитьРеквизитСправочника (Читатель, «Блокирован», Перечисление.ДаНет.Да, ДатаДок);
УстановитьРеквизитСправочника (Читатель, «Блокирован», Перечисление.ДаНет.Нет, ДатаДок +
Константа.КолвоДнейБлокировки);
КонецЕсли;
КонецЕсли;
СпрКниги.Статус = Перечисление.СтатусКниги.Свободна;
СпрКниги.Читатель = 0;
СпрКниги.ДатаВыдачи = 0;
СпрКниги.СрокВозврата = 0;
СпрКниги.Записать ();
КонецЦикла;
КонецПроцедуры Потеря книги:
// ********************
Процедура ОбработкаПроведения ()
СпрКниги = создатьОбъект («Справочник.Книги»);
ВыбратьСтроки ();
Пока ПолучитьСтроку ()=1 Цикл СпрКниги. НайтиЭлемент (Книга);
СпрКниги.Статус = Перечисление.СтатусКниги.Списана;
СпрКниги.Читатель = 0;
СпрКниги.ДатаВыдачи = 0;
СпрКниги.СрокВозврата = 0;
СпрКниги.Записать ();
КонецЦикла;
УстановитьРеквизитСправочника (Читатель, «Блокирован», Перечисление.ДаНет.Да, ДатаДок);
УстановитьРеквизитСправочника (Читатель, «Блокирован», Перечисление.ДаНет.Нет, ДатаДок +
Константа.КолвоДнейБлокировки);
КонецПроцедуры Отчеты. Библиотечная выписка.
//——————————;
//Документы ПродлениеКниги
//——————————;
Запрос = создатьОбъект («Запрос»);
ТекстЗапроса = «
|Период С НачДата По КонДата;
|ОбрабатыватьДокументы Проведенные;
|Док =
Документ.ПродлениеКниги.Текущий//*******************************************
Процедура Сформировать ()
тз = создатьОбъект («ТаблицаЗначений»);
тз.НоваяКолонка («Дата»);
тз.НоваяКолонка («ТипОперации»);
тз.НоваяКолонка («Читатель»);
тз.НоваяКолонка («Книга»);
тз.НоваяКолонка («СрокВозврата»);
//——————————;
//Документы ВыдачаКниги
//——————————;
Запрос = создатьОбъект («Запрос»);
ТекстЗапроса = «
|Период С НачДата По КонДата;
|ОбрабатыватьДокументы Проведенные;
|Док = Документ.ВыдачаКниги.ТекущийДокумент;
|Читатель = Документ.ВыдачаКниги.Читатель;
|Книга = Документ.ВыдачаКниги.Книга;
|СрокВозврата = Документ.ВыдачаКниги.СрокВозврата;
|Группировка Книга;
|Условие (Читатель в ВыбрЧитатель);
|Условие (Книга в ВыбрКнига);
|" ;
Если Запрос. Выполнить (ТекстЗапроса)=0 Тогда Возврат;
КонецЕсли;
Пока Запрос. Группировка (1)=1 Цикл Док = Запрос. Док;
тз.НоваяСтрока ();
тз.Дата = Док. ДатаДок;
тз.ТипОперации = Док. Вид ();
тз.Читатель = Запрос. Читатель;
тз.Книга = Запрос. Книга;
тз.СрокВозврата = Запрос. СрокВозврата;
КонецЦикла;
Документ;
|Читатель = Документ.ПродлениеКниги.Читатель;
|Книга = Документ.ПродлениеКниги.Книга;
|НовыйСрокВозврата =
Документ.ПродлениеКниги.НовыйСрокВозврата;
|Группировка Книга;
|Условие (Читатель в ВыбрЧитатель);
|Условие (Книга в ВыбрКнига);
|" ;
Если Запрос. Выполнить (ТекстЗапроса)=0 Тогда Возврат;
КонецЕсли;
Пока Запрос. Группировка (1)=1 Цикл Док = Запрос. Док;
тз.НоваяСтрока ();
тз.Дата = Док. ДатаДок;
тз.ТипОперации = Док. Вид ();
тз.Читатель = Запрос. Читатель;
тз.Книга = Запрос. Книга;
тз.СрокВозврата = Запрос. НовыйСрокВозврата;
КонецЦикла;
//——————————;
//Документы ВозвратКниги
//——————————;
Запрос = создатьОбъект («Запрос»);
ТекстЗапроса = «
|Период С НачДата По КонДата;
|ОбрабатыватьДокументы Проведенные;
|Док = Документ.ВозвратКниги.ТекущийДокумент;
|Читатель = Документ.ВозвратКниги.Читатель;
|Книга = Документ.ВозвратКниги.Книга;
|Группировка Книга;
|Условие (Читатель в ВыбрЧитатель);
|Условие (Книга в ВыбрКнига);
|" ;
Если Запрос. Выполнить (ТекстЗапроса)=0 Тогда Возврат;
КонецЕсли;
Пока Запрос. Группировка (1)=1 Цикл Док = Запрос. Док;
тз.НоваяСтрока ();
тз.Дата = Док. ДатаДок;
тз.ТипОперации = Док. Вид ();
тз.Читатель = Запрос. Читатель;
тз.Книга = Запрос. Книга;
КонецЦикла;
//——————————;
//Документы ПотеряКниги
//——————————;
Запрос = создатьОбъект («Запрос»);
ТекстЗапроса = «
|Период С НачДата По КонДата;
|ОбрабатыватьДокументы Проведенные;
|Док = Документ.ПотеряКниги.ТекущийДокумент;
|Читатель = Документ.ПотеряКниги.Читатель;
|Книга = Документ.ПотеряКниги.Книга;
|Группировка Книга;
|Условие (Читатель в ВыбрЧитатель);
|Условие (Книга в ВыбрКнига);
|" ;
Если Запрос. Выполнить (ТекстЗапроса)=0 Тогда Возврат;
КонецЕсли;
Пока Запрос. Группировка (1)=1 Цикл Док = Запрос. Док;
тз.НоваяСтрока ();
тз.Дата = Док. ДатаДок;
тз.ТипОперации = Док. Вид ();
тз.Читатель = Запрос. Читатель;
тз.Книга = Запрос. Книга;
КонецЦикла;
тз.Сортировать («Дата+»);
Таб = создатьОбъект («Таблица»);
Таб.ВывестиСекцию («Все<»);
тз.ВыбратьСтроки ();
НомПП = 0;
Пока тз. ПолучитьСтроку ()=1 Цикл НомПП = НомПП + 1;
Таб.ВывестиСекцию («Строка»);
КонецЦикла;
Таб.ВывестиСекцию («Все>»);
Таб.Опции (0);
Таб.Показать ();
КонецПроцедуры НачДата = НачМесяца (РабочаяДата ());
КонДата = КонМесяца (РабочаяДата ());
Долги читателя
//*******************************************
Процедура Сформировать ()
Таб = создатьОбъект («Таблица»);
Таб.ВывестиСекцию («Все<»);
НомПП = 0;
СпрКниги = создатьОбъект («Справочник.Книги»);
СпрКниги.ВыбратьЭлементыПоРеквизиту («Читатель», ВыбрЧитатель, 0,0);
Пока СпрКниги. ПолучитьЭлемент ()=1 Цикл НомПП = НомПП + 1;
Таб.ВывестиСекцию («Книга»);
КонецЦикла;
Таб.ВывестиСекцию («Все>»);
Таб.Показать ();
КонецПроцедуры