Автоматическая проверка обновлений для расширения 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С Рефакторинг и качество кода 1С v8.3 Абонемент ($m)

Представляю вашему вниманию конфигурацию "Проверка конфигураций (версия 3)", которая позволяет проверять любые конфигурации и расширения на наличие ошибок, связанных с вызовом экспортных функций и процедур общих модулей и модулей менеджеров объектов. Проверяются ошибки: 1) Метод объекта не обнаружен 2) Недостаточно фактических параметров. 3) Слишком много фактических параметров. Рекомендуется выполнять при подготовке обновлений.

10 стартмани

17.10.2025    4492    20    Suker86    12    

19

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

Проектная разработка в 1С живет в условиях жестких дедлайнов, меняющихся команд и нестабильных CI/CD. В статье показываем, как быстро и без лишних затрат внедрить Git на ERP-проектах, продать идею себе и команде и избежать типичных подводных камней. Разберем ветвление, подходы к командной работе, интеграцию с таск-трекерами и особенности тяжелых конфигураций.

04.09.2025    7432    bozo    42    

11

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

При обновлении конфигураций ЕРП/КА/УТ типовыми обновлениями можно получить ошибку  Превышен максимальный расход памяти сервера за один вызов". С чем это связано? Рассмотрим исправление этой ошибки.

18.08.2025    4133    iolko    10    

20

EDT Групповая разработка (Git, хранилище) Программист 1С v8.3 Бесплатно (free)

Плагин, расширяющий функциональность EDT, предоставляя возможность работы с хранилищем конфигурации 1С без использования 1С:ГитКонвертер.

04.08.2025    7042    ZigRinat85    17    

41

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

Позволяет проектировать и выполнять сценарии, состоящие из команд 1С, Git и CMD, а также решать конфликты слияния напрямую из 1С с помощью KDiff3. Предустановлен набор команд для автоматизации сборки CFE-файлов.

1 стартмани

29.07.2025    3663    6    gorsheninsn    6    

27

Групповая разработка (Git, хранилище) Программист Бесплатно (free)

Разберем, как организовать работу с GIT, не покидая конфигуратор, и зачем может понадобиться автономный сервер. Вы узнаете о скриптах, которые автоматизируют взаимодействие с GIT прямо из 1С, а также о методах сборки / разборки обработок и расширений «на лету», которые значительно ускоряют процесс разработки и совместной работы.

22.07.2025    8459    ktb    28    

38

Групповая разработка (Git, хранилище) Системный администратор Программист Бесплатно (free)

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

14.07.2025    3744    bborisko    0    

9

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

Проблемы и их решение из реальных проектов сложного обновления 1С, когда нужно было сохранить целостность данных, ускориться и уложиться в оцененные и утвержденные сроки.

02.07.2025    6025    1c-izh    9    

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

Долго искал вариант для хостинга проверки обновлений. Перепробовал все, от Яндекса и Гугла до экзотики типа mega.io. Все сервисы отдают не сам файл, а некую ссылку, которую фиг распарсишь, в отличие от гитхаба, который отдает сразу файл. Результат: если у вас нет своего сайта, то гитхаб - оптимальный вариант.
Nonik; 0x00; +2 Ответить
2. RocKeR_13 1458 05.02.25 14:32 Сейчас в теме
(1) У меня с давних времен валяется бесплатный сайт на ucoz - там и ftp есть, и прямые ссылки на файлы. В итоге там просто обновляю файлы с актуальной версией и описанием обновлений)) С GitHub тоже отличный вариант
SerVer1C; +1 Ответить
3. ixijixi 2069 05.02.25 15:11 Сейчас в теме
(2)
ucoz
Спасибо за наводку) Думаю, коллеги могут еще примеров на кидать в комментах
0x00; RocKeR_13; +2 Ответить
10. webester 26 20.02.25 08:35 Сейчас в теме
(3) Яндекс, гугл, селектел, да тысячи их на самом деле. Навскидку, не вспомнишь первый десяток. Но хотя бы раз в месяц, что-то попадается на глаза. Не говоря о том, что, нет проблемы вытащить наружу апач или nginx где-то, если цели коммерческие.
6. SerVer1C 993 05.02.25 18:47 Сейчас в теме
(1) В чем проблема при получении файла с файлообменника? Вроде бы можно любой файл скачать.
7. ixijixi 2069 05.02.25 20:21 Сейчас в теме
(6) Практика — критерий истины. Советую проверить самостоятельно, дабы убедиться в обратном.
9. webester 26 20.02.25 08:30 Сейчас в теме
(1)
Все сервисы отдают не сам файл, а некую ссылку, которую фиг распарсишь

Пользоваться api не пробовали?
4. karpik666 4114 05.02.25 15:42 Сейчас в теме
Спасибо, навели на мысль, думаю versions даже не понадобится, можно обратиться к разделу releases, например, https://github.com/andrei-karpov/1c_kkt_54fz/releases , и из него уже получить всю нужную информацию, в том числе достаточно фильтровать по дате публикации и отображать все изменения.
nikitazherebtsov; Nonik; dsdred; ixijixi; +4 Ответить
5. TochkaScarab 05.02.25 17:39 Сейчас в теме
Идея хорошая - единственное: считаю что формат номера версии надо доработать в сторону строки типа 8.5.1.189 ;)
8. dsdred 4126 06.02.25 13:23 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация