По вашему расписанию
Ежедневно, еженедельно, ежемесячно или через заданный интервал. Программа организует регулярное получение копий.
Разработка FreshBackup Manager — настольного приложения на Python для автоматического скачивания, проверки и локального хранения архивов информационных баз.

01 / О ПРОДУКТЕ
FreshBackup Manager предназначен для получения доступных пользователю архивов из облачного сервиса «1С:Фреш». Все задачи резервирования — список баз, расписание, проверка, журнал — собраны в одном интерфейсе.
Ежедневно, еженедельно, ежемесячно или через заданный интервал. Программа организует регулярное получение копий.
Выберите одну или несколько доступных информационных баз и сохраните набор для следующих запусков.
Повторные попытки после обрыва связи и докачка, только если сервер поддерживает HTTP Range.
Проверка ZIP, CRC и SHA-256 с сохранением финального архива после успешной проверки.
Настройка папки и количества сохраняемых копий для каждой информационной базы.
История скачиваний, статусы ошибок и быстрые команды из области уведомлений Windows.
02 / КОММЕРЧЕСКОЕ ПРЕДЛОЖЕНИЕ
Онлайн-версия коммерческого предложения, подготовленная по Word-документу. Полный документ доступен для скачивания в исходном формате .docx.
Стоимость определяется по сложности системы, количеству и объёму баз и требованиям к резервированию.
Сроки определяются после анализа требований, подтверждения разрешённого способа получения архивов и предоставления тестового доступа. Изменения объёма работ и ограничения стороннего сервиса могут потребовать отдельного согласования сроков и стоимости.
Возможный состав работ: интерфейс на русском языке, подключение к разрешённому механизму выгрузки, очередь загрузки, расписание, управление архивами, журнал, системный трей, сборка и документация. Конкретные функции и объём передачи исходного кода закрепляются в ТЗ и смете.
Единая фиксированная цена и минимальная стоимость для всех проектов не устанавливаются. Итоговая стоимость определяется после анализа требований и закрепляется в индивидуальном коммерческом предложении и договоре. Налоги, комиссии, сторонние расходы и порядок оплаты указываются при согласовании сметы.
03 / ПОЛНЫЙ ТЕКСТ КП
Текст перенесён из включённого в пакет Word-документа; таблицы и основные условия представлены непосредственно на странице.
Предмет предложения — разработка приложения для резервного копирования информационных баз сервиса «1С:Фреш» на локальный компьютер, с ручным и автоматическим запуском загрузок, проверкой результатов и ведением журнала.
| Показатель | Предложение |
|---|---|
| Стоимость разработки и внедрения | Индивидуальный расчёт после анализа требований |
| Налоги, сборы, комиссии посредников | Состав и учёт налогов, сборов и комиссий указываются в индивидуальной смете и договоре |
| Предлагаемый срок | Индивидуально, после согласования объёма работ и тестового доступа |
| Формат результата | Исходный код Python + исполняемая сборка Windows + инструкция |
| Порядок оплаты (предлагаемый) | Этапы, размер аванса и платежи согласуются в договоре |
| Гарантия на исправление дефектов реализации | 30 календарных дней после подписания акта приёмки |
Единая фиксированная цена и минимальная стоимость для всех проектов не устанавливаются. Итоговая стоимость определяется после анализа требований и закрепляется в индивидуальном коммерческом предложении и договоре. Налоги, комиссии, сторонние расходы и порядок оплаты указываются при согласовании сметы.
Стоимость зависит от количества и объёма баз, числа организаций и подключений, способов доступа к архивам, частоты и параллельности загрузок, сроков и мест хранения, требований к безопасности, уведомлениям и мониторингу, интеграций, развёртывания, проверки восстановления и сопровождения.
Для расчёта нужны перечень и объёмы баз, схема инфраструктуры, доступные способы выгрузки, расписание, политика хранения и требования к восстановлению. После обследования согласуются состав работ, смета, сроки, этапы и критерии приёмки. Дополнительные работы и изменения требований оцениваются отдельно до их выполнения.
Перечень ниже служит основой для обсуждения. В проект входят только работы, явно согласованные в ТЗ и смете.
Desktop-приложение FreshBackup Manager с русскоязычным графическим интерфейсом, ориентированное на Windows.
Подключение к 1С:Фреш с использованием доступного и разрешённого механизма авторизации; проверка соединения и получение списка доступных баз.
Выбор одной либо нескольких информационных баз; загрузка архивов вручную и по расписанию.
Повторные попытки при сетевых сбоях и продолжение загрузки при поддержке сервером HTTP Range; без ложного обещания обязательного докачивания.
Проверка целостности ZIP, вычисление SHA-256, безопасная запись во временный файл с публикацией после успешной проверки.
Выбор каталога, хранение указанного количества локальных копий для каждой базы, журнал событий и ошибок.
Запуск в системном трее, ручное скачивание через меню трея, настройки автозапуска и расписания.
Сборка, краткое руководство, сценарии тестирования и передача исходных кодов.
1. Пользователь задаёт параметры подключения к сервису и проверяет доступ.
2. Программа показывает доступные информационные базы и позволяет выбрать нужные.
3. Пользователь задаёт папку, количество сохраняемых архивов и расписание.
4. Загрузка происходит вручную либо автоматически; результаты и ошибки отображаются в журнале.
5. Программа проверяет архив и сохраняет его, после чего применяет правила хранения копий.
Ниже — пример интерфейса, приложенный к исходным материалам. Финальный дизайн уточняется на этапе согласования макетов.
Приложение скачивает резервные архивы, но не восстанавливает их в локальную информационную базу 1С. Восстановление выполняется средствами 1С.
Автоматизация возможна только при наличии у заказчика необходимых прав и технически доступных механизмов сервиса; изменение стороннего API требует отдельного согласования.
Поддержка Linux, macOS, развёртывание на сервере, облачная панель управления, создание собственных архивов на стороне 1С и интеграции с внешними облачными хранилищами не включены.
Лицензии 1С, доступ к 1С:Фреш, внешняя инфраструктура и сторонние платные компоненты не входят в цену.
Перед запуском проекта стороны утверждают ТЗ, порядок передачи доступов, критерии приёмки и условия использования исходного кода.
Перечисленные ниже функции могут быть разработаны по запросу заказчика. Они не входят в согласованный объём проекта автоматически: каждая опция оплачивается отдельно, её состав, сроки, стоимость и критерии приёмки утверждаются до начала работ в отдельной смете или дополнительном соглашении.
Уведомления на почту и в мессенджеры. Оповещения об успешном копировании, ошибках и повторных сбоях, пропущенном запуске, отсутствии свежей копии, нехватке места и результате проверки архива. Каналы, получатели и перечень событий согласуются отдельно; подключение мессенджеров — через доступные официальные API или ботов.
Гибкие сценарии оповещения. Мгновенные сообщения о сбоях, подтверждения успешных операций, ежедневные или еженедельные сводки. Настройка правил по базам и группам, уровней важности, времени отправки и эскалации ответственным сотрудникам.
SMTP под инфраструктуру заказчика. Подключение к SMTP-серверу заказчика либо, по отдельному запросу, разработка встроенного SMTP-компонента или развёртывание собственного SMTP-сервера/ретранслятора в согласованном контуре. Настройка доставки и сопровождение сервера согласуются и оплачиваются отдельно.
Другие расширения системы. Дополнительные хранилища, шифрование архивов, многоуровневое хранение, централизованный мониторинг, роли пользователей, интеграции с другими системами и автоматизированные проверки восстановления. Реализуемость и состав каждого расширения определяются после обследования.
| Этап | Содержание | Условия оплаты |
|---|---|---|
| 1. Согласование | ТЗ, доступы, макеты, тестовый контур | По согласованному графику платежей |
| 2. Разработка | Подключение, интерфейс, загрузки, расписание, журнал | В согласованной смете |
| 3. Проверка и сдача | Тесты, устранение дефектов, сборка и документация | По согласованному графику платежей |
Предложение носит информационный характер и становится обязательством сторон после согласования ТЗ и заключения договора.
04 / ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Техническое задание содержит предлагаемую архитектуру и требования; окончательный объём утверждается для конкретного проекта. Уведомления, SMTP и другие расширения согласуются и оплачиваются отдельно.
Разработать настольную программу FreshBackup Manager для скачивания архивов информационных баз, доступных пользователю в «1С:Фреш», на локальный компьютер. ТЗ описывает проектируемую реализацию. Функции обобщены по переданным скриншотам FreshBackup Manager версии 1.0.8, а не объявлены подтверждёнными возможностями текущего сервиса.
Предлагаемая базовая платформа — Windows 10/11 x64; целевые ОС и объём реализации согласуются для конкретного проекта. Язык интерфейса — русский. Доступ к сервису осуществляется с законными полномочиями пользователя.
Перечисленные ниже функции могут быть разработаны по запросу заказчика. Они не входят в согласованный объём проекта автоматически: каждая опция оплачивается отдельно, её состав, сроки, стоимость и критерии приёмки утверждаются до начала работ в отдельной смете или дополнительном соглашении. Уведомления на почту и в мессенджеры. Оповещения об успешном копировании, ошибках и повторных сбоях, пропущенном запуске, отсутствии свежей копии, нехватке места и результате проверки архива. Каналы, получатели и перечень событий согласуются отдельно; подключение мессенджеров — через доступные официальные API или ботов. Гибкие сценарии оповещения. Мгновенные сообщения о сбоях, подтверждения успешных операций, ежедневные или еженедельные сводки. Настройка правил по базам и группам, уровней важности, времени отправки и эскалации ответственным сотрудникам. SMTP под инфраструктуру заказчика. Подключение к SMTP-серверу заказчика либо, по отдельному запросу, разработка встроенного SMTP-компонента или развёртывание собственного SMTP-сервера/ретранслятора в согласованном контуре. Настройка доставки и сопровождение сервера согласуются и оплачиваются отдельно. Другие расширения системы. Дополнительные хранилища, шифрование архивов, многоуровневое хранение, централизованный мониторинг, роли пользователей, интеграции с другими системами и автоматизированные проверки восстановления. Реализуемость и состав каждого расширения определяются после обследования.
Python 3.12+ (точная минорная версия фиксируется на старте); интерфейс PySide6/Qt Widgets; фоновая работа без блокировки UI через QThread/worker.
HTTP-клиент httpx; повторы с backoff, тайм-ауты и потоковая запись на диск; запрет логирования секретов.
SQLite для локальных метаданных и журнала операций; настройки в пользовательском профиле. Секреты — через Windows Credential Manager (библиотека keyring), не в открытом JSON.
Планировщик APScheduler либо эквивалентный механизм с корректной обработкой выхода из сна и предотвращением двойного запуска.
Контроль SHA-256 средствами hashlib; тест ZIP через zipfile с учётом ресурсных ограничений и особенностей архива.
Сборка для Windows через PyInstaller; README, requirements/lock-файл, инструкции сборки и воспроизводимый пакет релиза.
| Модуль | Ответственность |
|---|---|
| GUI | Вкладки и формы, таблица баз, индикаторы состояния, трей |
| Auth / API adapter | Авторизация, запрос перечня баз, загрузка архива, обработка ошибок сервиса |
| Backup manager | Очередь задач, временные файлы, повторы, докачка, отмена |
| Verifier | Размер, ZIP, SHA-256, фиксация результата проверки |
| Scheduler | Запуск по расписанию, блокировка дубликатов |
| Storage / retention | Каталоги, имена файлов, безопасное удаление старых подтверждённых копий |
| Repository / log | SQLite, история операций, диагностические сведения |
Поля: адрес сервиса HTTPS (по умолчанию https://1cfresh.com, редактируемый), логин пользователя, пароль/доступный способ авторизации, код абонента при необходимости.
Кнопки: «Проверить подключение», «Обновить список баз», «Сохранить настройки». Маскирование секретов; отображение статуса соединения.
Ошибки: неверные учётные данные, отсутствие полномочий, недоступность сети, серверный отказ, несовместимый интерфейс. Секретные значения не должны появляться в журнале.
Таблица: отметка выбора, код базы, наименование, конфигурация, версия, дата последней успешной локальной копии.
Множественный выбор баз, сохранение выделенных баз между запусками; недоступные в следующем ответе API базы показываются с понятным статусом.
Кнопка «Скачать копии сейчас» обрабатывает отмеченные базы последовательно; при отсутствии выбранных баз — сообщение с предложением выбрать базы.
Включение автоматического скачивания; периодичность: ежедневно, еженедельно, ежемесячно, либо через заданный интервал (часов).
Поля: локальное время запуска, день недели/месяца или интервал, базовая папка, количество сохраняемых копий на каждую базу (по умолчанию 10).
Режим трея: приложение продолжает работать при закрытии окна в трей; «Выход» полностью останавливает процесс. Автозапуск с Windows — включаемая настройка.
При пропуске времени из-за сна/выключенного ПК: не более одного догоняющего запуска после возобновления при включённой опции; решение фиксируется в журнале.
Журнал: дата/время, база, событие, статус, сообщение, путь к файлу; поиск/фильтр по базе и результату; экспорт в TXT или CSV.
Нижняя панель: текущая база и этап, процент по полученным байтам при известном размере, скорость, загружено/всего, число задач очереди.
Трей: «Открыть FreshBackup Manager», «Скачать выбранные копии сейчас», «Выход». Результат команды из трея отображается уведомлением или записью в журнале.
1. Проверить доступность сервиса, полномочия и наличие отмеченных баз; сформировать последовательную очередь задач.
2. Для каждой базы запросить доступный архив через поддерживаемый сервисом механизм; зафиксировать идентификатор операции и метаданные.
3. Скачивать потоково в отдельный временный файл *.part, не объявляя такой файл резервной копией; регулярно обновлять индикатор.
4. При временном обрыве сделать до 8 повторов с нарастающей задержкой 2–60 секунд; докачивать по HTTP Range только при подтверждённой поддержке и валидности серверного ответа/ETag; иначе начинать файл заново.
5. После скачивания проверить ожидаемый размер, если он известен; структурную читаемость ZIP и CRC файлов с учётом ограничений ресурсов; рассчитать SHA-256. При наличии эталонного SHA-256 сверить его; иначе сохранить локальную контрольную сумму как свидетельство неизменности после скачивания.
6. После успешных проверок атомарно переименовать временный файл в финальный ZIP в пределах одного тома и записать сведения о нём в базу метаданных.
7. Только после появления успешной новой копии применять политику хранения: удалять превышающие лимит проверенные локальные архивы данной базы; при ошибке удаления предупреждать, но не скрывать факт успеха загрузки.
8. Ошибку конкретной базы фиксировать отдельно и продолжать очередь, если остальные базы не зависят от неё.
Рекомендуемый путь: <Папка пользователя>\<КодБазы>\<КороткоеИмя>_<КодБазы>_<ГГГГ-ММ-ДДTЧЧ-ММ-СС>_<ID>.zip. Символы, запрещённые Windows, нормализуются. Коллизии имён не допускаются. В одной папке остаются *.part лишь до завершения / последующего безопасного возобновления.
| Сущность | Основные поля |
|---|---|
| bases | id, code, title, config_name, config_version, selected, last_seen_at |
| jobs | id, base_id, source_id, trigger(manual/schedule/tray), state, attempts, bytes_received, bytes_total, created_at, started_at, finished_at, error_code, error_text |
| backups | id, base_id, filename, file_size, sha256, zip_verified, created_at, verified_at, source_created_at |
| settings | key, value (без хранения паролей и токенов) |
| events | id, job_id, occurred_at, level, message |
Состояния: queued → connecting → downloading → verifying → completed; дополнительные: retry_wait, failed, cancelled. Переход из verifying в completed разрешён только после проверок и финальной записи файла.
| Код / ситуация | Поведение |
|---|---|
| AUTH_FAILED | Показать ошибку авторизации; повтор без бесконечных запросов |
| NO_ACCESS / NO_ARCHIVE | Сохранить причину; перейти к следующей базе |
| TIMEOUT / NETWORK_LOST | Ограниченные повторные попытки; продолжение при валидном Range |
| DISK_FULL / PERMISSION_DENIED | Прервать соответствующую загрузку, не удалять старые копии |
| ZIP_INVALID / CHECKSUM_MISMATCH | Не публиковать файл как успешную копию; сохранить диагностический результат |
| APP_EXIT / CANCELLED | Корректная остановка; временный файл обрабатывается по политике возобновления |
HTTPS и штатная проверка сертификата без опции «игнорировать SSL» по умолчанию; никаких необоснованных обходов механизмов защиты сервиса.
Учётные данные и токены не записываются в лог и SQLite в открытом виде; хранение через системное хранилище секретов.
Защита от path traversal в именах архивов; запись только внутрь выбранной пользователем директории.
При экспорте диагностик обезличивать идентификаторы и адреса по настройке; ограничить логи по размеру и сроку.
Не выполнять автоматическую загрузку ZIP в рабочую информационную базу 1С, не модифицировать архив и не открывать вложенные объекты для исполнения.
Модульные тесты: расписание (включая смену месяца), формирование имён, политика хранения, переходы состояний и повторов.
Интеграционные тесты на тестовом сервере HTTP: авторизация, streaming, разрывы соединения, Range 206/200, ETag mismatch, сервер 429/5xx, отсутствие архива.
Файловые тесты: диск заполнен, нет прав доступа, повреждённый ZIP, неожиданный размер, смена имени файла.
GUI-тесты: выбор нескольких баз, сохранение настроек, сворачивание в трей, командное скачивание из трея, отмена операции, перезапуск программы.
Длительная проверка: запуск по расписанию с переходом через ночь и восстановлением системы после сна.
Тесты реального сервиса возможны при предоставлении тестового аккаунта и разрешённого метода работы с архивами.
1. Установка Windows-сборки на чистую тестовую машину и запуск без установленного Python.
2. Успешное подключение к доступному тестовому аккаунту 1С:Фреш и корректный перечень баз при наличии согласованного доступа.
3. Выбор минимум двух баз, сохранение выбора и последовательная загрузка архивов по кнопке.
4. Прерывание сети в ходе загрузки с подтверждённым корректным повтором и докачкой при поддержке Range.
5. Ни один непроверенный *.part не считается архивом; ZIP проходит проверку и получает SHA-256.
6. Автоматический запуск задачи по расписанию и запуск вручную из системного трея.
7. Установленный лимит числа сохранённых успешных архивов на базу соблюдается, даже если число ошибок меняется.
8. История попыток и ошибок доступна в журнале, без паролей и токенов.
9. Переданы исходный код, инструкции запуска/сборки, исполняемый пакет и отчёт по приёмочным сценариям.
| Этап | Результат |
|---|---|
| Анализ и прототип | Проверка способов доступа к архивам; согласованные экраны |
| Реализация | API-адаптер, очередь и скачивание, SQLite |
| Автоматизация | Расписание, трей, политика хранения |
| Тестирование и релиз | Реальные/тестовые прогоны, сборка, документация |
Сроки определяются после анализа требований, подтверждения разрешённого способа получения архивов и предоставления тестового доступа. Изменения объёма работ и ограничения стороннего сервиса могут потребовать отдельного согласования сроков и стоимости.
Основание: предоставленный документ «Разработка ПО для скачивания баз из 1С_Фреш.pdf» (7 страниц), скриншоты интерфейса и описание версии 1.0.8. Представленные материалы показывают экраны подключения, перечня баз, расписания, журнала и трея; в них отсутствует спецификация официального API 1С:Фреш, поэтому она не заявляется установленным фактом.
Отдельно не входят: локальное восстановление БП/ЗУП, редактирование данных баз, веб-сервер, мобильные приложения и необозначенные интеграции. Любые дополнения оформляются отдельным согласованием.
Редактируемое техническое задание в формате Microsoft Word.
05 / ВИЗУАЛЬНЫЕ МАТЕРИАЛЫ
Скриншоты предоставленной презентации версии 1.0.8. Нажмите на миниатюру, чтобы увеличить изображение.
Получение копии → проверка целостности ZIP → хранение на вашем носителе.
Доступ определяется правами пользователя и условиями сервиса.06 / МАТЕРИАЛЫ ПРОЕКТА
Файлы включены внутрь папки сайта: скачивание Word-документов доступно даже при открытии страницы с компьютера без интернета.
Изображения FreshBackup Manager показывают интерфейс отдельного приложения. Упоминания сторонних продуктов описывают назначение программы и не означают одобрения со стороны их правообладателей.