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

06.02.25

Разработка - Работа с интерфейсом

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Настройка списка по щучьему веленью:
.epf 96,87Kb
5
5 Скачать (1 SM) Купить за 1 850 руб.

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

Управляемые формы.

См. также

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    55591    17    23    

43

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    19910    28    6    

44

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

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    23266    mrXoxot    44    

130

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

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    11850    smielka    37    

105

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    18317    1228    elcoan    53    

125

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

3 стартмани

10.04.2023    12852    167    acces969    31    

126

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    7886    kalyaka    6    

33

Работа с интерфейсом Программист Пользователь Платформа 1С v8.3 8.3.14 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Ещё с времен платформы 8.3.13 можно изменять цвет стилей интерфейса главного окна. Данное расширение позволит вам выбрать из подготовленных десятка стилей на свой вкус.

1 стартмани

01.07.2022    26785    420    rpgshnik    69    

101
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tahallus 441 06.02.25 11:07 Сейчас в теме
Мы еще немного приблизились к функционалу одной кнопки )
lone_mayson; +1 Ответить
2. mkalimulin 1260 06.02.25 11:54 Сейчас в теме
(1) Продолжение следует )))
3. m_aster 119 06.02.25 14:39 Сейчас в теме
Михаил, спасибо за Ваш труд и интересные наработки!
Тема ИИ становится все более актуальной.
У 1С есть решение:
«1С:Распознавание речи» https://portal.1c.ru/applications/1C-Speech-Recognition
С версии платформы 8.3.23 1С добавила функционал речевого ввода информации, описание на сайте Раруса:
https://rarus.ru/publications/20230414-otvety-lk-1c-rarus-golosovoy-vvod-dannykh-v-konfiguratsiyakh-1c-590688/
ivnik; seperblunt; +2 Ответить
4. mkalimulin 1260 06.02.25 15:18 Сейчас в теме
(3) Спасибо за отзыв!
Я знаком с этим решением. Тут дело в том, что голосовой ввод добавлен не в платформу. Он добавлен в конфигурацию в виде довольно громоздкого костыля. В платформу это когда вы просто размещаете на форме реквизит типа ХранилищеЗначения и выбираете одну из кнопок: аудио ввод, видео ввод, фото
5. m_aster 119 06.02.25 15:47 Сейчас в теме
(4) Михаил, вам спасибо!
С версии 8.3.23 реализовано свойство глобального контекста "РаботаСРечью", т.е., это платформенное решение(и в следующих версиях оно развивается).
Нюанс в том, что:
"Для того, чтобы начать использование механизмов распознавания речи необходимо подключить модель распознавания из файла для локального распознавания или подключиться к серверу распознавания для удаленного распознавания".(с подпиской ИТС описание доступно по ссылке https://its.1c.ru/db/v8324doc#bookmark:dev:TI000002686)
Это что-то на манер ИИ, 1С должна сравнить то, что говорит пользователь с данными модели, чтобы перевести голос в текст.
В принципе, вроде ничего такого сверхестественного.
6. mkalimulin 1260 06.02.25 16:27 Сейчас в теме
(5) Но это свойство нам никак не поможет ввести в 1С двоичные данные с микрофона. РаботаСРечью работает с двоичными данными, но их же надо сначала взять с микрофона. Что мы с ними потом будем делать и как обрабатывать: через РаботаСРечью или как-то еще, это уже другой вопрос. И с ним-то как раз проблем нет. Например, отправляем через REST API и получаем результат.
10. m_aster 119 07.02.25 18:41 Сейчас в теме
(6)Михаил, добавил Вашу библиотеку ИИ в демоприложение от 1С "Распознавание речи", гляньте, будет время:
https://infostart.ru/1c/tools/2306819/
11. mkalimulin 1260 09.02.25 01:27 Сейчас в теме
(10) Посмотрел. Да, неплохо получилось. Спасибо вам!
Жаль только, что таким способом привязываешься к одному провайдеру (который так нигде и не опубликовал WER, ну или я не нашел)
12. m_aster 119 09.02.25 02:05 Сейчас в теме
(11) Михаил, Вам спасибо! Интересная тема, было что добавлять в демо.
Это да, 1С очень часто мало что документирует.
Я по коду посмотрел как работает(в основном внутри свойства "РаботаСРечью", там некуда провалиться, чтобы посмотреть), но увидел, что 1С прогоняет текст несколько раз, насколько я заметил в отладчике, видимо какой-то свой анализатор распознавания на основе модели, в конце концов выдает правильный текст, по крайней мере из того, что я ей надиктовывал.
В идеале бы еще что-то типа Библиотеки распознавания, с минимумом необходимого кода.
Плюс, что можно выбрать не одну модель, а несколько, в локальной версии точно, скорее всего это все есть и в облаке.
С другой стороны привязка к одному провайдеру, который в принципе работает неплохо, тоже имеет свои плюсы.
Поставил платформу и обработчик уже есть(встроенное свойство, в последних версиях этот функционал расширен), добавил код(была бы библиотека, было бы супер) и все, механизм готов.
Обновил выгрузку и статью, добавил в обработчики и в справочник настройки для DeepSeek.
Пока, к сожалению, без пополнения средств на аккаунте не работает по API, выдает код 402(недостаточно средств). А пополнить тоже пока нельзя, как пишут, временно закрыто из-за нагрузки пополнение аккаунта.
Возможно скоро заработает.
14. mkalimulin 1260 09.02.25 09:32 Сейчас в теме
(12) Вот в этом и минус одного провайдера. Сегодня он работает, а завтра у него "наплыв клиентов"
15. m_aster 119 09.02.25 16:38 Сейчас в теме
(14) Локальная модель работает вполне неплохо и ее надежность зависит от железа клиента, Вашего или чьего-то еще, т.е., модели хранятся на локальном сервере. От "наплыва клиентов" не застрахован ни один провайдер, это лишь повод масштабироваться, значит все хорошо, сервис популярен, тем более, если сервис за деньги, проблемы балансировки нагрузки должны решаться оперативно.
Я помню пару случаев, когда обновление было проблематично скачать с портала 1С, давно уже это не наблюдается, раньше была одна ссылка на скачивание, сейчас добавлены еще две резервных, значит проблема не висит, а решается. Думаю, в случае с речевым сервисом будет так же, мы же платим деньги не за красивые слова, а чтобы он работал, тем более он наш, конфиденциальность и т.д.
Но говорю, есть возможность пользовать локальную модель.
Ниже мой коммент гляньте, написал, что в настройках теоретически можно добавлять внешние ссылки(возможно не только 1С).
13. m_aster 119 09.02.25 02:40 Сейчас в теме
(11) Посмотрел справку:
РаботаСРечью (SpeechProcessing)
Тип: МенеджерРаботыСРечью.
Есть метод:
- ПоддерживаетсяИспользованиеВнешнегоРасположения (ExternalLocationUseSupported)
Синтаксис:
ПоддерживаетсяИспользованиеВнешнегоРасположения()
Возвращаемое значение:
Тип: Булево.
Истина - если в рамках информационной была выполнена настройка подключения к внешней системе работы с речью. В случае использования разделения данных выполняется проверка наличия настройки в рамках текущей области.
Описание:
Проверяет возможность использования внешней системы работы с речью для текущего сеанса.
Доступность:
Сервер, толстый клиент, мобильное приложение (сервер).
Использование в версии:
Доступен, начиная с версии 8.3.23.
Так, что теоретически, есть возможность подключения внешнего сервиса(на картинке, из Функций технического специалиста):
Прикрепленные файлы:
7. ivanov660 4673 06.02.25 20:04 Сейчас в теме
1. Выглядит прикольно, но с практической части выглядит опасно. Будет очень плохо работать база с группировкой по контрагенту, когда в ней хотя бы несколько сотен тысяч документов.
2. Я бы смотрел в сторону управления бизнес процессами - интерактивный помощник. Ко мне как-то обращались с подобной идеей, но в то время не было deep seek (на мой скромный взгляд гораздо лучше жпт). Поясню. Например объясняем жпт шаблон создать платежку, где говорим что нужно создать документ и заполнить его некоторыми полями по умолчанию. А потом в процессе работы, говорим, создай платежку, контрагент - рога и копыта, сумма - 100 тыр. И теперь бухгалтер взяв стопку бумаг, неспеша перелистывая, зачитывает документы с бумажки.
8. mkalimulin 1260 06.02.25 20:48 Сейчас в теме
(7)
1. Так не опасней, чем сейчас. Возможность сгруппировать по контрагентам присутствует штатно.
2. Как давно обращались? Идея классная, но тут не понятно, по какому пути идти. Или произвольный код выполнять. И тогда уже да, опасно. Или самому много функций писать. Но тогда... много функций
9. ivanov660 4673 07.02.25 00:45 Сейчас в теме
(8) п.2. Года 4 назад. Не совсем в том направлении идея, видение разработчика сводит вас с истинного пути концепта) Идея в том чтобы нажимать именно кнопочки и вводить данные в поля. Т.е. максимально абстрагироваться от кода внутри.
Для опробования этого я концепта я использовал менеджер тестирования своего фреймворка (подключаем Automation UI 1C и кликаем) и далее описывал что нужно сделать, а потом просил жпт выполнить мои пожелания. На скрине ниже пояснение идеи.
Прикрепленные файлы:
Оставьте свое сообщение