Внешний вид сайта:

Мини-библиотека

Полезность страницы:
0/100

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

Конфигурация, по-видимому, должна содержать справочник Книги. У каждой книги есть уникальный библиотечный номер (код). Необходимо отметить, что может быть несколько экземпляров одного и того же произведения.

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

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

  • Выдача книг читателю из библиотеки на определенный срок
  • Продление книги
  • Возврат книги читателем в библиотеку
  • Потеря книги читателем

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

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

  • Читатель может взять в библиотеке только определенное количество книг (задается директором библиотеки).
  • Читатель берет книги обычно на месяц, но может сразу взять книгу на больший срок, если явно скажет об этом.
  • Читатель может продлевать книгу, т.е. сообщать о том, что он вернет ее позже указанного ранее срока.
  • При просрочке возврата книги, читатель получает предупреждение.
  • Когда предупреждений у читателя накапливается больше определенного предела, он лишается правом пользования библиотекой на 1 месяц.
  • При потере книги читатель лишается правом пользования библиотекой на 1 месяц, независимо от количества предупреждений.

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

В программе должна быть возможность узнать долги конкретного читателя на данный момент, т.е. какие книги у него сейчас на руках и когда он должен их вернуть.

Объекты конфигурации

В конфигурации потребуется создать следующие объекты:

Тип объектов
Объекты
Константы
  • МаксКолвоПредупреждений
  • МаксКолвоКнигНаРуках
  • КолвоДнейБлокировки
  • КолвоДнейДляВыдачи
Справочники
  • Произведения
  • Книги (подчинен спр. Произведения)
  • Читатели
  • ЖанрыКниг
  • Авторы
Перечисления
  • СтатусКниги (значения: Свободна, Выдана, Списана)
  • ДаНет (значения: Да, Нет)
Документы
  • ВыдачаКниги
  • ПродлениеКниги
  • ВозвратКниги
  • ПотеряКниги
Журналы документов
  • Библиотека
Отчеты
  • БиблиотечнаяВыписка
  • ДолгиЧитателя

Справочник "Произведения" (форма элемента)

Экранная форма элемента справочника Произведения выглядит следующим образом:


Справочник "Книги" (форма списка)

Экранная форма списка справочника Книги выглядит следующим образом:

Документ "Выдача книги"

Экранная форма документа выглядит следующим образом:

Модуль формы см. в конфигурации "Мини-библиотека".

Модуль проведения:

Процедура ОбработкаПроведения()

    СпрКниги = создатьОбъект("Справочник.Книги");

    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл

        СпрКниги.НайтиЭлемент(Книга);
        СпрКниги.Статус = Перечисление.СтатусКниги.Выдана;
        СпрКниги.Читатель = Читатель;
        СпрКниги.ДатаВыдачи = ДатаДок;
        СпрКниги.СрокВозврата = СрокВозврата;
        СпрКниги.Записать();

    КонецЦикла;

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

Документ "Продление книги"

Экранная форма документа выглядит следующим образом:

Модуль формы см. в конфигурации "Мини-библиотека".

Модуль проведения:

Процедура ОбработкаПроведения()

    СпрКниги = создатьОбъект("Справочник.Книги");

    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл

        Если Число(НовыйСрокВозврата)<>0 Тогда

            СпрКниги.НайтиЭлемент(Книга);
            СпрКниги.СрокВозврата = НовыйСрокВозврата;
            СпрКниги.Записать();

        КонецЕсли;

    КонецЦикла;

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

Документ "Возврат книги"

Экранная форма документа выглядит следующим образом:

Модуль формы см. в конфигурации "Мини-библиотека".

Модуль проведения:

Процедура ОбработкаПроведения()

 

    СпрКниги = создатьОбъект("Справочник.Книги");
    СпрЧитатели = СоздатьОбъект("Справочник.Читатели");

    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл

        СпрКниги.НайтиЭлемент(Книга);

        Если СпрКниги.СрокВозврата < ДатаДок Тогда

            СпрЧитатели.НайтиЭлемент(Читатель);
            СпрЧитатели.КоличествоПредупреждений = СпрЧитатели.КоличествоПредупреждений + 1;
            СпрЧитатели.Записать();

            Если СпрЧитатели.КоличествоПредупреждений > Константа.МаксКолвоПредупреждений Тогда

                УстановитьРеквизитСправочника(Читатель, "Блокирован",Перечисление.ДаНет.Да, ДатаДок);
                УстановитьРеквизитСправочника(Читатель, "Блокирован",Перечисление.ДаНет.Нет, ДатаДок + Константа.КолвоДнейБлокировки);

            КонецЕсли;

        КонецЕсли;

        СпрКниги.Статус = Перечисление.СтатусКниги.Свободна;
        СпрКниги.Читатель = 0;
        СпрКниги.ДатаВыдачи = 0;
        СпрКниги.СрокВозврата = 0;
        СпрКниги.Записать();

    КонецЦикла; 

 

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

Документ "Потеря книги"

Экранная форма документа выглядит следующим образом:

Модуль формы см. в конфигурации "Мини-библиотека".

Модуль проведения:

Процедура ОбработкаПроведения()

    СпрКниги = создатьОбъект("Справочник.Книги");

    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл

        СпрКниги.НайтиЭлемент(Книга);
        СпрКниги.Статус = Перечисление.СтатусКниги.Списана;
        СпрКниги.Читатель = 0;
        СпрКниги.ДатаВыдачи = 0;
        СпрКниги.СрокВозврата = 0;
        СпрКниги.Записать();

    КонецЦикла;

    УстановитьРеквизитСправочника(Читатель, "Блокирован", Перечисление.ДаНет.Да, ДатаДок);
    УстановитьРеквизитСправочника(Читатель, "Блокирован", Перечисление.ДаНет.Нет, ДатаДок + Константа.КолвоДнейБлокировки);

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

Отчет "Библиотечная выписка"

Экранная форма диалога отчета выглядит следующим образом:

Пример работы отчета:

Модуль отчета см. в конфигурации "Мини-библиотека".

Отчет "Долги читателя"

Экранная форма диалога отчета выглядит следующим образом:

Пример работы отчета:

Модуль отчета см. в конфигурации "Мини-библиотека".

Дополнительные функции

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

  • Поиск нужной книги по названию, автору, жанру и другим известным признакам.
  • Технология штрих-кодирования. Каждому читателю и каждой книге присваивается уникальный штрих-код. В экранных формах выбор читателя производится путем считывания штрих-кода, программа должна найти читателя или книгу в справочнике по штрих-коду.
  • Денежные расчеты. Допустим каждая книга имеет определенную ценность и библиотека является коммерческой. Каждый день взятия книги должен быть оплачен читателем исходя из задаваемых директором тарифов. При потере книги читатель должен заплатить штраф.
  • Отмена документов. При отмене проведения документов все изменения, которые он сделал в системе должны быть также отменены. Для сохранения непротиворечивости базы данных отмена документов должна проводиться в обратном порядке для каждого читателя и книги.
  • Может быть вам захочется реализовать учет на регистрах, а не только на справочниках и документах.
  • Добавьте другие функции, которые вы считаете просто необходимыми для работы нормальной библиотеки.

Что можно скачать

Скачать конфигурацию "Мини-библиотека" (20К)

Дополнить страницу Вы можете помочь другим людям дополнив эту страницу вашими знаниями по данному вопросу!
02:57

Комментарии

Нет комментариев. Ваш будет первым!