Запрос 1С copilot

09.03.24

Разработка - Инструментарий разработчика

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

Скачать файл

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

Наименование По подписке [?]
1С запрос copilot:
.epf 13,59Kb
125
125 Скачать бесплатно

Большие языковые модели (LLM), созданные на технологии "трансформер" (GPT), позволяют преобразовать вопрос, сформулированный на человеческом языке, в текст запроса к базе данных.

Кому это может быть полезно.

Во-первых, новичкам. Тем, кто только начинает изучать язык запросов. Задав, к примеру, вопрос: "как получить список товаров, общая сумма продаж которых превышает 10000", начинающий узнает, что условия задаются не только через ГДЕ

 

 

 

Эта обработка будет лучше любого учебника.

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

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

 

 

 

С первым и вторым условием все просто, продажи определенного артикула в 2023 году. А в третьем условии рука тянется написать "В" (контрагент в списке тех, у кого было менее 3 покупок), а надо писать "НЕ В" (контрагент не в списке тех, у кого было 3 покупки и более). Потому что с отсутствующими значениями надо быть внимательнее. Они часто "ломают" логику. Менее 3 покупок - это 2 или 1. А 0 покупок - это не менее 3. Большая языковая модель в этом случае будет вашим полезным ассистентом.

В начале работы укажите свои данные для авторизации.

 

 

В настоящий момент есть два поставщика работоспособных моделей, предоставляющие доступ к ним через API. Это OpenAI и Яндекс. Для OpenAI достаточно указать API-ключ. Для Яндекса API-ключ и каталог. Получить ключи можно на сайтах: https://platform.openai.com/ и https://cloud.yandex.ru/ Использование больших языковых моделей стоит денег. Оплата рассчитывается, исходя из объемов того, что мы подаем на вход и что получаем на выходе. Если сравнивать с другими задачами, у нас это будет немного. Например, при подготовке данной статьи, я прогнал с десяток-другой запросов к двум моделям Яндекс. У меня вышло 13 рублей. И Яндекс и OpenAI предоставляют всем новым пользователям гранты. Т.е. зачисляют некоторую начальную сумму на счет. У Яндекс это 3000 рублей у OpenAI 18 долларов, если не ошибаюсь.

Далее нам потребуется схема базы данных. Использовать метаданные 1С как есть не получится по разным причинам, на которых я сейчас не буду останавливаться. Нужно некоторое промежуточное представление.

 

 

 

Почему MySQL. Если ничего не указывать, то на выходе можно получить "губы Никанора Ивановича" и "нос Ивана Кузьмича", т.е. смесь различных диалектов SQL. По моему опыту, запросы на MySQL формируются лучше прочих, но вы можете поэкспериментировать сами. # нужна, чтобы одно не "прилипло" к другому. OpenAI этим вроде бы не грешит, а у Яндекса я такое видел. В обработке есть макет с готовой схемой. Ее можно загрузить. Используя этот пример, вы сможете делать свои собственные схемы.

Основная рабочая страница выглядит так:

 

   

 

На данный момент доступны 4 языковые модели.  Две модели от Яндекса, одна попроще и подешевле, другая подороже и посильнее, и две модели от OpenAI, с таким же раскладом. Модель Яндекс GPT-lite не годится для работы. Сначала я не хотел включать ее в список. Но потом решил оставить для того, чтобы вы могли получить более полное представление о работе различных языковых моделей и на практике убедиться в том, что в данном случае размер имеет значение. Для получения осмысленных результатов, используйте полную модель от Яндекса. В случае с OpenAI ситуация прямо противоположная. Лучше использовать "младшую" модель OpenAI GPT3.5 Она не только дешевле, но еще и немного лучше справляется с работой. И это опять же доказывает, что размер имеет значение. Не вдаваясь в технические подробности, скажем, что у OpenAI GPT3.5 и OpenAI GPT4 размер примерно одинаков.

Выбрав модель, вы задаете свой вопрос на естественном языке и получаете "сырой" ответ от языковой модели. Чтобы получить из сырого ответа текст запроса на языке 1С последовательно применяются  две функции ПолучитьИсправленныйОтвет() и ПолучитьТекстЗапроса1С(). Первая не имеет отношения к 1С. Она исправляет некоторые общие недостатки. Например, текст ответа от модели Яндекса будет содержать не только собственно текст запроса SQL, но и пояснения, по большей части бесполезные. Соответственно возникает задача выделить из всего этого сам запрос. Вторая функция решает две задачи. Она транслирует элементы заданной нами схемы запроса в настоящие объекты метаданных. А также эта функция представляет собой относительно простой транслятор из SQL в язык запросов 1С. Я не задавался целью получать всякий раз 100% работающие запросы. Все же это инструмент разработчика, и тут важнее идея. Но вы можете подойти сколь угодно близко к этим 100%, если усовершенствуете этот транслятор.

Визуализацию результатов выполнения запроса я все же добавил.

 

   

 

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

 

Тестировал на 8.3.23.1912.

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

 

UPD 07.02.2024

Добавлены две модели GigaChat от Сбера. Это не изменило количество работоспособных моделей. Их по прежнему три: полная модель от Яндекса и две модели от Open AI. Тем не менее, возможность убедиться в этом самостоятельно, а не с чьих-то слов будет не лишней. 

 

UPD 09.03.2024

Добавлена модель от Google Gemini pro. На данный момент пользование этой моделью бесплатно. Для нее установлено ограничение в 60 запросов в минуту, что в нашем случае вполне приемлемо. Спешите воспользоваться!   

UPD 15.03.2024

Добавлены три модели от Anthropic. Anthropic - это стартап, основанный выходцами из OpenAI. Они дают стартовый грант в 5$. Этого вполне достаточно для того, чтобы ознакомиться с возможностями этих моделей.   

GPT LLM

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    153205    837    398    

846

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    4768    32    16    

43

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    21112    61    43    

109

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

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

300000 руб.

03.03.2021    14321    12    27    

36

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    9545    35    10    

58

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    14288    36    7    

69

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    16897    6    32    

42

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    102836    243    100    

305
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsfix 31 15.01.24 13:34 Сейчас в теме
Скачать - 5 Sm, возомнить себя 1С-программистом - бесценно
DimkoZah; it_depDi; bocharovki; bulpi; +4 Ответить
2. Timur.V 79 15.01.24 14:11 Сейчас в теме
(1)
Каждый имеет право устанавливать ту цену, которую желает!
Критика вообще не понятна.
DrAku1a; demidrole; dnikolaev; Obertone; ilyav; serg-lom89; +6 1 Ответить
8. bayselonarrend 2033 16.01.24 15:25 Сейчас в теме
(2) Каждый имеет право критиковать так, как хочет!
Контркритика вообще не понятна :)
mrChOP93; it_depDi; DrAku1a; bocharovki; +4 Ответить
9. mkalimulin 1229 16.01.24 16:06 Сейчас в теме
(8) Осторожно! Тут может возникнуть рекурсия )))
script; mrChOP93; it_depDi; DrAku1a; bayselonarrend; +5 Ответить
10. dsfix 31 16.01.24 17:58 Сейчас в теме
(2) эта шутка не про цену, а про "если бы у меня такая программа была, я бы, может, и не женился (на 1С) никогда"
3. booksfill 15.01.24 17:32 Сейчас в теме
"Я три дня гналась за вами, чтобы сказать, как вы мне безразличны" (С) "Обыкновенное чудо".
Я себе чем-то напоминаю героиню этого произведения. :)

Давайте попробуем провести эксперимент?

Я ни на чем не настаиваю, просто может вам тоже будет любопытно.

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

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

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

На выходе не обязательно должно быть что-то рабочее, но оно должно помогать, а не путать. Так?

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

Выводится номенклатура, находящейся в указываемой группе, включая подгруппы.

Номенклатура не должна быть помечена на удаление - данное условие относится только к элементам.

Сумма продаж, в оптовых ценах, должна быть >= суммы, указанной в параметре запроса.
При расчете суммы продаж оптовую цену брать на дату совершения операции.
Данное требование относится и к возвратам.

Учесть, что цена номенклатуры устанавливается с учетом характеристики.

Из анализируемой номенклатуры исключить услуги и работы.

Вывести номенклатуру, сумму продаж.

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

Запрос, по возможности, должен использовать индексы и исключать лишние соединения.".
it_depDi; +1 Ответить
4. mkalimulin 1229 15.01.24 17:43 Сейчас в теме
(3) До максимальной простоты нужно еще немного поднажать )))
5. booksfill 15.01.24 18:23 Сейчас в теме
(4)
Имеете в виду, анализировать себестоимость, отбираться по группам А,В,С, учитывать не только сумму продаж, но и их динамику и рентабельность, разбивать по контрагентам, сезонности номенклатуры и т.п. + прогноз на следующий период? :)))

Если серьезно, то более простые задачи относятся к группе- ну, я пойду в магазин, куплю заварку, а ты мне в Excel файлик сбрось контрагентов с незаполненным ИНН. И обработочкой сними регистрацию изменений по регистру НеПонятнозачемОноВообщеВРИБ.

Если здесь новичку требуется помощь AI - дело плохо, причем не у него, а у того, кто умудрился взять его на работу. :)

Это в армии принцип "мне все равно, чем вы занимаетесь, лишь бы вы устали", а тут правда стало интересно. Ну нет у меня доступа к этим самым ChatGPT, да и ксак правиьно спрашивать сие чудо я не освоил.
6. mkalimulin 1229 15.01.24 18:49 Сейчас в теме
(5) В чем проблема организовать доступ через Яндекс?
7. booksfill 16.01.24 09:15 Сейчас в теме
(6)В моем неумении. К сожалению, сейчас нет времени разбираться ни в том, как подключиться к яндексу ни в том, как правильно писать промпты, кажется, это так называется.
Разумеется, это мои проблемы - через пару месяцев разгребусь и попробую поиграться
11. monkbest 114 17.01.24 11:19 Сейчас в теме
API ключи есть в обработке?
12. mkalimulin 1229 17.01.24 12:53 Сейчас в теме
(11) API ключи вы можете получить сами. Для Яндекс легко и просто. Для OpenAI нелегко и непросто, но возможно
13. mkalimulin 1229 17.01.24 21:16 Сейчас в теме
15. mkalimulin 1229 27.01.24 13:46 Сейчас в теме
(11) Если очень нужен ключ от OpenAI, обращайтесь
28. WladKor75 25.04.24 13:47 Сейчас в теме
Здраствуйте, можно ключик от OpenAI, недельку попользоваться. Написал обработку в 1С, хочется протестировать.
29. mkalimulin 1229 25.04.24 15:07 Сейчас в теме
(28) А чем Яндекс не устраивает?
30. WladKor75 26.04.24 10:59 Сейчас в теме
(29) Я из Беларусии. А в Яндекс привезка банковских карточек для РБ, только для Организаций. Пробывал привязывать банковскую карточку "Мир", не пропускает.
14. mkalimulin 1229 26.01.24 10:48 Сейчас в теме
Для Яндекса нужно создать сервисный аккаунт. Есть вариант работать без сервисного аккаунта, но там схема авторизации переусложненная, одним API ключом, как в сервисном аккаунте, не обойдешься
16. JohnyDeath 302 30.01.24 10:10 Сейчас в теме
А на сберовском AI не пробовали? У них есть есть такое:
Физическим лицам доступен freemium-режим и платные пакеты токенов.

В рамках freemium-режима пользователи получают 1 000 000 бесплатных токенов для генерации текста с помощью модели GigaChat Lite в одном потоке. Лимит обновляется раз в 12 месяцев.

До 31 января 2024 года вы можете использовать токены freemium-режима для получения векторного представления текста и обращения к модели GigaChat Pro ("model": "GigaChat-Pro").

(правда на про-версию остался всего один день)

Также интересно, подойдет ли их лайт-версия для этой задачи. Если подойдет, то там цена довольно небольшая и можно как физлицу пробовать, в отличии от про-версии
17. mkalimulin 1229 30.01.24 10:32 Сейчас в теме
(16) Сберовская модель неработоспособна, я пробовал. Она хуже Яндекс-лайт.
Пользуйтесь полной моделью от Яндекса, а еще лучше GPT3.5 от OpenAI.
Яндекс всем дает грант 3000 рублей. 5 минут на регистрацию и можно пробовать
JohnyDeath; +1 Ответить
18. JohnyDeath 302 30.01.24 10:36 Сейчас в теме
(17) я Яндексом пользуюсь и некоторые их облачные сервисы оплачиваю ежемесячно.
Просто хотел услышать ваше мнение по поводу еще одной модели, которая активно продвигается последнее время.

По поводу GPT. Сначала они блокировали доступ к через веб к чат-GPT, но по api всё прекрасно работало. Потом они вроде бы начали банить и по ip и для api-вызовов. После этого я забросил игры с ним. Пляски с впн-ами немного надоели.
Как сейчас обстоят с этим дела? Можно дергать api GPT из русского города без впн?
20. mkalimulin 1229 30.01.24 13:31 Сейчас в теме
(18) Да, OpenAI сейчас блокируют запросы из России.
JohnyDeath; +1 Ответить
22. mkalimulin 1229 30.01.24 13:34 Сейчас в теме
(18) Проблема сберовской модели в том, что она маленькая (вроде как 13B). А в этом деле размер имеет значение.
19. JohnyDeath 302 30.01.24 10:48 Сейчас в теме
(17) а еще буквально вчера "Вышла Code Llama 70B - самая производительная версия LLM для генерации кода".

небольшой видеообзор

Вроде как бесплатная даже для бизнеса и которую можно развернуть локально.
21. mkalimulin 1229 30.01.24 13:31 Сейчас в теме
(19) Пока еще не пробовал эту модель. Надо будет найти время. Спасибо за ссылку!
JohnyDeath; +1 Ответить
23. JohnyDeath 302 30.01.24 14:04 Сейчас в теме
(21) есть вот такая штуковина: https://lmstudio.ai/ где можно удобно и быстро развернуть и запустить модель локально. Но я сам еще не пробовал. И новая 70b там вроде как уже есть
24. user1966274 27.03.24 16:53 Сейчас в теме
подставил api ключ yandex. загрузил схему БД и ничего не происходит. как понять что подключилась обработка к модели и в какой момент пишется запрос?
25. mkalimulin 1229 27.03.24 17:14 Сейчас в теме
(24) У Яндекса два поля надо заполнять: ключ и каталог. Вы оба заполнили?
26. mrsmrv 127 15.04.24 13:51 Сейчас в теме
Привет. На Хабре там вы понаписали. Думаю, там и характер ресурса и особенности аудитории другие. Да и статья заявленная там, не соответствует содержанию.
27. mkalimulin 1229 15.04.24 14:49 Сейчас в теме
(26) Добрый день! Там редакция поудаляла иллюстрации. Поэтому в целом статья выглядит странной. Ничего страшного. Надеюсь, это не последняя моя статья, в том числе и на Хабре
31. mkalimulin 1229 27.04.24 15:37 Сейчас в теме
(30) Можно ведь как организация "привязаться". Еще вариант сделать виртуальную карту. Например здесь https://yoomoney.ru/cards/virtual
32. mkalimulin 1229 08.05.24 10:20 Сейчас в теме
Сегодня, 08.05.2024 продукт бесплатным. Я, как автор, конечно хотел бы получать не только моральное вознаграждение. Но реальность устроена немного сложнее. Сейчас основной продукт, "Библиотека искусственного интеллекта для 1С" продается на множестве площадок из категории "слив курсов". Поощрять подобное я не хочу, поэтому принял решение сделать продукт бесплатным.
Благодарю всех, кто честно приобрел продукт на Инфостарте и тем самым поддержал его развитие, которое на этом не остановится.
Также сообщаю, что я сейчас разрабатываю программу компенсации тем, кто купил продукт. До конца этого месяца я планирую предложить ее покупателям следующих продуктов:
https://infostart.ru/1c/tools/2059795/
https://infostart.ru/1c/tools/2015260/
https://infostart.ru/1c/reports/2027806/
https://infostart.ru/1c/tools/1868902/
sergei_tekh; Ninel_S; +2 Ответить
Оставьте свое сообщение