Интерфейс ввода / корректировки справочников.




Интерфейс пользователя разработан в программной среде

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. Пример отчета "Долги читателя".

 

ВЫВОД

 

В результате проектирования были разработаны:

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

2. Разработаны печатные формы (отчеты).

3. Простой в применение интерфейс для пользователей.

 

ПРИЛОЖЕНИЕ

Рис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;

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

КонецЦикла;

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

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: