Задание
Автоматизировать работу "Библиотеки"
Функционал программы
- Ведение учета книг
- Выдача книг читателям
Содержание отчета к программе
- Пояснительная записка по работе с программой
- .DT файл
Фрагмент программного кода
Процедура ОформитьВыдачуКниги() Экспорт
ВыдачаКниги = Документы.ВыдачаКниги.СоздатьДокумент();
ВыдачаКниги.Принял = Выдал;
ВыдачаКниги.Читатель = Читатель;
ВыдачаКниги.Дата = ТекущаяДатаСеанса();
СтрокаКниг = ВыдачаКниги.Выдано.Добавить();
СтрокаКниг.Книга = Книга;
СтрокаКниг.Количество = 1;
ВыдачаКниги.Записать(РежимЗаписиДокумента.Проведение);
ЗаписьВЧитательскийБилет(Истина);
КонецПроцедуры
Процедура ОформитьВозвратКниги() Экспорт
ВозвратКниги = Документы.ВозвратКниги.СоздатьДокумент();
ВозвратКниги.Принял = Выдал;
ВозвратКниги.Читатель = Читатель;
ВозвратКниги.Дата = ТекущаяДатаСеанса();
СтрокаКниг = ВозвратКниги.ВозвратКниг.Добавить();
СтрокаКниг.Книга = Книга;
СтрокаКниг.Количество = 1;
ВозвратКниги.Записать(РежимЗаписиДокумента.Проведение);
ЗаписьВЧитательскийБилет(Ложь);
КонецПроцедуры
Процедура ЗаписьВЧитательскийБилет(Выдача)
ЧитательскийБилет = ПолучитьЧитательскийБилетПоЧитателю();
Если ЧитательскийБилет = Неопределено Тогда
Сообщить("Читательский билет не найден");
Возврат;
КонецЕсли;
Если Выдача Тогда
СтрокаКниг = ЧитательскийБилет.Книги.Добавить();
СтрокаКниг.Книги = Книга;
СтрокаКниг.ДатаВзятия = ТекущаяДатаСеанса();
СтрокаКниг.Количество = 1;
Иначе
КнигиЧитателя = ЧитательскийБилет.Книги.Выгрузить();
ФильтрПоиска = Новый Структура;
ФильтрПоиска.Вставить("Книги", Книга);
ФильтрПоиска.Вставить("ДатаВозврата", Дата("00010101"));
НайденныйСтроки = КнигиЧитателя.НайтиСтроки(ФильтрПоиска);
Для каждого СтрокаЧБ из НайденныйСтроки Цикл
СтрокаЧБ.ДатаВозврата = ТекущаяДатаСеанса();
Прервать;
КонецЦикла;
ЧитательскийБилет.Книги.Загрузить(КнигиЧитателя);
КонецЕсли;
ЧитательскийБилет.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("Зарегистрировано");
КонецПроцедуры
Функция ПолучитьЧитательскийБилетПоЧитателю()
ЧитательскийБилетЗапрос = Новый Запрос;
ЧитательскийБилетЗапрос.Текст = "ВЫБРАТЬ
| ЧитательскийБилет.Ссылка КАК Ссылка
|ИЗ
| Документ.ЧитательскийБилет КАК ЧитательскийБилет
|ГДЕ
| ЧитательскийБилет.Читатель = &Читатель";
ЧитательскийБилетЗапрос.УстановитьПараметр("Читатель", Читатель);
Результат = ЧитательскийБилетЗапрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Ссылка.ПолучитьОбъект();
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Пояснения по запуску программы
Нужно загрузить .DT файл как на скрине.

Телеграм
-