# Каталог работ

Раздел хранит прайс-лист лаборатории: работы для нарядов, базовые цены, устаревшие позиции и шаблонные операции.

## Список

- Поиск работает по коду, названию, категории, описанию и шаблонным операциям.
- `Скрыть устаревшие` оставляет в таблице только актуальные работы.
- `Новая позиция` создает работу.
- `В файл` сохраняет текущий список в TXT для переноса или XLSX для Excel.
- `Загрузить` импортирует каталог из TXT или XLSX.

## Работа

В карточке задаются:

- `Код`;
- `Название`;
- `Категория`;
- `Описание`;
- `Базовая цена`;
- `Длительность`;
- `Устаревшая`;
- порядок сортировки;
- операции по умолчанию.

Цена может быть отрицательной и хранится с копейками.

## Устаревшие работы

Если работа больше не используется, установите флаг `Устаревшая`. Такая работа остается в старых нарядах и отчетах, но скрывается из выбора при включенном фильтре актуальных работ.

## Операции по умолчанию

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

- `Количество` задает объем операции.
- `0` означает служебный случай: операция добавляется без умножения на количество работы.
- Порядок строк хранится через поле сортировки.

## Загрузка из TXT

TXT подходит для переноса списка из другой базы или из Excel/LibreOffice.

Формат строки:

```text
Работа	Цена
```

Файл читается в UTF-16 или UTF-8.

Порядок загрузки:

- нажмите `Загрузить` -> `TXT/Excel`;
- выберите файл и нажмите `Загрузить файл`;
- проверьте таблицу предпросмотра;
- оставьте отмеченными строки, которые нужно добавить или обновить;
- нажмите `Добавить выбранные`.

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

Если работа с таким названием уже есть, обновляется ее цена. Если работы нет, создается новая позиция.

## Загрузка из XLSX

XLSX используется для расширенного импорта с кодом, категорией, описанием, признаком `Устаревшая` и шаблонными операциям. Импорт работает по коду позиции.
