Автоматическая проверка обновлений для расширения 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 Обновления

См. также

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

На примере рассмотрим одну из стратегий обновления проекта на новый релиз поставщика через 1С:EDT.

19.01.2026    1521    eakomarov    5    

17

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

Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).

15.12.2025    6691    nasonkin    17    

27

Обновление 1С Рефакторинг и качество кода Механизмы платформы 1С 1С 8.3 Отраслевые 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 1С:Документооборот Абонемент ($m)

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

10 стартмани

17.10.2025    6133    36    Suker86    18    

21

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

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

04.09.2025    11815    bozo    42    

12

Обновление 1С Программист 1С:Предприятие 8 Бесплатно (free)

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

18.08.2025    4775    iolko    10    

20

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

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

04.08.2025    9258    ZigRinat85    26    

45

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

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

1 стартмани

29.07.2025    4412    6    gorsheninsn    6    

28

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

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

22.07.2025    9835    ktb    28    

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

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

Пользоваться api не пробовали?
4. karpik666 4205 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 4181 06.02.25 13:23 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация