Управление ценами в 1С:УТ 2026: AI и маркетплейсы

Коротко: Управление ценами в 1С:УТ в 2026 году — это уже не ручной прайс-лист, а многоуровневая система: динамические коэффициенты пересчитывают цены каждые 2–4 часа, AI-модели (YandexGPT, GigaChat) дают рекомендации с точностью прогноза до 85%, а прямая интеграция с Wildberries, Ozon и Яндекс.Маркет позволяет синхронизировать до 500 000 позиций за один сеанс. Разберём архитектуру, код и практику.
Почему традиционное ценообразование в 1С:УТ больше не работает?
Ещё три-четыре года назад стандартная схема работы с ценами в 1С:Управление торговлей выглядела просто: раз в месяц менеджер обновлял прайс-лист, загружал его в систему и отправлял клиентам. Этот подход работал в условиях стабильного рынка с предсказуемой маржой. Сегодня ситуация кардинально иная.
Российские маркетплейсы — Wildberries, Ozon, Яндекс.Маркет, Мегамаркет — изменили правила игры. Конкуренты меняют цены десятки раз в день. Алгоритмы ранжирования маркетплейсов напрямую учитывают ценовую привлекательность. Покупатель за 30 секунд сравнивает предложения пяти продавцов. В этих условиях статичный прайс-лист — это гарантированные потери выручки.
По данным исследований e-commerce рынка, компании, внедрившие динамическое ценообразование, увеличивают выручку на 7–15% при сохранении той же маржинальности. Именно поэтому современная архитектура управления ценами в 1С:УТ строится на трёх китах: автоматизация пересчёта, AI-аналитика и бесшовная интеграция с внешними каналами продаж.
Если вы ищете специалиста для настройки такой системы, обратите внимание на найти разработчика 1С — на Кодерион собраны проверенные эксперты с опытом именно в торговых конфигурациях.
Как устроена архитектура динамического ценообразования в 1С:УТ?
Прежде чем писать код, важно понять концептуальную модель. В 1С:УТ 11 ценообразование строится на нескольких ключевых объектах метаданных:
- Справочник «Виды цен» — определяет типы цен (базовая, оптовая, розничная, акционная).
- Регистр сведений «Цены номенклатуры» — хранит актуальные значения цен по видам и номенклатуре.
- Документ «Установка цен номенклатуры» — фиксирует историю изменений цен.
- Регистр накопления «Товары на складах» — источник данных об остатках для динамических коэффициентов.
- Регистр накопления «Продажи» — источник данных о спросе.
Динамическое ценообразование надстраивается над этой стандартной схемой через расширения конфигурации и регламентные задания. Такой подход позволяет не трогать типовой код и спокойно обновлять конфигурацию.
Как реализовать базовый алгоритм динамического пересчёта цен?
Рассмотрим практическую реализацию. Создадим регламентное задание, которое каждые 2 часа анализирует остатки и корректирует цены с учётом коэффициента дефицитности:
// Регламентное задание: ДинамическийПересчётЦен
// Запускается каждые 2 часа
// Анализирует остатки и корректирует розничные цены
Процедура ДинамическийПересчётЦен() Экспорт
// Получаем вид цен для динамического пересчёта
ВидЦенРозница = Справочники.ВидыЦен.НайтиПоНаименованию("Розничная динамическая");
ВидЦенБаза = Справочники.ВидыЦен.НайтиПоНаименованию("Базовая");
Если ВидЦенРозница.Пустая() Или ВидЦенБаза.Пустая() Тогда
Сообщить("Не найдены необходимые виды цен!");
Возврат;
КонецЕсли;
// Запрос остатков и базовых цен
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Номенклатура КАК Номенклатура,
| Остатки.Номенклатура.НаименованиеПолное КАК НаименованиеТовара,
| Остатки.КоличествоОстаток КАК ОстатокТекущий,
| ЕСТЬNULL(Цены.Цена, 0) КАК БазоваяЦена,
| ЕСТЬNULL(СреднийСпрос.СреднийРасход, 1) КАК СреднийМесячныйСпрос
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК Остатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| , ВидЦены = &ВидЦенБаза) КАК Цены
| ПО Остатки.Номенклатура = Цены.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ (
| ВЫБРАТЬ
| Продажи.Номенклатура КАК Номенклатура,
| СУММА(Продажи.КоличествоОборот) / 3 КАК СреднийРасход
| ИЗ
| РегистрНакопления.Продажи.Обороты(
| ДОБАВИТЬМЕСЯЦЫ(НачалоМесяца(ТекущаяДата()), -3),
| ТекущаяДата(), Месяц, ) КАК Продажи
| СГРУППИРОВАТЬ ПО
| Продажи.Номенклатура
| ) КАК СреднийСпрос
| ПО Остатки.Номенклатура = СреднийСпрос.Номенклатура
|ГДЕ
| Остатки.КоличествоОстаток > 0
| И Цены.Цена > 0";
Запрос.УстановитьПараметр("ВидЦенБаза", ВидЦенБаза);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
// Создаём документ установки цен
ДокументЦены = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
ДокументЦены.Дата = ТекущаяДата();
ДокументЦены.ВидЦены = ВидЦенРозница;
ДокументЦены.КомментарийДокумента = "Автоматический пересчёт: " + Формат(ТекущаяДата(), "ДФ=дд.ММ.гггг ЧЧ:мм");
Пока Выборка.Следующий() Цикл
// Рассчитываем коэффициент дефицитности
КоэффициентДефицитности = РассчитатьКоэффициентДефицитности(
Выборка.ОстатокТекущий,
Выборка.СреднийМесячныйСпрос
);
// Рассчитываем новую цену
НоваяЦена = Выборка.БазоваяЦена * КоэффициентДефицитности;
НоваяЦена = Окр(НоваяЦена, 2);
// Добавляем строку в документ
НоваяСтрока = ДокументЦены.Товары.Добавить();
НоваяСтрока.Номенклатура = Выборка.Номенклатура;
НоваяСтрока.Цена = НоваяЦена;
КонецЦикла;
// Проводим документ если есть строки
Если ДокументЦены.Товары.Количество() > 0 Тогда
ДокументЦены.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("Обновлено цен: " + ДокументЦены.Товары.Количество());
КонецЕсли;
КонецПроцедуры
// Функция расчёта коэффициента дефицитности
// ОстатокДней < 7 → повышаем цену
// ОстатокДней > 30 → снижаем цену
Функция РассчитатьКоэффициентДефицитности(ОстатокТекущий, СреднийМесячныйСпрос)
Если СреднийМесячныйСпрос = 0 Тогда
Возврат 1; // Нет данных о спросе — не меняем цену
КонецЕсли;
// Рассчитываем запас в днях
СреднийДневнойСпрос = СреднийМесячныйСпрос / 30;
ОстатокДней = ОстатокТекущий / СреднийДневнойСпрос;
// Применяем ступенчатые коэффициенты
Если ОстатокДней < 3 Тогда
Возврат 1.25; // Критический дефицит — +25%
ИначеЕсли ОстатокДней < 7 Тогда
Возврат 1.15; // Дефицит — +15%
ИначеЕсли ОстатокДней < 14 Тогда
Возврат 1.05; // Умеренный дефицит — +5%
ИначеЕсли ОстатокДней > 60 Тогда
Возврат 0.90; // Затоваривание — -10%
ИначеЕсли ОстатокДней > 30 Тогда
Возврат 0.95; // Высокий остаток — -5%
Иначе
Возврат 1; // Нормальный остаток — без изменений
КонецЕсли;
КонецФункции
Этот алгоритм — базовый, но уже рабочий. На его основе можно строить более сложные модели с учётом сезонности, категорий товаров и конкурентных данных.
Как интегрировать AI-рекомендации по ценам в 1С:УТ?
Искусственный интеллект в контексте ценообразования — это не магия, а конкретный HTTP-запрос к API языковой модели или ML-сервиса. В российских реалиях 2025–2026 года наиболее доступны YandexGPT (Yandex Cloud), GigaChat (Сбер) и собственные модели на базе open-source. Рассмотрим интеграцию с Yandex Cloud ML API.
Как отправить данные о продажах в AI и получить рекомендацию по цене?
// Функция получения AI-рекомендации по цене
// Использует Yandex Cloud Foundation Models API
Функция ПолучитьAIРекомендациюПоЦене(Номенклатура, ТекущаяЦена, ДанныеПродаж)
// Формируем контекст для AI
Контекст = "Ты — эксперт по ценообразованию в розничной торговле. ";
Контекст = КонтекстА + "Проанализируй данные и дай рекомендацию по цене.";
// Формируем промпт с данными
Промпт = "Товар: " + Номенклатура.НаименованиеПолное + Символы.ПС;
Промпт = Промпт + "Текущая цена: " + Формат(ТекущаяЦена, "ЧДЦ=2") + " руб." + Символы.ПС;
Промпт = Промпт + "Продажи за 30 дней: " + ДанныеПродаж.Количество30Дней + " шт." + Символы.ПС;
Промпт = Промпт + "Продажи за 7 дней: " + ДанныеПродаж.Количество7Дней + " шт." + Символы.ПС;
Промпт = Промпт + "Средняя цена конкурентов: " + Формат(ДанныеПродаж.ЦенаКонкурентов, "ЧДЦ=2") + " руб." + Символы.ПС;
Промпт = Промпт + "Текущий остаток: " + ДанныеПродаж.Остаток + " шт." + Символы.ПС;
Промпт = Промпт + "Дай рекомендацию: минимальная цена, оптимальная цена, максимальная цена. Только числа через запятую.";
// Формируем тело запроса
СтруктураЗапроса = Новый Структура;
СтруктураЗапроса.Вставить("modelUri", "gpt://YOUR_FOLDER_ID/yandexgpt-lite");
МассивСообщений = Новый Массив;
СообщениеСистема = Новый Структура;
СообщениеСистема.Вставить("role", "system");
СообщениеСистема.Вставить("text", Контекст);
МассивСообщений.Добавить(СообщениеСистема);
СообщениеПользователь = Новый Структура;
СообщениеПользователь.Вставить("role", "user");
СообщениеПользователь.Вставить("text", Промпт);
МассивСообщений.Добавить(СообщениеПользователь);
СтруктураЗапроса.Вставить("messages", МассивСообщений);
ПараметрыМодели = Новый Структура;
ПараметрыМодели.Вставить("temperature", 0.1);
ПараметрыМодели.Вставить("maxTokens", "100");
СтруктураЗапроса.Вставить("completionOptions", ПараметрыМодели);
// Отправляем запрос
ЗаписьJSON = Новый ЗаписьJSON;
СтрокаJSON = "";
ЗаписьJSON.УстановитьСтроку(СтрокаJSON);
ЗаписатьJSON(ЗаписьJSON, СтруктураЗапроса);
ТелоЗапроса = ЗаписьJSON.Закрыть();
HTTPСоединение = Новый HTTPСоединение(
"llm.api.cloud.yandex.net",
443,
,
,
,
30,
Новый ЗащищённоеСоединениеOpenSSL
);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
Заголовки.Вставить("Authorization", "Api-Key YOUR_API_KEY");
HTTPЗапрос = Новый HTTPЗапрос("/foundationModels/v1/completion", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса, "UTF-8");
Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Если Ответ.КодСостояния <> 200 Тогда
Возврат Неопределено;
КонецЕсли;
// Разбираем ответ
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
ОтветСтруктура = ПрочитатьJSON(ЧтениеJSON);
ТекстОтвета = ОтветСтруктура["result"]["alternatives"][0]["message"]["text"];
// Парсим числа из ответа AI
Результат = Новый Структура("МинЦена, ОптЦена, МаксЦена", 0, 0, 0);
Части = СтрРазделить(ТекстОтвета, ",");
Если Части.Количество() >= 3 Тогда
Результат.МинЦена = Число(СокрЛП(Части[0]));
Результат.ОптЦена = Число(СокрЛП(Части[1]));
Результат.МаксЦена = Число(СокрЛП(Части[2]));
КонецЕсли;
Возврат Результат;
КонецФункции
Важно понимать: AI-рекомендация — это советник, а не автопилот. Оптимальная схема — AI предлагает диапазон цен, менеджер одним кликом утверждает или корректирует, система применяет. Такой подход сохраняет контроль и снижает риски ошибок модели.
Как настроить интеграцию 1С:УТ с маркетплейсами для синхронизации цен?
Интеграция с марк
Как настроить интеграцию 1С:УТ с маркетплейсами для синхронизации цен?
Интеграция с маркетплейсами (Wildberries, Ozon, Яндекс.Маркет) строится через REST API этих платформ. Базовая схема: 1С формирует пакет обновлений цен, отправляет POST-запрос на эндпоинт маркетплейса, получает подтверждение. Ключевой момент — соблюдать лимиты запросов и обрабатывать ошибки повторной отправки.
// Отправка цен на Ozon через API
Функция ОтправитьЦеныНаOzon(МассивТоваров) Экспорт
НастройкиOzon = ПолучитьНастройкиМаркетплейса("Ozon");
МассивЦен = Новый Массив;
Для Каждого Строка Из МассивТоваров Цикл
СтруктураЦены = Новый Структура;
СтруктураЦены.Вставить("offer_id", Строка.АртикулМаркетплейса);
СтруктураЦены.Вставить("price", Формат(Строка.Цена, "ЧДЦ=0; ЧРД=.; ЧГ="));
СтруктураЦены.Вставить("old_price", Формат(Строка.СтараяЦена, "ЧДЦ=0; ЧРД=.; ЧГ="));
СтруктураЦены.Вставить("min_price", Формат(Строка.МинЦена, "ЧДЦ=0; ЧРД=.; ЧГ="));
МассивЦен.Добавить(СтруктураЦены);
КонецЦикла;
ТелоЗапроса = Новый Структура("prices", МассивЦен);
ЗаписьJSON = Новый ЗаписьJSON;
СтрокаJSON = "";
ЗаписьJSON.УстановитьСтроку(СтрокаJSON);
ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса);
ТелоJSON = ЗаписьJSON.Закрыть();
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
Заголовки.Вставить("Client-Id", НастройкиOzon.ClientId);
Заголовки.Вставить("Api-Key", НастройкиOzon.ApiKey);
HTTPСоединение = Новый HTTPСоединение(
"api-seller.ozon.ru", 443, , , , 30,
Новый ЗащищённоеСоединениеOpenSSL
);
HTTPЗапрос = Новый HTTPЗапрос("/v1/product/import/prices", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоJSON, "UTF-8");
Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Возврат Ответ.КодСостояния = 200;
КонецФункции
Рекомендуется запускать синхронизацию цен по расписанию через регламентное задание — например, каждые 30 минут в рабочее время. Это позволяет оперативно реагировать на изменения себестоимости или акции конкурентов без ручного вмешательства.
Типичные ошибки при автоматизации ценообразования
- Отсутствие ограничений на минимальную цену — AI или алгоритм может предложить цену ниже себестоимости при агрессивном демпинге конкурентов. Всегда устанавливайте жёсткий нижний порог.
- Игнорирование комиссий маркетплейса — цена на площадке должна учитывать комиссию (15–25%), иначе продажа будет убыточной.
- Слишком частое изменение цен — некоторые маркетплейсы понижают позиции товаров с нестабильной ценой. Оптимальная частота — не чаще 2–3 раз в сутки.
- Отсутствие логирования решений — без истории изменений невозможно проанализировать эффективность стратегии и найти причину убытков.
Выводы
Управление ценами в 1С:УТ в 2026 году — это не просто справочник типов цен. Это полноценная система, объединяющая динамическое ценообразование, AI-рекомендации на базе языковых моделей и автоматическую синхронизацию с маркетплейсами. Грамотно выстроенная архитектура позволяет:
- сократить время реакции на изменение рынка с часов до минут;
- исключить человеческий фактор при рутинных пересчётах;
- удерживать маржинальность даже в условиях ценовых войн;
- масштабировать ассортимент без пропорционального роста штата.
Начните с малого: автоматизируйте пересчёт одного типа цен по триггеру изменения себестоимости, добавьте логирование — и вы сразу увидите точки роста для дальнейшего развития системы.
Найдите специалиста для решения этой задачи на koderion.ru
Автор: редакция Koderion. Обновлено: 21 мая 2026. Источники: ИТС 1С, Документация платформы 1С:Предприятие, Бухгалтерия.ру.