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

См. также

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

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

15.12.2025    5908    nasonkin    13    

26

Обновление 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    5873    31    Suker86    16    

21

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

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

04.09.2025    10962    bozo    42    

12

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

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

18.08.2025    4699    iolko    10    

20

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

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

04.08.2025    8837    ZigRinat85    26    

43

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

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

1 стартмани

29.07.2025    4330    6    gorsheninsn    6    

28

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

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

22.07.2025    9576    ktb    28    

39

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

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

14.07.2025    4243    bborisko    0    

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

Долго искал вариант для хостинга проверки обновлений. Перепробовал все, от Яндекса и Гугла до экзотики типа mega.io. Все сервисы отдают не сам файл, а некую ссылку, которую фиг распарсишь, в отличие от гитхаба, который отдает сразу файл. Результат: если у вас нет своего сайта, то гитхаб - оптимальный вариант.
Nonik; 0x00; +2 Ответить
2. RocKeR_13 1462 05.02.25 14:32 Сейчас в теме
(1) У меня с давних времен валяется бесплатный сайт на ucoz - там и ftp есть, и прямые ссылки на файлы. В итоге там просто обновляю файлы с актуальной версией и описанием обновлений)) С GitHub тоже отличный вариант
SerVer1C; +1 Ответить
3. ixijixi 2092 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 2092 05.02.25 20:21 Сейчас в теме
(6) Практика — критерий истины. Советую проверить самостоятельно, дабы убедиться в обратном.
9. webester 26 20.02.25 08:30 Сейчас в теме
(1)
Все сервисы отдают не сам файл, а некую ссылку, которую фиг распарсишь

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