Реферат: Разработка автоматизированного рабочего места библиотекаря с помощью среды программирования 1С:Предприятие

ОГЛАВЛЕНИЕ

1.        Введение

2.        Теоретическаячасть

3.        Описаниеавтоматизированного рабочего места

4.        Вывод

5.        Приложение


1.        ВВЕДЕНИЕ

В этомпримере рассматривается деятельность городской (районной) библиотеки. Вбиблиотечном фонде храниться много данных, как о книгах (название книг, издание,количество), так и о читателях (ФИО, адрес). Чтобы облегчить работусотрудникам, правильно отследить данные о читателе и книгах можноавтоматизировать его рабочее место.

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


2.        ТЕОРЕТИЧЕСКАЯЧАСТЬ

 

/>Постановказадачи.

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

Программа должнасодержать:

1. Справочник «Книги»:у каждой книги есть уникальный библиотечный номер (код). Необходимо отметить,что может быть несколько экземпляров одного и того же произведения.

2. Справочник «Читатели»:каждому читателю выдается читательский билет с уникальным номером.

3. Справочник «Произведение»:у каждого произведения есть уникальный код.

4. Справочник «Авторы»и «Жанры»

В программе должныфиксироваться следующие события:

·          Выдача книгчитателю из библиотеки на определенный срок

·          Продление книги

·          Возврат книгичитателем в библиотеку

·          Потеря книгичитателем

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

Правила работыбиблиотеки следующие:

·          Читатель можетвзять в библиотеке только определенное количество книг (задается директоромбиблиотеки).

·          Читатель береткниги обычно на месяц, но может сразу взять книгу на больший срок, если явноскажет об этом.

·          Читатель можетпродлевать книгу, т.е. сообщать о том, что он вернет ее позже указанного ранеесрока.

·          При просрочкевозврата книги, читатель получает предупреждение.

·          Когда предупрежденийу читателя накапливается больше определенного предела, он лишается правомпользования библиотекой на 1 месяц.

·          При потере книгичитатель лишается правом пользования библиотекой на 1 месяц, независимо отколичества предупреждений.

В программе должна бытьвозможность сформировать библиотечную выписку, которая показывает всесовершенные операции за заданный период. Необходимо иметь возможность выбратьоперации только по указанному читателю и/или по указанной книге. В программедолжна быть возможность узнать долги конкретного читателя на данный момент,т.е. какие книги у него сейчас на руках и когда он должен их вернуть. В таблице1 представлены все объекты, которые нужно создать в конфигурации.

Таблица 1.

Тип объектов Объекты Справочники

·           Произведения

·           Книги (подчинен спр. Произведения)

·           Читатели

·           ЖанрыКниг

·           Авторы

Перечисления

·           СтатусКниги (значения: Свободна, Выдана, Списана)

·           ДаНет (значения: Да, Нет)

Документы

·           ВыдачаКниги

·           ПродлениеКниги

·           ВозвратКниги

·           ПотеряКниги

Журналы документов ·           Библиотека Отчеты

·           БиблиотечнаяВыписка

·           ДолгиЧитателя


Проектирование БД.

Для проектирования БД всистеме 1С: Предприятие используется конфигуратор- в этом режиме создается иликорректируется БД, программные модули. В таблице 2 подробно представлены всесправочники с реквизитами, которые потребуются для создания БД.

Таблица 2.

№ n/n Справочники Реквизиты 1 Произведения

·        Жанр

·        Авторы

·        Издание

·        Год издания

·        Число страниц

·        Ключевые слова

·        Аннотация

2 Книги

·        Статус

·        Читатель

·        Дата выдачи

·        Срок возврата

3 Читатель

·        ФИО

·        Блокирован

·        Количество предупреждений

4 Жанры книг ·        Наименование жанра 5 Авторы ·        ФИО

В таблицах 3-7 описана подробнаяструктура справочников.

Таблица 3.Справочник «Произведения»

№ Имя реквизита Тип значения 1 Жанр Справочник. ЖанрыКниг 2 Авторы Справочник. Авторы 3 Издание Число 4 Год издания Число 5 Число страниц Число 5 Ключевые слова Строка 7 Аннотация Строка

Таблица 4. Справочник «Книги»

№ Имя реквизита Тип значения 1 Статус СтатусКниг. 2 Читатель Справочник. Читатели. 3 Дата Выдачи Дата 4 Срок Возврата Дата

Таблица 5. Справочник «Читатели»

№ Имя реквизита Тип значения 1 ФИО Строка 2 Кол-во предупреждений Число 3 Блокирован Да Нет

Таблица 6. Справочник «ЖанрКниги»

№ Имя реквизита Тип значения 1 Жанр Книги Строка

Таблица 7. Справочник «Авторы»

№ Имя реквизита Тип значения 1 Авторы Строка

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;

Таб.ВывестиСекцию(«Книга»);

КонецЦикла;

Таб.ВывестиСекцию(«Все>»);

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

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

еще рефераты
Еще работы по информатике, программированию