# Руководство оператора программы «Учёт экспонатов музея»

# Аннотация

Настоящее руководство предназначено для оператора информационной системы «Учёт экспонатов музея». В документе приведены требования к подготовке рабочего места, порядок установки и проверки программы, правила выполнения основных операций и действия при возникновении ошибок.

Руководство описывает работу с клиентским Windows-приложением. Развёртывание, настройка и администрирование сервера PostgreSQL выполняются ответственным специалистом отдельно.

# Введение

## Область применения

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

Данные хранятся в централизованной базе PostgreSQL, расположенной на отдельном сервере.

## Основные возможности

Оператору доступны следующие функции:

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

В текущей версии программа не требует ввода логина и пароля и не разделяет пользователей по ролям.

# Подготовка к работе

## Требования к рабочему месту

Для работы программы необходимы:

- компьютер под управлением Windows;
- .NET Framework 4.7.2;
- доступ к серверу PostgreSQL;
- настроенные параметры подключения;
- установленное клиентское приложение и его зависимости;
- права учётной записи базы данных на чтение, добавление, изменение и удаление записей.

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

## Порядок установки

1. Закройте работающие экземпляры программы.
2. Запустите файл `MuseumExhibitsSetup.exe`.
3. Разрешите запуск установщика, если Windows выведет системное предупреждение.
4. Выберите папку установки. При отсутствии специальных требований оставьте путь по умолчанию.
5. Выберите создание ярлыка на рабочем столе и в меню «Пуск».
6. Начните установку и дождитесь завершения копирования файлов.
7. При появлении соответствующего запроса установите .NET Framework 4.7.2.
8. Завершите работу мастера установки.
9. Запустите приложение через созданный ярлык.

Параметры подключения к PostgreSQL должны быть подготовлены ответственным специалистом до передачи приложения оператору.

## Порядок проверки работоспособности

После установки выполните контрольную проверку:

1. Запустите программу.
2. Убедитесь, что открылось главное окно «Музей изобразительных искусств — Учёт экспонатов».
3. Проверьте, что таблица заполнилась сведениями об экспонатах.
4. Проверьте, что в списке «Автор» отображаются доступные авторы.
5. Нажмите кнопку **«Обновить»** и убедитесь, что появилось сообщение «Данные обновлены».
6. Добавьте тестовую запись с уникальным идентификатором.
7. Выберите созданную запись и измените её цену.
8. Выполните подсчёт экспонатов известного автора.
9. Удалите тестовую запись.
10. Убедитесь, что после каждой операции таблица обновляется.

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

# Описание операций

## 1. Запуск программы

1. Откройте меню «Пуск» или рабочий стол.
2. Запустите ярлык программы «Учёт экспонатов музея».
3. Дождитесь загрузки главного окна.
4. Убедитесь, что список экспонатов и список авторов загрузились без сообщений об ошибке.

При запуске приложение автоматически устанавливает соединение с сервером PostgreSQL.

## 2. Просмотр данных

Основная часть окна содержит таблицу экспонатов. Каждая строка соответствует отдельному экспонату.

В таблице отображаются следующие столбцы:

- `ID`;
- `Тип`;
- `Дата создания`;
- `Цена`;
- `Себестоимость`;
- `Автор`;
- `ID музея`.

Для просмотра большого списка используйте вертикальную полосу прокрутки. Если все столбцы не помещаются в окне, используйте горизонтальную прокрутку.

Выбор строки выполняется нажатием по ней левой кнопкой мыши.

## 3. Обновление списка

Для повторной загрузки сведений:

1. Нажмите кнопку **«Обновить»**.
2. Дождитесь выполнения запроса к серверу.
3. Убедитесь, что в нижней части окна появилось сообщение «Данные обновлены».

Обновление следует выполнять, если записи могли быть изменены другим пользователем или средствами администрирования базы данных.

## 4. Добавление экспоната

Для добавления нового экспоната заполните поля группы «Данные для добавления».

### Поля формы

- **ID** — уникальный целочисленный идентификатор экспоната.
- **Тип** — наименование типа объекта, например «Живопись», «Скульптура» или «Графика».
- **Дата** — дата создания экспоната.
- **Цена** — цена экземпляра.
- **Себестоимость** — затраты на создание или приобретение.
- **Автор** — автор, выбранный из раскрывающегося списка.
- **ID музея** — идентификатор существующего музея.

### Порядок добавления

1. Введите уникальный ID.
2. Укажите тип экспоната.
3. Выберите дату.
4. Введите цену.
5. Введите себестоимость.
6. Выберите автора.
7. Введите ID существующего музея.
8. Проверьте введённые сведения.
9. Нажмите кнопку **«Добавить»**.
10. Убедитесь, что новая запись появилась в таблице.

После успешного добавления программа очищает поля ввода и выводит сообщение «Экспонат добавлен!».

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

Не используйте идентификатор, который уже принадлежит другому экспонату. Автор и музей должны существовать в соответствующих таблицах базы данных.

## 5. Изменение цены экспоната

В текущей версии программы можно изменить только цену выбранного экспоната.

1. Выберите нужную строку в таблице.
2. Нажмите кнопку **«Изменить цену»**.
3. Введите новую цену в открывшемся окне.
4. Нажмите кнопку подтверждения.
5. Убедитесь, что значение в таблице изменилось.
6. Проверьте появление сообщения «Цена обновлена!».

Если строка не выбрана, программа выведет сообщение «Выберите экспонат для изменения».

Если введено пустое или нечисловое значение, изменение не выполняется.

## 6. Удаление экспоната

1. Выберите удаляемый экспонат в таблице.
2. Нажмите кнопку **«Удалить»**.
3. Проверьте, что выбрана нужная строка.
4. В окне подтверждения выберите ответ «Да».
5. Убедитесь, что запись исчезла из таблицы.
6. Проверьте появление сообщения «Экспонат удален!».

Для отмены операции выберите ответ «Нет».

Если строка не выбрана, программа выведет сообщение «Выберите экспонат для удаления».

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

## 7. Подсчёт количества экспонатов автора

Для подсчёта используется функция PostgreSQL `get_exhibit_count_by_author`.

1. Нажмите кнопку **«Тест процедуры»**.
2. Введите числовой идентификатор автора.
3. Подтвердите ввод.
4. Просмотрите результат в нижней части главного окна.

Результат отображается в виде:

`Автор с ID 1 создал 3 экспонатов`

Если с указанным автором не связано ни одного экспоната, программа отображает значение `0`.

Кнопка имеет техническое название «Тест процедуры», однако фактически выполняет подсчёт количества экспонатов автора.

## 8. Завершение работы

1. Дождитесь завершения текущей операции.
2. Закройте дополнительные диалоговые окна.
3. Закройте главное окно стандартной кнопкой Windows.

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

# Аварийные ситуации

| Ситуация | Возможная причина | Действия оператора |
|---|---|---|
| Программа не устанавливается | Установочный файл повреждён; недостаточно прав или места на диске | Повторно получите установщик, проверьте свободное место и запустите его от имени администратора |
| Программа не запускается | Отсутствует .NET Framework 4.7.2; повреждены файлы приложения или зависимости | Установите требуемую платформу, проверьте папку программы или выполните переустановку |
| Появляется ошибка загрузки | Сервер PostgreSQL недоступен; отсутствует сеть; неверны параметры подключения | Проверьте сеть, повторите запуск и сообщите ответственному специалисту |
| Таблица экспонатов не заполняется | Запрос завершился ошибкой; таблица `Exhibit` недоступна или не содержит записей | Нажмите «Обновить», затем обратитесь к администратору базы данных |
| Список авторов не загружается | Таблица `Creator` недоступна; отсутствуют права или соединение | Проверьте подключение и сообщите ответственному специалисту |
| Экспонат не добавляется | Поля заполнены неверно; ID уже используется; не существует автор или музей | Проверьте числовые значения, укажите уникальный ID и существующие связанные записи |
| Цена не изменяется | Не выбрана строка; введено нечисловое значение; отсутствуют права на изменение | Выберите запись, повторно введите цену и при необходимости обратитесь к администратору |
| Экспонат не удаляется | Запись используется в другой таблице; отсутствуют права на удаление | Не удаляйте связанные данные самостоятельно; сообщите администратору БД |
| Не выполняется подсчёт по автору | Введено нечисловое значение; функция отсутствует или недоступна | Укажите числовой ID автора и сообщите ответственному специалисту, если ошибка повторяется |
| Программа перестала отвечать | Потеряно соединение с сервером или запрос выполняется слишком долго | Подождите завершения операции, затем закройте программу средствами Windows и сообщите специалисту |

При обнаружении повреждения или несогласованности данных прекратите операции изменения и сообщите ответственному специалисту. Не редактируйте базу данных вручную.

# Термины и сокращения

| Термин | Определение |
|---|---|
| Оператор | Пользователь, выполняющий действия в клиентском приложении |
| Клиентское приложение | Установленная на рабочем компьютере программа |
| БД | База данных |
| СУБД | Система управления базами данных |
| PostgreSQL | Серверная СУБД, в которой хранятся данные |
| Экспонат | Объект, включённый в музейный каталог |
| Автор | Создатель произведения или другого экспоната |
| Музей | Организация, в которой хранится или учитывается экспонат |
| Идентификатор | Уникальное числовое обозначение записи |
| Цена | Указанная в базе данных стоимость экземпляра |
| Себестоимость | Затраты на создание или приобретение экспоната |
| Функция базы данных | Серверная программа, принимающая параметры и возвращающая результат |
| Npgsql | Библиотека подключения приложений .NET к PostgreSQL |
| .NET Framework | Платформа, необходимая для запуска программы |
| Inno Setup | Средство создания установочного файла Windows |
