В динамических списках 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С-ника не очень привычно мыслить в категориях фигурных и квадратных скобочек, но, похоже, что нам все придется этим заниматься. Получив на входе поток слов пользователя и нашу четкую структуру, большая языковая модель превратит первое во второе. Ну а дальше вы сами знаете, что делать.
Комментарии (11)
economist75
07.02.2025 05:03Динамические списки неплохи, но концепция "настроек" в 1С8 с хаотично расположенными контролами, несколькими кнопками "Еще" на одном диалоге и нелогичной группировкой команд, которые нельзя зазузбрить, кроме как ежедневно повторяя, - плоха. Всё это приводят к тому что пользователи ненавидят этот механизм и не хотят его изучать (а некоторые и не могут).
Возможно всё это часть заговора в пользу "вечной нужности" 1С-ников, но по факту имеем массовую офисную боль и снижение производительности труда абсолютно на всех направлениях. Ладно бы только это. Особенно плохо то что есть снижение самоконтроля (он был намного выше в эпоху 1С77, когда принцип "двойной записи" был главным и всем пользователям хватало типовых отчетов ОСВ, АС, ЖО, Карточек и ума их настроить), ну и пары-тройки внешних.
Naf2000
07.02.2025 05:03а еще три способа отбора:
"быстрый" по Alt+F
через "настроить список" - порой долгий путь, но более универсальный
"фиксированный отбор", недоступный пользователю, но плохо, что также и невидимый ему
timka05
07.02.2025 05:03Тут хочу заметить, что очень не хватает возможности вводить голосом. Надеюсь, что когда-нибудь это появится в платформе.
Будет. 1С уже анонсировала такую функциональность. https://wonderland.v8.1c.ru/blog/razvitie-raspoznavaniya-rechi/ Правда только с версии 8.3.28 платформы.
Но еще сама 1С предлагает какой-то сервис 1С:Распознавание речи, которая доступна с версии платформы 8.3.25 https://speech.1c.ai/usage/
Ulrih
Пробелы почему не ставишь как разделители? Тяжко читать код когда все сплошным текстом
exwill Автор
Его скоро только ИИ и будет читать. Ему все равно, а нам экономия на входных токенах (шутка)
Ulrih
скоро это когда?
exwill Автор
Да можно сказать, что уже. Если в коде есть проблема и с ней надо разобраться, тогда copy+paste+вопрос ИИ (глянь, что тут за фигня). Если вы делаете не так и ломаете глаза, то вы просто себя не бережете