Смекни!
smekni.com

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

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;

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

КонецЦикла;

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

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

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