Как получить данные из 1С по-человечески

В данном случае «по‑человечески» означает, что данные будут представлены человеку. В узком смысле мы поговорим здесь об «отчетах». В широком смысле нас будет интересовать организация интерфейса ПО — человек (но не ПО‑ПО, это тема отдельного разговора о способах интеграции 1С с внешним миром, которых множество).

История

Более полувека назад появился язык, который сейчас называется SQL, Structured Query Lanuage. При рождении у него было другое имя SEQL, Structured English Query Language. Создатели рассчитывали на то, что дадут пользователям простой инструмент. Проще не придумаешь. Чтобы получить ответ от базы данных, надо обратиться к ней на обычном (английском) языке. Немного «причесанном» (т. е. структурированном), но все еще вполне доступном обычным смертным.

Довольно быстро выяснилось, что этот «простой» язык слишком сложен для пользователей. Выглядит удивительно, но вот это сложно:

ВЫБРАТЬ * ИЗ ПРОДАЖИ ГДЕ ЦВЕТ="Эвкалипт"

и это сложно:

ВЫБРАТЬ * ИЗ ОСТАТКИ ГДЕ НОМЕНКЛАТУРА="чай"

А это просто:

e8cb7b92844408907c2efdedc5d87675.png

и это просто

86c84ec9df4cea91c2118454ef30676e.png

Разумеется, у этого есть объяснение. Если не вдаваться в подробности, то где сейчас найдешь такие таблицы, из которых можно что‑то получить без единого джойна?

Отчеты

В седьмой версии 1С отчеты с течением времени становились все «кучерявее». Мой первый пример не является чем‑то особенным. Средний отчет в седьмой версии выглядел примерно так:

44049de7c77b9800cd9dbc1553317528.jpg

В свое время я наблюдал за развитием этого процесса с некоторым беспокойством, понимая, что предел мельтешения полей ввода уже где‑то близко.

В восьмой версии все это спрятали под кнопку с названием «настройка». Но, судя по реакции пользователей, которую мне довелось наблюдать, сильно лучше не стало. Если раньше среднестатистический пользователь сидел, стиснув зубы, и искал нужное ему поле ввода, то теперь он только беспомощно смотрел на тебя. «И что я тут могу сделать?», спрашивал он вслух или про себя. «Ну вот же. Есть кнопка «настройка» (просто запомни, что есть такая кнопка). Нажимаешь ее, открывается окно, а там есть кнопка «добавить фильтр» (просто запомни, что есть такая кнопка). Нажимаешь ее…» В среднем, где‑то примерно на этих словах выражение беспомощности на лице пользователя сменялось на выражение твердой уверенности в себе. «Я никогда, никогда не смогу это сделать». К счастью, из этой ситуации всегда находился выход. Конкретное условие выносилось на видное место.

27b002733892c980c748b7d4c8e650e5.png

Пользователь переводил дух и просил добавить туда еще чего‑нибудь, например, склад. В целом, все расставались довольными друг другом. Но не покидало ощущение, что в некотором смысле мы ходим по кругу.

Я надеялся найти такой общий принцип доступа к данным, который будет принят большинством пользователей. Поэтому довольно долгое время пытался всем своим пользователям рассказывать следующее.

Половину своего времени, говорил я, вы работаете с формами документов или элементов справочников. Но другую половину времени у вас перед глазами списки. Разработчики платформы придумали для вас замечательный инструмент, с помощью которого вы можете решить значительную часть своих вопросов. И этот инструмент есть в любом списке. Просто надо запомнить, что есть такая кнопка с неожиданным названием «еще». А там дальше есть пункт меню с названием «настроить список» (надо просто запомнить). А там…

Нельзя сказать, что людям это было непонятно. Наоборот, за моими действиями наблюдали с неподдельным интересом. А в конце говорили: «Здорово! Отличный инструмент!» Проблема заключалась в том, что если мне случалось говорить на эту же тему с этим же пользователем буквально на следующий день, то я видел все тот же неподдельный интерес, все то же «Здорово!» и… tablula rasa.

Все же разработчикам платформы удалось какое‑то время назад сделать универсальный пользовательский инструмент, который, что называется «зашел». Речь идет вот об этом небольшом поле ввода в правом верхнем углу почти любого списка.

182389a7bf00f26a2af66ffc4368c45a.png

Причем, «зашел» настолько, что стоило мне сделать какую‑нибудь свою форму, где был список, но не было этого чудесного «окошка», я сразу получал вопрос: «а где…»

Всего лишь контекстный поиск по всему списку. Не так уж много задач можно решить с его помощью. Но, как оказалось, людям больше всего нужны простые ответы на простые вопросы. И самым простым способом.

В начало

Говорят, что развитие идет по спирали. И вот сегодня мы наблюдаем возврат в исходную точку полувековой давности. К идее общения с базой данных на человеческом языке. Только теперь у нас есть большие языковые модели и технология GPT. И нам уже не надо ничего «структурировать». Можно просто задать вопрос. Не задумываясь, как пойдет. Нейросеть поймет (что бы это ни значило), превратит в тот самый «структурированный» и выдаст результат

cc515053602d054ed5177c8a3c42c92e.png24662d8b0f35f8bfc7264f0ad58b4c43.png

На данный момент это уже доступно всем желающим. А разработчики платформы очень вовремя выкатили распознавание речи. Мало того, что вопрос можно задавать на естественном языке, это можно делать еще и «с голоса».

Заключение

Изначальная идея, как сделать пользователю хорошо, дать максимально простой способ доступа к данным, хоть и не была в свое время реализована в том виде, в каком ожидалась, подготовила почву для успешной работы современных языковых моделей.

В заключение приглашаю всех желающих на открытый урок, на котором участники обсудят, как стать бизнес‑аналитиком 1С, какие функции он выполняет в командах разработки 1С, его возможные зоны ответственности, а также перспективы развития в должности. Записаться можно здесь.

© Habrahabr.ru