Автоматическая проверка обновлений для расширения 1С через GitHub

05.02.25

Разработка - Групповая разработка (Git, хранилище)

Внедряем проверку новых версий прямо в расширение. Оповещайте о новых версиях и показывайте пользователям список изменений. Для разработчиков, которые хотят сэкономить время и повысить лояльность клиентов!

Столкнулся с необходимостью своевременно обновлять свои решения для пользователей и реализовал автоматическую проверку обновлений расширения, используя 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/...");
            //Иначе
            //    Сообщить("Ваша версия актуальна.");
            КонецЕсли;
        Иначе
            Сообщить("Ошибка при проверке обновлений: " + Ответ.КодСостояния);
        КонецЕсли;
    Исключение
        Сообщить("Ошибка: " + ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры

Код проверки обновлений в модуле обработки.

 

Как это работает:

  1. Пользователь запускает обработку.

  2. Код обращается к вашему GitHub-репозиторию и читает файл version.txt.

  3. Если версия в файле больше текущей (например, в version.txt — 2.0, а у пользователя 1.5), выводится сообщение со ссылкой.

 

 

 3. Обработка ошибок

 

 Типичные проблемы и решения:

- Ошибка 404:  
  Убедитесь, что путь к файлу в коде совпадает с репозиторием.  

- Ошибка SSL:  
  Обновите корневые сертификаты или используйте ЗащищенноеСоединениеOpenSSL().  

- Пустое тело ответа:  
  Проверьте, что `version.txt` доступен по ссылке в браузере. Файл должен открываться по пути https://raw.githubusercontent.com/ваш-логин/My-1C-Updater/main/version.txt 

 

 4. Интеграция с интерфейсом

 

Добавьте вызов процедуры ПроверитьОбновления() в место, где будет происходить проверка версии:  
 

Пример работы 

 

Если у вас есть вопросы или предложения — оставляйте их в комментариях! 😊   

Успешной разработки! 🚀

GitHub Обновления

См. также

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Программист Стажер Платформа 1С v8.3 Платные (руб)

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 руб.

29.06.2022    12725    105    4    

138

Обновление 1С Программист Бухгалтер Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Бухгалтерский учет НДС Абонемент ($m)

Обновление для конфигурации Управление торговлей 10.3.88.3 добавляет поддержку ставок НДС 5% и 7%, обеспечивает корректную печать этих ставок на актуальных моделях торгового оборудования (АТОЛ, ШТРИХ, ревизия 4004), содержит актуальные правила обмена с конфигурацией "Бухгалтерия предприятия 3.0" для передачи новых ставок. Новые ставки НДС поддерживается в печатных формах УПД, ТТН и т.д. В состав дистрибутива включены обработки для обслуживания торгового оборудования ККТ нового формата (Штрих-М и АТОЛ)

5 стартмани

31.01.2025    1390    20    karpik666    16    

20

Обновление 1С Программист Платформа 1С v8.3 1С:Управление торговлей 10 Россия Бухгалтерский учет Налоговый учет Управленческий учет ИП, ПБОЮЛ, КФХ НДС УСН Абонемент ($m)

Обновление, доработка для 1С: Управление торговлей 10.3 (УТ 10.3) организаций на упрощенной системе с 2025 года для использования ставок НДС 5 и 7 % в документах и печатных формах документов. Начиная с релиза 10.3.40.

4 стартмани

10.01.2025    4632    111    zhuravlev_as    58    

11

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

В статье рассматривается использование WinMerge для сравнения, объединения и обновления конфигураций 1С. Отдельно рассматривается методика трехстороннего сравнения при обновлении конфигурации

21.10.2024    3581    mixaeel    18    

17

Обновление 1С Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Те кто объединял конфигурации находящиеся на поддержке, обновлял подсистемы БСП прекрасно помнят упражнение «10000 тысяч кликов мышкой» или, непонятное словесное заклинание, после которого конфигурация снимается с поддержки целиком.

1 стартмани

26.09.2024    730    7    milkers    2    

7

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Вышел новый релиз для УТ11 5.19.63. На копии базы было выполнено обновление и вылезли проблемы с номенклатурой, подлежащей маркировке. В публикации описаны проблемы, обнаруженные в копии базы конкретной организации.

24.09.2024    1511    gull22    2    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 1981 05.02.25 12:39 Сейчас в теме
Поддерживаю.

Долго искал вариант для хостинга проверки обновлений. Перепробовал все, от Яндекса и Гугла до экзотики типа mega.io. Все сервисы отдают не сам файл, а некую ссылку, которую фиг распарсишь, в отличие от гитхаба, который отдает сразу файл. Результат: если у вас нет своего сайта, то гитхаб - оптимальный вариант.
2. RocKeR_13 1380 05.02.25 14:32 Сейчас в теме
(1) У меня с давних времен валяется бесплатный сайт на ucoz - там и ftp есть, и прямые ссылки на файлы. В итоге там просто обновляю файлы с актуальной версией и описанием обновлений)) С GitHub тоже отличный вариант
SerVer1C; +1 Ответить
3. ixijixi 1981 05.02.25 15:11 Сейчас в теме
(2)
ucoz
Спасибо за наводку) Думаю, коллеги могут еще примеров на кидать в комментах
RocKeR_13; +1 Ответить
6. SerVer1C 868 05.02.25 18:47 Сейчас в теме
(1) В чем проблема при получении файла с файлообменника? Вроде бы можно любой файл скачать.
7. ixijixi 1981 05.02.25 20:21 Сейчас в теме
(6) Практика — критерий истины. Советую проверить самостоятельно, дабы убедиться в обратном.
4. karpik666 3907 05.02.25 15:42 Сейчас в теме
Спасибо, навели на мысль, думаю versions даже не понадобится, можно обратиться к разделу releases, например, https://github.com/andrei-karpov/1c_kkt_54fz/releases , и из него уже получить всю нужную информацию, в том числе достаточно фильтровать по дате публикации и отображать все изменения.
dsdred; ixijixi; +2 Ответить
5. TochkaScarab 05.02.25 17:39 Сейчас в теме
Идея хорошая - единственное: считаю что формат номера версии надо доработать в сторону строки типа 8.5.1.189 ;)
Оставьте свое сообщение