Тестирование 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 такая же тупая, как и самые старые модели..

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Администрирование веб-серверов Сервера Нейросети Программист Платные (руб)

Сервер поиска по метаданным и поиска по коду, Сервер экспорта и поиска по документации, Сервер синтаксической проверки кода

6000 руб.

17.06.2025    7314    74    7    

37

Нейросети 1С v8.3 Платные (руб)

Подключите Вашу 1С к ИИ. Расширение практически для любых конфигураций 1С, которое добавляет к ним MCP серверы и позволяет делать свои инструменты (tools), которые могут вызывать любые нейросетевые модели.

12000 руб.

10.07.2025    1032    2    2    

4

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

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

5000 руб.

08.11.2023    4425    17    0    

27

Мастера заполнения Нейросети 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

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

5000 руб.

13.03.2023    20056    49    50    

78

Нейросети Пользователь 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Расширение "Искусственный интеллект и нейросети в 1С: Работа с отзывами маркетплейсов" предназначено для применения искусственного интеллекта в повседневной деятельности селлеров на маркетплейсах. Среди функций - работа с отзывами, вопросами и чатами покупателей, диалог с нейросетями, генерация картинок, заполнение описаний номенклатуры и другое.

6000 руб.

03.04.2024    8928    4    0    

10

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

Разберемся, как устроены современные языковые и мультимодальные модели, сравним результаты их работы и заглянем в будущее.

23.07.2025    582    zev_s    0    

4

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

Современный ИИ ассоциируется с языковыми моделями, но в мире СУБД «искусственный интеллект» давно существует в виде планировщика запросов. В статье разберем, как Postgres использует AQO и Replan для машинного обучения в планировании запросов, и как переход от роли «кибераватара», вручную исправляющего EXPLAIN, к роли «тренера модели» экономит время и повышает эффективность. Узнаем, какие эффекты ждать от самообучающейся СУБД: от сокращения времени отклика до снижения нагрузки на администраторов. И подумаем, стоит ли овчинка выделки — обсудим плюсы и подводные камни адаптивного планирования.

18.07.2025    2236    a.doroshkevich    8    

18

Нейросети Программист 1С v8.3 1С:Документооборот Россия Абонемент ($m)

Попробуем создать Ассистента на базе искусственного интеллекта, который будет помогать обрабатывать документы организации. Ассистента будем создавать на платформе Open WebUI, рассмотрим её настройки и интеграцию с ней 1С:Документооборот. Основная часть статьи посвящена настройке самой платформы и описанию её функционала, а также рассмотрены некоторые подводные камни, на которые сам натолкнулся.

3 стартмани

18.07.2025    809    soulner    4    

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

По заданию №1 deepseek выдал следующее:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Вызов клиентской процедуры создания кнопки
    ВыполнитьНаКлиенте("СоздатьКнопкуНаКлиенте");
КонецПроцедуры

&НаКлиенте
Процедура СоздатьКнопкуНаКлиенте()
    // Создание кнопки
    Кнопка = Элементы.Добавить("МояКнопка", Тип("КнопкаФормы"));
    
    // Настройка свойств кнопки
    Кнопка.Заголовок = "Моя кнопка";
    Кнопка.Положение = Новый ПоложениеЭлемента(10, 10); // Позиция (слева, сверху)
    Кнопка.Ширина = 100; // Ширина в пикселях
    
    // Подписка на событие нажатия
    Кнопка.УстановитьДействие("Нажатие", "НажатиеМоейКнопки");
КонецПроцедуры

&НаКлиенте
Процедура НажатиеМоейКнопки(Элемент)
    // Обработка нажатия кнопки
    Сообщить("Нажата кнопка");
КонецПроцедуры
Показать
Оставьте свое сообщение