Тестирование openAI chatgpt модели о3 на способность писать код на 1С с помощью поиска в интернете

05.05.25

Интеграция - Нейросети

Все пишут, какой умный о3 от openAI, как он прекрасно разбирается в логике и какой у него замечательный механизм рассуждения. Проверим это на примитивных задачах 1С. Мы знаем, что буржуйский зверь не учили на нормальных данных по 1С и, следовательно, он толком ничего не умеет, но при этом он неплохо ищет в интернете, так вот заценим, сможет ли он скомпилировать что-то рабочее из того, что он там в интернетах найдет.

Пользователь

Для 1С:Предприятия версии 8.3 Управляемые Формы найди, как программно добавить кнопку на форму, т.е. кнопка должна быть на самой форме, после того, как ты найдешь данные, тебе нужно:

1. создать кнопку на форме с именем "Моя кнопка"

2. при нажатии на кнопку должно вывестись сообщение "Нажата кнопка"

Вот код для начала работы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Вставить содержимое обработчика.
КонецПроцедуры

Вначале произведи поиск, как выполнить задания.

После поиска выполни поставленную задачу и предоставь рабочий код в одном блоке.

При составлении ответа не используй таблицы

 

chatgpt модель о3

Вот минимальный и работающий пример, который добавляет на управляемую форму кнопку «Моя кнопка» и выводит сообщение «Нажата кнопка» при её нажатии.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	//--- 1. Создаём команду, которую будет выполнять кнопка
	КомандаМояКнопка = ЭтаФорма.Команды.Добавить("КомандаМояКнопка"); // уникальное имя
	КомандаМояКнопка.Заголовок = "Моя кнопка";                       // текст, который увидит пользователь
	КомандаМояКнопка.Действие  = "ПриНажатииМоейКнопки";             // обработчик на клиенте

	//--- 2. Добавляем саму кнопку внутрь формы (а не в командную панель)
	КнопкаМоя = ЭтаФорма.Элементы.Добавить("МояКнопка",
	                                       Тип("КнопкаФормы"),
	                                       ЭтаФорма);                 // родитель – сама форма
	КнопкаМоя.ИмяКоманды = "КомандаМояКнопка";                       // связываем кнопку с командой

КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииМоейКнопки(Команда)

	Сообщить("Нажата кнопка");

КонецПроцедуры

 

Почему так работает

 

  • В событии ПриСозданииНаСервере динамически создаём визуальный элемент через Элементы.Добавить() и команду через Команды.Добавить() – именно так рекомендует официальная документация и практические шпаргалки.

  • У кнопки указываем ИмяКоманды, чтобы она автоматически «знала», какой обработчик вызвать. Такой приём показан в примерах по программному созданию кнопок.

  • Действие команды привязываем к клиентской процедуре ПриНажатииМоейКнопки, где выводим сообщение–индикатор клика. Создание и привязку команды описывает отдельная шпаргалка.

В результате после открытия формы пользователь увидит новую кнопку «Моя кнопка»; при нажатии всплывает сообщение «Нажата кнопка».


Пользователь

 

Исходя из найденных данных обнови код, чтобы на форме было: две кнопки "Кнопка 1" и "Кнопка 2", при нажатии каждой из кнопок выдавалось сообщение вида Нажата кнопка и номер кнопки

 

chatgpt модель о3

Ниже обновлённый пример, который создаёт две команды и две кнопки на управляемой форме (при её создании), а также выводит разные сообщения при нажатии каждой кнопки. Приём взят из практических шпаргалок по динамическому добавлению элементов формы и команд.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	// --- 1. Команды для кнопок
	КомандаКнопка1 = ЭтаФорма.Команды.Добавить("КомандаКнопка1");
	КомандаКнопка1.Заголовок = "Кнопка 1";
	КомандаКнопка1.Действие  = "ПриНажатииКнопка1";   // клиентский обработчик

	КомандаКнопка2 = ЭтаФорма.Команды.Добавить("КомандаКнопка2");
	КомандаКнопка2.Заголовок = "Кнопка 2";
	КомандаКнопка2.Действие  = "ПриНажатииКнопка2";

	// --- 2. Сами кнопки на форме
	Кнопка1 = ЭтаФорма.Элементы.Добавить("Кнопка1", Тип("КнопкаФормы"), ЭтаФорма);
	Кнопка1.ИмяКоманды = "КомандаКнопка1";

	Кнопка2 = ЭтаФорма.Элементы.Добавить("Кнопка2", Тип("КнопкаФормы"), ЭтаФорма);
	Кнопка2.ИмяКоманды = "КомандаКнопка2";

КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииКнопка1(Команда)
	Сообщить("Нажата кнопка 1");
КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииКнопка2(Команда)
	Сообщить("Нажата кнопка 2");
КонецПроцедуры

 

Пользователь

 

1. Добавь заголовок не только для Команд, но и для Кнопок

2. При нажатии на кнопку 2 пусть выводит ее заголовок в виде "Заголовок:" заголовок кнопки

 

chatgpt модель о3

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	// --- 1. Команды
	КомандаКнопка1 = ЭтаФорма.Команды.Добавить("КомандаКнопка1");
	КомандаКнопка1.Заголовок = "Кнопка 1";
	КомандаКнопка1.Действие  = "ПриНажатииКнопка1";

	КомандаКнопка2 = ЭтаФорма.Команды.Добавить("КомандаКнопка2");
	КомандаКнопка2.Заголовок = "Кнопка 2";
	КомандаКнопка2.Действие  = "ПриНажатииКнопка2";

	// --- 2. Кнопки-элементы на форме
	Кнопка1 = ЭтаФорма.Элементы.Добавить("Кнопка1", Тип("КнопкаФормы"), ЭтаФорма);
	Кнопка1.ИмяКоманды = "КомандаКнопка1";
	Кнопка1.Заголовок  = "Кнопка 1";   // заголовок самой кнопки

	Кнопка2 = ЭтаФорма.Элементы.Добавить("Кнопка2", Тип("КнопкаФормы"), ЭтаФорма);
	Кнопка2.ИмяКоманды = "КомандаКнопка2";
	Кнопка2.Заголовок  = "Кнопка 2";   // заголовок самой кнопки

КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииКнопка1(Команда)
	Сообщить("Нажата кнопка 1");
КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииКнопка2(Команда)
	// получаем заголовок второй кнопки и выводим
	ЗаголовокКнопки = ЭтаФорма.Элементы.Кнопка2.Заголовок;
	Сообщить("Заголовок: " + ЗаголовокКнопки);
КонецПроцедуры

Пользователь

Теперь добавь следующее: при нажатии на кнопку 1 мы будем менять заголовок кнопки 2 следующим образом: добавлять к номеру заголовка по 1 при нажатии, т.е. если у нас "Заголовок 2", то при нажатии у нас будет Заголовок 3 4 5 и т.д.

Если не знаешь, как это сделать правильно, воспользуйся поиском в интернете

 

chatgpt модель о3

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	// --- 1. Команды
	КомандаКнопка1 = ЭтаФорма.Команды.Добавить("КомандаКнопка1");
	КомандаКнопка1.Заголовок = "Кнопка 1";
	КомандаКнопка1.Действие  = "ПриНажатииКнопка1";

	КомандаКнопка2 = ЭтаФорма.Команды.Добавить("КомандаКнопка2");
	КомандаКнопка2.Заголовок = "Кнопка 2";
	КомандаКнопка2.Действие  = "ПриНажатииКнопка2";

	// --- 2. Кнопки-элементы
	Кнопка1 = ЭтаФорма.Элементы.Добавить("Кнопка1", Тип("КнопкаФормы"), ЭтаФорма);
	Кнопка1.ИмяКоманды = "КомандаКнопка1";
	Кнопка1.Заголовок  = "Кнопка 1";

	Кнопка2 = ЭтаФорма.Элементы.Добавить("Кнопка2", Тип("КнопкаФормы"), ЭтаФорма);
	Кнопка2.ИмяКоманды = "КомандаКнопка2";
	Кнопка2.Заголовок  = "Кнопка 2";

КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииКнопка1(Команда)

	// текущий заголовок второй кнопки
	ЗаголовокКноп2 = ЭтаФорма.Элементы.Кнопка2.Заголовок;

	// извлекаем числовую часть, увеличиваем её на 1
	СтрНомер = СокрЛП(СтрЗаменить(ЗаголовокКноп2, "Кнопка", ""));
	Номер    = Число(СтрНомер);
	Если Номер = Неопределено Тогда
		Номер = 1; // защита от ошибок распознавания
	КонецЕсли;
	Номер = Номер + 1;

	// строим новый заголовок и применяем
	НовыйЗаголовок = "Кнопка " + Номер;
	ЭтаФорма.Элементы.Кнопка2.Заголовок          = НовыйЗаголовок;
	ЭтаФорма.Команды.КомандаКнопка2.Заголовок   = НовыйЗаголовок;

	Сообщить("Нажата кнопка 1");

КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииКнопка2(Команда)

	ЗаголовокКнопки = ЭтаФорма.Элементы.Кнопка2.Заголовок;
	Сообщить("Заголовок: " + ЗаголовокКнопки);

КонецПроцедуры

 

Пользователь

Ошибка при установке значения атрибута контекста (Заголовок) ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(42)}: ЭтаФорма.Команды.КомандаКнопка2.Заголовок = НовыйЗаголовок;

по причине:

Изменение свойств команд недоступно на клиенте

Вот такая ошибка получается, я не буду подсказывать, по какой причине, просто намекну, что не все нужно менять

 

chatgpt модель о3

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	// --- 1. Команды
	КомандаКнопка1 = ЭтаФорма.Команды.Добавить("КомандаКнопка1");
	КомандаКнопка1.Заголовок = "Кнопка 1";
	КомандаКнопка1.Действие  = "ПриНажатииКнопка1";

	КомандаКнопка2 = ЭтаФорма.Команды.Добавить("КомандаКнопка2");
	КомандаКнопка2.Заголовок = "Кнопка 2";
	КомандаКнопка2.Действие  = "ПриНажатииКнопка2";

	// --- 2. Кнопки-элементы на форме
	Кнопка1 = ЭтаФорма.Элементы.Добавить("Кнопка1", Тип("КнопкаФормы"), ЭтаФорма);
	Кнопка1.ИмяКоманды = "КомандаКнопка1";
	Кнопка1.Заголовок  = "Кнопка 1";

	Кнопка2 = ЭтаФорма.Элементы.Добавить("Кнопка2", Тип("КнопкаФормы"), ЭтаФорма);
	Кнопка2.ИмяКоманды = "КомандаКнопка2";
	Кнопка2.Заголовок  = "Кнопка 2";   // будем менять только этот заголовок

КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииКнопка1(Команда)

	// Текущий заголовок второй кнопки («Кнопка N»)
	ЗаголовокКноп2 = ЭтаФорма.Элементы.Кнопка2.Заголовок;

	// Извлекаем номер и увеличиваем его на 1
	СтрНомер = СокрЛП(СтрЗаменить(ЗаголовокКноп2, "Кнопка", ""));
	Номер    = Число(СтрНомер);
	Если Номер = Неопределено Тогда
		Номер = 1;
	КонецЕсли;
	Номер = Номер + 1;

	// Новый заголовок второй кнопки
	НовыйЗаголовок = "Кнопка " + Номер;

	// Меняем только заголовок элемента (команду трогать не нужно R13; иначе будет ошибка)
	ЭтаФорма.Элементы.Кнопка2.Заголовок = НовыйЗаголовок;

	Сообщить("Нажата кнопка 1");

КонецПроцедуры


&НаКлиенте
Процедура ПриНажатииКнопка2(Команда)

	ЗаголовокКнопки = ЭтаФорма.Элементы.Кнопка2.Заголовок;
	Сообщить("Заголовок: " + ЗаголовокКнопки);

КонецПроцедуры

 

Мысли:

После некоторого мытарства выводы простые: на текущий момент, самая передовая система о3 от openAI пишет на 1С, примерно так же как в свое время chatgpt 3.5 самая ранняя версия писала на python, а может, и еще хуже.

Нужно попробовать взять уже готовый код и посмотреть с шаблонами кода, она способна на что-то большее или это тупиковый путь и без обучения о3 такая же тупая, как и самые старые модели..

См. также

Нейросети Мастера заполнения Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5000 руб.

08.11.2023    4031    15    0    

25

Нейросети Анализ продаж Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Новая (портабельная) версия анализа продаж вместе с ИИ. Не требует установки расширения Библиотека искусственного интеллекта для 1С.

10 стартмани

17.06.2025    1023    6    mkalimulin    6    

8

Управление инвестициями Нейросети Финансовые услуги, инвестиции Бесплатно (free)

Вплоть до текущего года я скептически относился к новостям о нейросетях. Мне казалось, что всё это просто очередной хайп и уж точно они не скоро смогут помочь в чём-то разработчику ПО. Но решил немного поэкспериментировать с пет-проектом, который пылился уже пару лет. Результат меня удивил, поэтому решил поделиться опытом с вами.

16.06.2025    2582    oyti    3    

7

Нейросети Инструментарий разработчика Программист Платформа 1С v8.3 Абонемент ($m)

Для эффективного использования современных LLM им не хватает контекста об 1С, как минимум, знания структуры метаданных 1С, а еще лучше знаний БСП и синтакс-помощника :) Технология MCP помогает решать эту проблему. Под катом описание MVP-решения, которое можно далее дорабатывать под себя. Мне сильно не хватало подобной статьи, чтобы сэкономить бессонные ночи.

1 стартмани

16.06.2025    4950    15    FSerg    13    

42

Нейросети Россия Абонемент ($m)

Нейросетями становится пользоваться все удобнее и интереснее. Правильное применение инструмента помогает сэкономить много времени сил и сосредоточиться на творчестве, а не на рутине.

1 стартмани

11.06.2025    453    Ликреонский    9    

0

Нейросети Программист 1С:Библиотека стандартных подсистем Бесплатно (free)

Рассмотрим Claude Sonnet 4, GPT o3 и 4.1, Qwen3, Llama 4 Maverick, Grok. Cursor и плагин для EDT.

28.05.2025    6637    comol    39    

37

Нейросети Платформа 1С v8.3 1С:Управление торговлей 11 Платные (руб)

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

600000 руб.

23.05.2025    1981    0    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Pavel_Vladivostok 58 06.05.25 07:05 Сейчас в теме
Вообще он неплохо справился, я устанавливал локальные модели и обучал их в чате, они запоминают задачи и подсказки при общении в чате, и в дальнейшем выводят результаты вспоминая прошлые чаты, но это очень долго. Пока не будет полноценного обучения, это все почти бесполезно.
5. IncomeGroup 41 06.05.25 11:39 Сейчас в теме
(1) Да, я пробовал запихать в файл информацию о том, как кодировать и да, он вполне может выдирать шаблоны из файла и что-то толковое писать, но если данных в файле много он начинает в них путаться, перестает понимать, что к чему относится и начинает писать бред.

Согласен, что без полноценного обучения все эти нейросети для 1С бесполезны.

Вроде, что-то фирма 1С делает https://code.1c.ai/
но увы "Пилотное использование доступно партнерам 1С"
2. mkalimulin 1540 06.05.25 07:37 Сейчас в теме
4. IncomeGroup 41 06.05.25 11:34 Сейчас в теме
(2) o1-pro я пробовал, он еще хуже чем о3
3. mkalimulin 1540 06.05.25 07:42 Сейчас в теме
Дело не в том, что "буржуйский зверь не учили на нормальных данных по 1С". Учили. Все данные, которые в принципе сейчас доступны по 1С были использованы в обучении, можете быть уверены. Дело в том, что самих данных как таковых несколько меньше, чем для Python. Модели вытягивают задачи по 1С на способности к обобщениям и на удаче
6. user2144868 06.05.25 17:34 Сейчас в теме
А почему не пробовали deepseek и qwen.
Они неплохи в программировании и более доступны.
Оставьте свое сообщение