ПРОЕКТ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Резервное копирование 1С:Фреш — под вашим контролем.

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

PythonСтек разработки
Windows 10/11Целевая платформа
По согласованиюСроки под ваш проект
● ● ●FreshBackup Manager · 1.0.8
Реальный пример окна FreshBackup Manager со списком баз
● Архивы 1С:ФрешВыбрано → Скачано → Проверено
01 Ручная и автоматическая загрузка02 Проверка ZIP + SHA-25603 Локальное хранение копий04 Индивидуальная оценка

01 / О ПРОДУКТЕ

Меньше рутины.
Больше контроля.

FreshBackup Manager предназначен для получения доступных пользователю архивов из облачного сервиса «1С:Фреш». Все задачи резервирования — список баз, расписание, проверка, журнал — собраны в одном интерфейсе.

01

По вашему расписанию

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

02

Несколько баз в одном окне

Выберите одну или несколько доступных информационных баз и сохраните набор для следующих запусков.

03

Повторы при сбоях

Повторные попытки после обрыва связи и докачка, только если сервер поддерживает HTTP Range.

04

Контроль целостности

Проверка ZIP, CRC и SHA-256 с сохранением финального архива после успешной проверки.

05

Управление хранением

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

06

Журнал и системный трей

История скачиваний, статусы ошибок и быстрые команды из области уведомлений Windows.

01ПодключениеАвторизация в 1С:Фреш
02Выбор базНужные приложения
03СкачиваниеВручную или по графику
04ПроверкаZIP + SHA-256
Важно: скачивание ≠ восстановление. Приложение получает архивы из сервиса. Загрузка этих архивов в локальную 1С выполняется штатным механизмом конфигурации и в стоимость разработки программы не входит.

02 / КОММЕРЧЕСКОЕ ПРЕДЛОЖЕНИЕ

Понятные условия.
Под вашу задачу.

Онлайн-версия коммерческого предложения, подготовленная по Word-документу. Полный документ доступен для скачивания в исходном формате .docx.

РАЗРАБОТКА И ВНЕДРЕНИЕ
Индивидуальный
расчёт

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

Предлагаемый срокПосле оценки проекта
АвансПо договору
После приёмкиПо договору
Исправление дефектов30 календарных дней
Скачать предложение .docx ↓

Сроки определяются после анализа требований, подтверждения разрешённого способа получения архивов и предоставления тестового доступа. Изменения объёма работ и ограничения стороннего сервиса могут потребовать отдельного согласования сроков и стоимости.

РЕЗУЛЬТАТ РАЗРАБОТКИ

Приложение, которое можно установить и использовать.

Возможный состав работ: интерфейс на русском языке, подключение к разрешённому механизму выгрузки, очередь загрузки, расписание, управление архивами, журнал, системный трей, сборка и документация. Конкретные функции и объём передачи исходного кода закрепляются в ТЗ и смете.

✓ Исходный код Python
✓ Исполняемая сборка Windows
✓ Инструкция и тестовые сценарии
✓ Сдача по критериям приёмки

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

03 / ПОЛНЫЙ ТЕКСТ КП

Коммерческое предложение онлайн

Текст перенесён из включённого в пакет Word-документа; таблицы и основные условия представлены непосредственно на странице.

DOCX · ОНЛАЙН-ПРОСМОТР

Разработка FreshBackup Manager на Python

Скачать 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 / ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Разработка на Python.
От экранов до приёмки.

Техническое задание содержит предлагаемую архитектуру и требования; окончательный объём утверждается для конкретного проекта. Уведомления, SMTP и другие расширения согласуются и оплачиваются отдельно.

Python 3.12+Язык разработки
PySide6 / QtГрафический интерфейс
HTTPXСетевой клиент
SQLiteИстория и метаданные
APSchedulerРасписание
PyInstallerСборка Windows
Открыть полное техническое задание онлайнВсе разделы исходного документа, включая таблицы и критерии приёмки⌄

1. Назначение и статус

Разработать настольную программу FreshBackup Manager для скачивания архивов информационных баз, доступных пользователю в «1С:Фреш», на локальный компьютер. ТЗ описывает проектируемую реализацию. Функции обобщены по переданным скриншотам FreshBackup Manager версии 1.0.8, а не объявлены подтверждёнными возможностями текущего сервиса.

Предлагаемая базовая платформа — Windows 10/11 x64; целевые ОС и объём реализации согласуются для конкретного проекта. Язык интерфейса — русский. Доступ к сервису осуществляется с законными полномочиями пользователя.

Опции вне согласованного объёма

Перечисленные ниже функции могут быть разработаны по запросу заказчика. Они не входят в согласованный объём проекта автоматически: каждая опция оплачивается отдельно, её состав, сроки, стоимость и критерии приёмки утверждаются до начала работ в отдельной смете или дополнительном соглашении. Уведомления на почту и в мессенджеры. Оповещения об успешном копировании, ошибках и повторных сбоях, пропущенном запуске, отсутствии свежей копии, нехватке места и результате проверки архива. Каналы, получатели и перечень событий согласуются отдельно; подключение мессенджеров — через доступные официальные API или ботов. Гибкие сценарии оповещения. Мгновенные сообщения о сбоях, подтверждения успешных операций, ежедневные или еженедельные сводки. Настройка правил по базам и группам, уровней важности, времени отправки и эскалации ответственным сотрудникам. SMTP под инфраструктуру заказчика. Подключение к SMTP-серверу заказчика либо, по отдельному запросу, разработка встроенного SMTP-компонента или развёртывание собственного SMTP-сервера/ретранслятора в согласованном контуре. Настройка доставки и сопровождение сервера согласуются и оплачиваются отдельно. Другие расширения системы. Дополнительные хранилища, шифрование архивов, многоуровневое хранение, централизованный мониторинг, роли пользователей, интеграции с другими системами и автоматизированные проверки восстановления. Реализуемость и состав каждого расширения определяются после обследования.

2. Технологии и структура

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-файл, инструкции сборки и воспроизводимый пакет релиза.

3. Архитектурные модули

МодульОтветственность
GUIВкладки и формы, таблица баз, индикаторы состояния, трей
Auth / API adapterАвторизация, запрос перечня баз, загрузка архива, обработка ошибок сервиса
Backup managerОчередь задач, временные файлы, повторы, докачка, отмена
VerifierРазмер, ZIP, SHA-256, фиксация результата проверки
SchedulerЗапуск по расписанию, блокировка дубликатов
Storage / retentionКаталоги, имена файлов, безопасное удаление старых подтверждённых копий
Repository / logSQLite, история операций, диагностические сведения

4. Экраны и сценарии интерфейса

4.1. «Подключение»

Поля: адрес сервиса HTTPS (по умолчанию https://1cfresh.com, редактируемый), логин пользователя, пароль/доступный способ авторизации, код абонента при необходимости.

Кнопки: «Проверить подключение», «Обновить список баз», «Сохранить настройки». Маскирование секретов; отображение статуса соединения.

Ошибки: неверные учётные данные, отсутствие полномочий, недоступность сети, серверный отказ, несовместимый интерфейс. Секретные значения не должны появляться в журнале.

4.2. «Информационные базы»

Таблица: отметка выбора, код базы, наименование, конфигурация, версия, дата последней успешной локальной копии.

Множественный выбор баз, сохранение выделенных баз между запусками; недоступные в следующем ответе API базы показываются с понятным статусом.

Кнопка «Скачать копии сейчас» обрабатывает отмеченные базы последовательно; при отсутствии выбранных баз — сообщение с предложением выбрать базы.

4.3. «Расписание и хранение»

Включение автоматического скачивания; периодичность: ежедневно, еженедельно, ежемесячно, либо через заданный интервал (часов).

Поля: локальное время запуска, день недели/месяца или интервал, базовая папка, количество сохраняемых копий на каждую базу (по умолчанию 10).

Режим трея: приложение продолжает работать при закрытии окна в трей; «Выход» полностью останавливает процесс. Автозапуск с Windows — включаемая настройка.

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

4.4. «Журнал» и нижняя панель

Журнал: дата/время, база, событие, статус, сообщение, путь к файлу; поиск/фильтр по базе и результату; экспорт в TXT или CSV.

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

Трей: «Открыть FreshBackup Manager», «Скачать выбранные копии сейчас», «Выход». Результат команды из трея отображается уведомлением или записью в журнале.

5. Алгоритм резервного копирования

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

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

3. Скачивать потоково в отдельный временный файл *.part, не объявляя такой файл резервной копией; регулярно обновлять индикатор.

4. При временном обрыве сделать до 8 повторов с нарастающей задержкой 2–60 секунд; докачивать по HTTP Range только при подтверждённой поддержке и валидности серверного ответа/ETag; иначе начинать файл заново.

5. После скачивания проверить ожидаемый размер, если он известен; структурную читаемость ZIP и CRC файлов с учётом ограничений ресурсов; рассчитать SHA-256. При наличии эталонного SHA-256 сверить его; иначе сохранить локальную контрольную сумму как свидетельство неизменности после скачивания.

6. После успешных проверок атомарно переименовать временный файл в финальный ZIP в пределах одного тома и записать сведения о нём в базу метаданных.

7. Только после появления успешной новой копии применять политику хранения: удалять превышающие лимит проверенные локальные архивы данной базы; при ошибке удаления предупреждать, но не скрывать факт успеха загрузки.

8. Ошибку конкретной базы фиксировать отдельно и продолжать очередь, если остальные базы не зависят от неё.

6. Именование и файловая структура

Рекомендуемый путь: <Папка пользователя>\<КодБазы>\<КороткоеИмя>_<КодБазы>_<ГГГГ-ММ-ДДTЧЧ-ММ-СС>_<ID>.zip. Символы, запрещённые Windows, нормализуются. Коллизии имён не допускаются. В одной папке остаются *.part лишь до завершения / последующего безопасного возобновления.

7. Модель данных (SQLite)

СущностьОсновные поля
basesid, code, title, config_name, config_version, selected, last_seen_at
jobsid, base_id, source_id, trigger(manual/schedule/tray), state, attempts, bytes_received, bytes_total, created_at, started_at, finished_at, error_code, error_text
backupsid, base_id, filename, file_size, sha256, zip_verified, created_at, verified_at, source_created_at
settingskey, value (без хранения паролей и токенов)
eventsid, job_id, occurred_at, level, message

8. Состояния задач и обработка ошибок

Состояния: 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Корректная остановка; временный файл обрабатывается по политике возобновления

9. Безопасность

HTTPS и штатная проверка сертификата без опции «игнорировать SSL» по умолчанию; никаких необоснованных обходов механизмов защиты сервиса.

Учётные данные и токены не записываются в лог и SQLite в открытом виде; хранение через системное хранилище секретов.

Защита от path traversal в именах архивов; запись только внутрь выбранной пользователем директории.

При экспорте диагностик обезличивать идентификаторы и адреса по настройке; ограничить логи по размеру и сроку.

Не выполнять автоматическую загрузку ZIP в рабочую информационную базу 1С, не модифицировать архив и не открывать вложенные объекты для исполнения.

10. Требования к качеству и тесты

Модульные тесты: расписание (включая смену месяца), формирование имён, политика хранения, переходы состояний и повторов.

Интеграционные тесты на тестовом сервере HTTP: авторизация, streaming, разрывы соединения, Range 206/200, ETag mismatch, сервер 429/5xx, отсутствие архива.

Файловые тесты: диск заполнен, нет прав доступа, повреждённый ZIP, неожиданный размер, смена имени файла.

GUI-тесты: выбор нескольких баз, сохранение настроек, сворачивание в трей, командное скачивание из трея, отмена операции, перезапуск программы.

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

Тесты реального сервиса возможны при предоставлении тестового аккаунта и разрешённого метода работы с архивами.

11. Критерии приёмки

1. Установка Windows-сборки на чистую тестовую машину и запуск без установленного Python.

2. Успешное подключение к доступному тестовому аккаунту 1С:Фреш и корректный перечень баз при наличии согласованного доступа.

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

4. Прерывание сети в ходе загрузки с подтверждённым корректным повтором и докачкой при поддержке Range.

5. Ни один непроверенный *.part не считается архивом; ZIP проходит проверку и получает SHA-256.

6. Автоматический запуск задачи по расписанию и запуск вручную из системного трея.

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

8. История попыток и ошибок доступна в журнале, без паролей и токенов.

9. Переданы исходный код, инструкции запуска/сборки, исполняемый пакет и отчёт по приёмочным сценариям.

12. План исполнения и условия

ЭтапРезультат
Анализ и прототипПроверка способов доступа к архивам; согласованные экраны
РеализацияAPI-адаптер, очередь и скачивание, SQLite
АвтоматизацияРасписание, трей, политика хранения
Тестирование и релизРеальные/тестовые прогоны, сборка, документация

Сроки определяются после анализа требований, подтверждения разрешённого способа получения архивов и предоставления тестового доступа. Изменения объёма работ и ограничения стороннего сервиса могут потребовать отдельного согласования сроков и стоимости.

13. Исходные материалы и ограничения

Основание: предоставленный документ «Разработка ПО для скачивания баз из 1С_Фреш.pdf» (7 страниц), скриншоты интерфейса и описание версии 1.0.8. Представленные материалы показывают экраны подключения, перечня баз, расписания, журнала и трея; в них отсутствует спецификация официального API 1С:Фреш, поэтому она не заявляется установленным фактом.

Отдельно не входят: локальное восстановление БП/ЗУП, редактирование данных баз, веб-сервер, мобильные приложения и необозначенные интеграции. Любые дополнения оформляются отдельным согласованием.

Полный документ для разработчика

Редактируемое техническое задание в формате Microsoft Word.

Скачать ТЗ .docx ↓

06 / МАТЕРИАЛЫ ПРОЕКТА

Все документы.
В одном месте.

Файлы включены внутрь папки сайта: скачивание Word-документов доступно даже при открытии страницы с компьютера без интернета.

Изображения FreshBackup Manager показывают интерфейс отдельного приложения. Упоминания сторонних продуктов описывают назначение программы и не означают одобрения со стороны их правообладателей.

Увеличенный скриншот