Разбор от сообщества: обновление 1с личный кабинет
Обновление личного кабинета 1С, развёрнутое в начале 2026 года, вызвало волну обращений в техподдержку от специалистов, чьи скрипты автоматического получения обновлений внезапно перестали работать. Внешне изменился только интерфейс, но фактически сменился протокол аутентификации и формат данных. Эта статья — не пересказ справки, а разбор механики неработающей автоматизации и инструкция по восстановлению без потери времени.
Контекст и ситуация
Личный кабинет 1С (portal.1c.ru) долгое время предоставлял простой HTTP API для получения списка доступных обновлений конфигураций и платформы. Достаточно было передать логин и пароль в теле POST-запроса, получить JSON с перечнем версий и скачать нужный дистрибутив. С обновлением интерфейса в феврале 2026 года этот API был отключён. Вместо него внедрена обязательная двухфакторная аутентификация через OAuth 2.0 и изменена структура ответов. Многие специалисты обнаружили, что их многолетние скрипты на 1С или Python возвращают ошибку 401 или пустой JSON.
Ключевой тезис: Новый личный кабинет 1С — это не просто смена дизайна, а полная перестройка интеграционного слоя. Старые методы получения обновлений гарантированно перестанут работать в ближайшие месяцы.
Технический разбор: что изменилось в архитектуре
Новый протокол аутентификации
Раньше для получения токена доступа использовался прямой POST-запрос к /api/auth/login с телом {"login":"...","password":"..."}. Сервер возвращал сессионный ключ в виде строки. Теперь требуется пройти OAuth 2.0 flow: получить authorization code через браузер (или через отдельный API с подтверждением по SMS/email), затем обменять его на access token. Для автоматизации это означает необходимость либо хранить refresh token, либо использовать client credentials grant (если у вас зарегистрировано приложение в личном кабинете).
// Старый способ (больше не работает)
HTTPСоединение = Новый HTTPСоединение("portal.1c.ru");
HTTPЗапрос = Новый HTTPЗапрос("/api/auth/login");
HTTPЗапрос.УстановитьТелоИзСтроки(
"{" + ЧС + ""login"": ""admin"", ""password"": ""secret""}" + ЧС,
КодировкаТекста.UTF8);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
// В ответе был JSON с полем "token"
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(HTTPОтвет.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8));
ЧтениеJSON.Прочитать(); // пропускаем начало объекта
ЧтениеJSON.Прочитать(); // имя свойства "token"
Токен = ЧтениеJSON.ТекущееЗначение;
// Новый способ (требуется предварительно получить refresh token)
// Предполагаем, что refresh_token уже сохранён в ХранилищеНастроек
HTTPСоединение = Новый HTTPСоединение("portal.1c.ru", , , , , 30,
Новый ЗащищенноеСоединениеOpenSSL); // обязательно HTTPS
HTTPЗапрос = Новый HTTPЗапрос("/api/oauth/token");
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.УстановитьТелоИзСтроки(
"{" + ЧС + ""grant_type"": ""refresh_token"", ""refresh_token"": """ + RefreshToken + """}" + ЧС,
КодировкаТекста.UTF8);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Если HTTPОтвет.КодСостояния = 200 Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(HTTPОтвет.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8));
ЧтениеJSON.Прочитать(); // начало объекта
ЧтениеJSON.Прочитать(); // "access_token"
AccessToken = ЧтениеJSON.ТекущееЗначение;
ЧтениеJSON.Прочитать(); // "refresh_token"
НовыйRefreshToken = ЧтениеJSON.ТекущееЗначение;
// Сохраняем новый refresh token
Иначе
// Ошибка аутентификации — требуется ручное обновление токена
КонецЕсли;
Изменение структуры JSON ответов
Даже после успешной аутентификации старые запросы к /api/updates/list возвращают пустой массив. Новый эндпоинт — /api/v2/updates, а структура ответа изменилась: теперь список версий находится внутри объекта data, а не корневого массива. Кроме того, добавлены поля requiredLicenses и minPlatformVersion, которые раньше отсутствовали. Если ваш скрипт парсил ответ как массив объектов, он сломается.
// Новый запрос списка обновлений
HTTPЗапрос = Новый HTTPЗапрос("/api
Расширение «НОПик» для 1С — встраиваемый коннектор к внешнему AI с интеллектуальным поиском по базе. Задавайте вопросы обычными словами - AI сам найдёт нужное. 45 дней бесплатно.
Попробовать НОПик →
Знаете ответ на такие вопросы не хуже автора статьи? Пройдите бесплатную анонимную проверку уровня на infolimp.ru - 3 практических задачи, 15 минут, публичный токен-профиль, который можно показать работодателю или заказчику. Без регистрации по почте.
Проверить свой уровень бесплатно →