Тестирование 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    3820    15    0    

25

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

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

600000 руб.

23.05.2025    599    0    0    

1

Нейросети Программист Бесплатно (free)

Выясняем, на что способны открытые большие языковые модели (LLM) в задачах 1С-разработки и проектирования. Тест шести сравнительно свежих (на май 2025) моделей, трезвый взгляд на их практическую применимость. Чем могут быть полезны? Стоит ли вкладываться в оборудование, чтобы запускать локально?

16.05.2025    3287    wonderboy    27    

32

Нейросети Программист Платформа 1С v8.3 Бесплатно (free)

На связи Сергей Скирдин, технический директор ИТ-интегратора «Белый код». На майских праздниках, как водится, собрались на шашлыки, за шашлыками много обсуждали искусственный интеллект. В результате получился интересный эксперимент.

16.05.2025    805    sergey.skirdin    3    

5

Нейросети Программист Бесплатно (free)

В статье кратко на реальных примерах проанализированы возможности генерации кода 1С сетями от Yandex, Sber, Microsoft, Anthropic, DeepSeek, OpenAI, Google.

10.05.2025    9361    comol    57    

47

WEB-интеграция Нейросети Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Абонемент ($m)

Представляем универсальную обработку для 1С, которая предоставляет два мощных инструмента для работы с платежной системой ЮКасса: интерактивный Дашборд для анализа финансовых потоков и инновационный модуль взаимодействия с API ЮKassa через запросы на естественном языке с использованием Искусственного Интеллекта. Решение обеспечивает как готовый функционал для пользователей, так и широкие возможности для кастомизации программистами 1С благодаря передаче сырых JSON-данных непосредственно в 1С.

10 стартмани

10.05.2025    385    0    Prepod2003    0    

4

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

Расширение, которое подходит для любой конфигурации на платформе 1С:Предприятие 8.3 и позволяет встроить в экранные формы механизм заполнения текстовых полей при помощи DeepSeek. Методы по работе с нейросетью вынесены в отдельный модуль. Благодаря этому их легко использовать для реализации собственных схем применения DeepSeek в 1С.

2 стартмани

30.04.2025    2403    10    implecs_otr    6    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 1530 06.05.25 07:37 Сейчас в теме
4. IncomeGroup 41 06.05.25 11:34 Сейчас в теме
(2) o1-pro я пробовал, он еще хуже чем о3
3. mkalimulin 1530 06.05.25 07:42 Сейчас в теме
Дело не в том, что "буржуйский зверь не учили на нормальных данных по 1С". Учили. Все данные, которые в принципе сейчас доступны по 1С были использованы в обучении, можете быть уверены. Дело в том, что самих данных как таковых несколько меньше, чем для Python. Модели вытягивают задачи по 1С на способности к обобщениям и на удаче
6. user2144868 06.05.25 17:34 Сейчас в теме
А почему не пробовали deepseek и qwen.
Они неплохи в программировании и более доступны.
Оставьте свое сообщение