Столкнулся с необходимостью своевременно обновлять свои решения для пользователей и реализовал автоматическую проверку обновлений расширения, используя GitHub в качестве хранилища версий.
1. Подготовка репозитория на GitHub
- Создайте репозиторий на GitHub (например, My-1C-Updater).
- Добавьте файл version.txt в корень репозитория.
Формат файла:
2.0|Добавлена интеграция с онлайн-кассами. Исправлены ошибки отчетов.
- Первое число — версия, после | — описание изменений.
Пример файла version.txt в репозитории.
2. Настройка обработки в 1С
Добавьте в вашу обработку процедуру проверки версии:
Процедура ПроверитьОбновление()
Перем ТекущаяВерсия = 1.0; // Текущая версия обработки
Попытка
Соединение = Новый HTTPСоединение("raw.githubusercontent.com", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/ваш-логин/My-1C-Updater/main/version.txt");
Запрос.Заголовки.Вставить("User-Agent", "1C-Application");
Запрос.Заголовки.Вставить("Accept", "*/*");
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
ДвоичныеДанные = Ответ.ПолучитьТелоКакДвоичныеДанные();
ЧтениеТекста = Новый ЧтениеТекста(ДвоичныеДанные, КодировкаТекста.UTF8);
ТекстОтвета = СокрЛП(ЧтениеТекста.Прочитать());
Части = СтрРазделить(ТекстОтвета, "|", Ложь);
Если Части.Количество() < 1 Тогда
Сообщить("Ошибка формата version.txt!");
Возврат;
КонецЕсли;
Попытка
НоваяВерсия = Число(Части[0]);
Описание = ?(Части.Количество() > 1, Части[1], "");
Исключение
Сообщить("Некорректный номер версии!");
Возврат;
КонецПопытки;
Если НоваяВерсия > ТекущаяВерсия Тогда
Сообщить("Доступна новая версия: " + НоваяВерсия + "!
|Что нового:
|" + Описание + "
|Скачать: //infostart.ru/...");
//Иначе
// Сообщить("Ваша версия актуальна.");
КонецЕсли;
Иначе
Сообщить("Ошибка при проверке обновлений: " + Ответ.КодСостояния);
КонецЕсли;
Исключение
Сообщить("Ошибка: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Код проверки обновлений в модуле обработки.
Как это работает:
-
Пользователь запускает обработку.
-
Код обращается к вашему GitHub-репозиторию и читает файл
version.txt
. -
Если версия в файле больше текущей (например, в
version.txt
—2.0
, а у пользователя1.5
), выводится сообщение со ссылкой.
3. Обработка ошибок
Типичные проблемы и решения:
- Ошибка 404:
Убедитесь, что путь к файлу в коде совпадает с репозиторием.
- Ошибка SSL:
Обновите корневые сертификаты или используйте ЗащищенноеСоединениеOpenSSL().
- Пустое тело ответа:
Проверьте, что `version.txt` доступен по ссылке в браузере. Файл должен открываться по пути https://raw.githubusercontent.com/ваш-логин/My-1C-Updater/main/version.txt
4. Интеграция с интерфейсом
Добавьте вызов процедуры ПроверитьОбновления() в место, где будет происходить проверка версии:
Пример работы
Если у вас есть вопросы или предложения — оставляйте их в комментариях! 😊
Успешной разработки! 🚀