The Jerusalem Post'Jew-free zone' sticker on Stockholm storefront sparks outrageCNN TürkAdana'da 12 yaşındaki çocuk tabancayla yaralandı한겨레오열한 김혜수, 간직해온 ‘아빠’ 최불암 문자는…ZDF heuteAktuelle Pressemitteilungen des ZDFEl ComercioNiñas, niños y adolescentes presentan sus propuestas al ParlamentoTechCrunchApple may try to increase revenue by doing…something with third-party AI appsNew Straits TimesSingapore's Grab lifts 2026 forecasts on strong ride-hailing, delivery demand매일경제‘5·18 북한군 개입설’ 지만원 구속 송치…경찰, 왜곡 게시물 삭제 요청경향신문[속보] 외교부, ‘1호기 탑승자 정보유출’ 추가 피해 차단 조치…“철저 조사해 유출 원인 파악”VanguardFG disburses N75bn to 104 manufacturers, N65.8bn to MSMEsThe Sydney Morning HeraldMelbourne Cup LIVE: Champion trainer cops massive fine for Cup runner’s raceday breach; main race at 3pmVarietyNew Indian Horror Lab Aims to Push Genre Past Ghosts and Comedy Hybrids (EXCLUSIVE)
The Daily Newsstand · Free, Always
Tuesday, November 3, 2026

Не ждите обновлений от 1С. У вас есть DeepSeek

Translate

Может ли современная LLM уровня DeepSeek или GLM найти причину в конфигурации на миллион строк и выпустить патч‑расширение на уровне штатного разработчика фирмы 1С? И как проверить качество фикса?

Проведём слепой эксперимент. На портале обновлений releases.1c.ru к каждому релизу лежат официальные патчи исправления ошибок (EF_...), написанные разработчиками фирмы 1С.

Правила дуэли:

  1. Берём типовую 1С:Управление нашей фирмой (УНФ) 3.0.12.261 с демо‑базой.

  2. Скачиваем с ИТС свежие официальные патчи в отдельный закрытый каталог. Это наш конверт с правильным ответом.

  3. Отдаём агенту одну строчку описания симптома из таблицы багов на ИТС. Причём описание дано как проявление ошибки у пользователя, без технических деталей.

  4. Сравниваем код, который нашёл и написал ИИ‑агент, с официальным патчем фирмы 1С.

А во второй части усложним задачу, перейдём от точечных багов к полноценным многошаговым доработкам с тестированием UI и скриншотами.

С чего стартуем

Берём консоль кода с ИИ, устанавливаем десктоп‑версию и выбираем модель deepseek-v4-flash (DeepSeek V4.1-Flash).

В настройках выдаём агенту разрешения:

  • Чтение — выгрузка конфигурации в XML и выполнение запросов к данным базы;

  • Расширения — загрузка, применение, откат и удаление расширений конфигурации без изменения самой типовой базы;

  • Запуск обработок — выполнение внешних обработок в базе.

Создаём сессию и даём описание бага простыми словами, без подсказок по ходу пьесы.

Кейс 1. «Деление на ноль» при печати УПД, если количество меньше 0,006

Запрос агенту:

В базе УНФ (демо) пытаюсь распечатать УПД из расходной накладной, а 1С выдает ошибку «Деление на ноль», когда в накладной стоит маленькое количество товара — меньше 0,006. Почините, пожалуйста, через расширение.

Полная сессия прогона Кейса 1

Казалось бы, при чём тут деление на ноль, если количество товара не нулевое?

В накладной количество хранится с точностью до трёх знаков после запятой, поэтому проверка на ноль пропускает 0,004 дальше, а прямо в знаменателе программист 1С округлил его до двух знаков (ЧИСЛО(15, 2)), превратив малую дробь в чистый ноль.

Официальный патч EF_00_00897318.cfe:

-|	ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Количество КАК ЧИСЛО(15, 2)) КАК ЧИСЛО(15, 2))
+|	ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Количество КАК ЧИСЛО(15, 3)) КАК ЧИСЛО(15, 2))

Агент нашёл это же место в 12-тысячном модуле накладной, собрал и применил расширение через перехватчик &ИзменениеИКонтроль("ДанныеДокументовРегУчет") с отдельной веткой защиты округлённого делителя и подтвердил фикс контрольным запросом к базе.

				ИНАЧЕ ВЫБОР
#Вставка
					КОГДА ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Количество КАК ЧИСЛО(15, 2)) = 0
						ТОГДА СуммыДокументовРегламентированныйУчет.Всего - СуммыДокументовРегламентированныйУчет.НДС
#КонецВставки
					КОГДА РасходнаяНакладнаяЗапасы.Количество = 0
						ТОГДА СуммыДокументовРегламентированныйУчет.Всего - СуммыДокументовРегламентированныйУчет.НДС
					ИНАЧЕ ВЫРАЗИТЬ((СуммыДокументовРегламентированныйУчет.Всего - СуммыДокументовРегламентированныйУчет.НДС) /
						ВЫРАЗИТЬ(РасходнаяНакладнаяЗапасы.Количество КАК ЧИСЛО(15, 2)) КАК ЧИСЛО(15, 2))
				КОНЕЦ
1

1

Забавный момент: проверив округление запросом к живой базе, DeepSeek поймал неточность в самом описании бага от фирмы 1С. По правилам арифметики 0,005 округляется вверх до 0,01, поэтому на 0,005 печать не падает — в ноль превращаются только количества меньше 0,005 (0,001..0,004).

  • Результат. Справился, 5 из 5. Нашёл проблемное место, поймал неточность в описании бага 1С (< 0,005), собрал и применил расширение.

  • Сравнение с патчем 1С. Точное попадание в строку запроса. Вендор поднял разрядность делителя до трёх знаков ( ЧИСЛО(15, 3)), а агент добавил перед делением защиту округлённого знаменателя от нуля.

  • Время. 32 минуты (224 шага).

  • Стоимость. 427 ₽ (5,30 USD) по тарифам DeepSeek API.

Кейс 2. Не создаётся операция по платёжным картам при оплате из Расходной накладной

Во втором кейсе пользователю даже не выводится ошибка — онлайн‑оплата от клиента просто не появляется в базе:

В базе УНФ (демо 2) клиент оплатил расходную накладную онлайн по ссылке, а документ операции по платежным картам в базе не загружается и не появляется (хотя по заказам покупателей такие оплаты приходят нормально). Посмотрите, в чем ошибка, и исправьте через расширение.

Полная сессия прогона Кейса 2

Тут сработала классическая ловушка утиной типизации в общем обработчике. Сначала онлайн‑оплату писали под один документ, потом подключили другой без нужного поля, и фоновое задание загрузки платежей стало тихо падать при обращении через точку.

АдресСайта = ?(ЗначениеЗаполнено(ОснованиеПлатежа.АдресСайта), ОснованиеПлатежа.АдресСайта, "");

Открываем официальный патч разработчиков 1С EF_00_00829659.cfe и сравниваем с расширением, которое сгенерировал и применил агент — попадание один в один, вплоть до вызова той же стандартной функции проверки реквизита:

Если ОбщегоНазначения.ЕстьРеквизитОбъекта("АдресСайта", ОснованиеПлатежа.Метаданные()) Тогда
	АдресСайта = ?(ЗначениеЗаполнено(ОснованиеПлатежа.АдресСайта), ОснованиеПлатежа.АдресСайта, "");
КонецЕсли;

И снова DeepSeek разобрался чуть глубже. Проверив все виды документов, по которым в УНФ формируются ссылки на оплату, он обнаружил точно такой же баг ещё в двух документах — «Акте выполненных работ» и «Приёме‑передаче в ремонт».

  • Результат. Справился, 5 из 5. Нашёл причину тихого падения фонового задания, собрал и применил расширение, а попутно обнаружил эту же ошибку ещё в двух документах.

  • Сравнение с патчем 1С. 100% совпадение один в один, включая вызов ОбщегоНазначения.ЕстьРеквизитОбъекта.

  • Время. 25 минут (160 шагов).

  • Стоимость. 155 ₽ (1,93 USD) по тарифам DeepSeek API.

Кейс 3. Ошибка кнопки «Оплата через СБП» без банковского счёта

В базе УНФ (демо 3) в списке заказов покупателей нажимаю кнопку «Оплата через СБП», и если в заказе не выбран банковский счет, вылетает ошибка. Почините это через расширение.

Полная сессия прогона Кейса 3

При пустом счёте в заказе код уходит в третью ветку тернарного оператора ?(...), где программист 1С по привычке написал лишнее НастройкиИнтеграции =. Внутри ?(...) знак = работает как сравнение на равенство, поэтому вместо структуры возвращается булево Ложь, на котором тут же падает обращение через точку.

НастройкиИнтеграции = ?(ЗначениеЗаполнено(НастройкаСБП.БИКРасчетногоСчета),
	СистемаБыстрыхПлатежей.ПараметрыПодключенияПоБИК(НастройкаСБП.БИКРасчетногоСчета),
	НастройкиИнтеграции = Новый Структура("ИнтеграцияДоступнаСБПc2b", Ложь));

В официальном патче EF_00_00843269.cfe вендор убрал лишнее НастройкиИнтеграции = в тернарнике, а агент закрыл проблему на входе расширением. Если в заказе не выбран банковский счёт, код сразу возвращает понятное предупреждение пользователю без поиска подключения по пустому БИК:

&Вместо("ПриОпределенииДоступностиПодключенияПоДокументуОперации")
Функция СБПБанковскийСчет_ПриОпределенииДоступностиПодключенияПоДокументуОперации(Знач ДокументОперации)
	Если СБПБанковскийСчет_БанковскийСчетНеЗаполнен(ДокументОперации) Тогда
		Возврат Новый Структура(
			"ИнтеграцияДоступна, СообщениеОбОшибке",
			Ложь,
			НСтр("ru = 'Для оплаты по системе быстрых платежей необходимо заполнить банковский счет документа.'"));
	КонецЕсли;
	Возврат ПродолжитьВызов(ДокументОперации);
КонецФункции
  • Результат. Справился, 4 из 5. Раскрутил цепочку вызова СБП, собрал и применил расширение, которое полностью убирает падение.

  • Сравнение с патчем 1С. Фикс вендора точнее. Убрав опечатку в тернарном операторе, 1С позволяет дальше подобрать подключение через платёжного агрегатора даже без счёта в заказе, а агент просто блокирует операцию на входе с требованием заполнить банковский счёт.

  • Время. 47 минут (232 шага).

  • Стоимость. 329 ₽ (4,08 USD) по тарифам DeepSeek API.

Кейс 4. А что с серьёзными доработками из нового релиза?

Дадим ему задачу прямиком из свежего релиза 1С:УНФ 3.0.14 простыми словами менеджера по закупкам.

Включаем в настройках консоли флаг тестирование и просим агента после сборки расширения самому прокликать готовое решение в живой 1С со скриншотами:

В базе УНФ (демо 4) очень не хватает двух вещей:

  1. Чтобы прямо из Заказа поставщику можно было по кнопке создать документ «Установка цен» с ценами из этого заказа.

  2. И чтобы из документа «Установка цен» можно было распечатать форму «Переоценка товаров», где видно старую цену, > новую цену и разницу между ними. > Сделайте это отдельным расширением, проверьте в пользовательском режиме 1С и пришлите скриншоты.

Полная сессия прогона Кейса 4

4

4

В релизе 3.0.14 разработчики 1С вшили ввод на основании и команду печати в типовые метаданные.

3014

3014

Агент не трогал типовые объекты и вынес кнопки во внешние подключаемые команды, так что расширение не слетит при обновлении. На UI‑тесте в живой 1С он наткнулся на пустой документ и добавил автоподбор действующего прайса, хотя и записал черновик в базу до открытия формы.

Печатную форму «Переоценка товаров» разработчики 1С вывели в стандартном окне БСП с сохранением в PDF или Excel и строгим чёрно‑белым макетом.

3014

3014

Агент собрал печатную форму программно в обычный табличный документ, зато от себя добавил колонку % изменения и подсветил снижение и рост цен цветом.

  • Результат. Справился, 3+ из 5. Собрал и применил расширение с двумя командами и печатной формой, проверил сценарий в пользовательском режиме 1С со скриншотами.

  • Сравнение с релизом 1С (УНФ 3.0.14). По архитектуре чище сделали разработчики 1С. Агенту не хватило знаний штатных механизмов БСП для печати и ввода на основании без записи черновика, но бизнес‑задачу он закрыл и проверил живым прогоном в UI.

  • Время. 2 часа 1 минута (420 шагов).

  • Стоимость. 747 ₽ (9,28 USD) по тарифам DeepSeek API.

Итоги эксперимента

Точечные баги в типовой конфигурации DeepSeek нашёл и поправил на уровне штатных патчей, а на комплексной доработке ему не хватило знаний архитектуры БСП.

Разумеется, никакая LLM не заменит обновления от вендора. Но сам эксперимент показывает, что когда нужно быстро закрыть горящую проблему до выхода релиза, модель справляется вполне неплохо.

За счёт проверки в пользовательском интерфейсе результат получается предсказуемым, а вынос всех правок в отдельное расширение оставляет типовую конфигурацию на поддержке и позволяет в любой момент отключить временный фикс.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.