Релиз PrintStore 2.16

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

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

Также попутно была добавлена возможность обновления информации в базе через импорт из Excel. Раньше при импорте, если запись из файла была найдена в базе, она не обрабатывалась. Теперь в этом случае импортируемые данные будут записаны поверх существующих (с учетом ключевых полей). Это удобно, если нужно массово обновлять какие-то таблицы.

Полный список изменений:

- исправлена ошибка в закладках Оборудование-Установки РМ и Оборудование-Извлечения РМ при ограничении доступа по филиалам;
- добавлена возможность обновления записей в БД путем импорта из файлов Excel;
- добавлена проверка количества НРМ перед автоматическим добавлением расхода;
- диалог расхода оптимизирован и сделан асинхронным;
- в диалоге расхода остатки на складах и ресурсы НРМ теперь отображаются на выбранную дату;
- в диалоге расхода в списке оборудования теперь отображаются только устройства, имеющие совместимые РМ;
- при вызове диалога расхода из раздела Расходные материалы в списке оборудования теперь отображаются только совместимые с выбранным РМ устройства.