Настройка динамического списка в 1С по щучьему веленью

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

Долгое время я пытался объяснять и показывать пользователям, как работает этот механизм. Прониклись всего лишь несколько человек. В какой-то момент я понял, что четкий, ясный, хорошо структурированный интерфейс массовому пользователю не нужен. Пользователь хочет просто сказать, что ему нужно, и получить, что ему нужно. Не так давно тому назад это считалось невозможным. Но сейчас, с появлением больших языковых моделей (их еще называют искусственным интеллектом), эта сказка стала былью. Пользователь может просто сказать, что ему нужно, а список сам и настроится. Но, конечно же не совсем по щучьему веленью. Программисту 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);
КонецПроцедуры

Для 1С-ника не очень привычно мыслить в категориях фигурных и квадратных скобочек, но, похоже, что нам все придется этим заниматься. Получив на входе поток слов пользователя и нашу четкую структуру, большая языковая модель превратит первое во второе. Ну а дальше вы сами знаете, что делать.

Источник: https://habr.com/ru/articles/880208/


Интересные статьи

Интересные статьи

В этой статье мы погрузимся в мир небезопасного программного обеспечения, такого как ProFTPD, OpenSSH, Drupal и Apache Continuum, и посмотрим, как злоумышленники могут легко получить доступ к вашим ко...
С 2003 года CMS «1С-Битрикс: Управление сайтом» активно представлена на рынке, а в 2012 к ней присоединилась CRM «Битрикс24». Эти продукты быстро завоевали популярность, и сегодня у компании-разработч...
На работе я занимаюсь поддержкой пользователей и обслуживанием коробочной версии CRM Битрикс24, в том числе и написанием бизнес-процессов. Нужно отметить, что на самом деле я не «чист...
В настоящее время, когда пачками открываются планеты у других звезд, а земляне отправили первые звездолеты, кажется, что наша домашняя Солнечная система уже хорошо изучена и знакома. Однако, ...
От скорости сайта зависит многое: количество отказов, брошенных корзин. Согласно исследованию Google, большинство посетителей не ждёт загрузки больше 3 секунд и уходит к конкурентам. Бывает, что сайт ...