Долгое время я пытался объяснять и показывать пользователям, как работает этот механизм. Прониклись всего лишь несколько человек. В какой-то момент я понял, что четкий, ясный, хорошо структурированный интерфейс массовому пользователю не нужен. Пользователь хочет просто сказать, что ему нужно, и получить, что ему нужно. Не так давно тому назад это считалось невозможным. Но сейчас, с появлением больших языковых моделей (их еще называют искусственным интеллектом), эта сказка стала былью. Пользователь может просто сказать, что ему нужно, а список сам и настроится. Но, конечно же не совсем по щучьему веленью. Программисту 1С тут тоже есть где потрудиться.
Для работы нам понадобится бесплатная Библиотека искусственного интеллекта для 1С. Возьмем для примера журнал документов продажи из типовой УТ (КА, ERP). Добавим в форму одно поле ввода и одну кнопку. Тут хочу заметить, что очень не хватает возможности вводить голосом. Надеюсь, что когда-нибудь это появится в платформе. А пока будем просто вводить текст.
Пользователь обычными словами говорит, что ему нужно. Его слова передаются на обработку большой языковой модели. На выходе получаем структуру в виде JSON, ну а дальше уже дело техники, более или менее знакомой всем специалистам по 1С.
В этом примере пользователь попросил сгруппировать список по контрагентам. Он может сказать по-программистски четко "сгруппировать по полю контрагент", может сказать так, как на рисунке, может даже сказать фривольно "скучковать по клиентам". Форма не важна, важен смысл, а смысл оно понимает, и в этом, собственно, магия технологии.
Можно попросить отобрать помеченные на удаление документы.
И тут можно было бы сказать "помеченные на удаление" или короче "удаленные" или совсем коротко, как на картинке, "отмена". Большая языковая модель без труда улавливает смысл.
Ну и еще пример. На этот раз у нас и отбор и группировка.
Как я уже сказал, для того, чтобы это заработало, нужно немного работы программиста. Самая важная часть этой работы будет не совсем привычна для программиста 1С. Чтобы превращать "бла-бла-бла" в структуру, надо эту структуру сначала описать с помощью JSON схемы. Схема может быть, например, такой:
&НаКлиенте
Процедура ВыполнитьНастройку(Команда)
инструменты="
| [
| {
| 'type': 'function',
| 'function': {
| 'name': 'TuneList',
| 'description': 'Настроить список',
| 'parameters': {
| 'type': 'object',
| 'properties': {
| 'FilterList': {
| 'type': 'array',
| 'items': {
| 'type': 'object',
| 'properties':{
| 'ItemName':{
| 'enum':['Склад','Контрагент','Менеджер','Ссылка.ПометкаУдаления'],
| 'type':'string'
| },
| 'ComparisonType':{
| 'enum':['Equal','NotEqual'],
| 'type':'string'
| },
| 'ItemValue':{
| 'type':'string'
| }
| }
| },
| 'description': 'Список отборов',
| },
| 'GroupList': {
| 'type': 'array',
| 'items': {
| 'type': 'object',
| 'properties':{
| 'ItemName':{
| 'enum':['Склад','Контрагент','Менеджер'],
| 'type':'string'
| },
| }
| },
| 'description': 'Список группировок',
| },
| },
| 'required': [],
| }
| },
| }
| ]";
инструменты=стрзаменить(инструменты,"'","""");
модель=ПолучитьМодель("gpt-4o-mini");
вопрос="Настроить список "+НастройкаСписка;
рез=БиблиотекаИскусственногоИнтеллекта.Генерация(Вопрос,модель,0,инструменты);
ответ=рез[0].function.arguments;
УстановитьНастройку(рез[0].function.arguments);
КонецПроцедуры
Не очень привычно мыслить в категориях фигурных и квадратных скобочек, но, похоже, что нам все придется этим заниматься. Получив на входе поток слов пользователя и нашу четкую структуру, большая языковая модель превратит первое во второе. Ну а дальше вы сами знаете, что делать.
В приложении дан полный пример.
Тестировалось на 8.3.24.1548.
Управляемые формы.