На связи Сергей Скирдин, технический директор ИТ-интегратора «Белый код». На майских праздниках, как водится, собрались на шашлыки, за шашлыками много обсуждали искусственный интеллект. В результате получился интересный эксперимент.

В последнее время я достаточно активно использую ИИ для локальных задач: 

  • скорректировать текст, 

  • написать скрипт для СУБД,

  • разобрать сложный, многостраничный запрос в 1С.

Пробовал для этого бесплатный DeepSeek или нейронку, встроенную в «Битрикс24». ChatGPT не использовал, т. к. лениво было настраивать VPN и по информации из прессы вроде DeepSeek не сильно хуже. Но ребята рассказали, что OpenAI ушел далеко вперед, и можно скармливать ему файлы, он умеет формировать файлы, а еще он может сходить в интернет за актуальной информацией. В общем, заинтересовался. Дальше будет статья, которую написал искусственный интеллект, а кожаный поправил.  

Решение задачи

И тут первый облом:

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

Загрузить целиком не смог, но отдельные файлы нейронка анализирует хорошо. Я отправил ей модуль для работы с Б24, который уже был в конфе, модуль веб-сервиса, который получает веб-хук от «Битрикса», и указал, какой метод прописан в веб-сервисе. Структуру регистра сведений нейронка предложила прислать скрином, что я и сделал. Это, конечно, очень ленивый вариант, он не передает инфо о типах атрибутов РС, но если надо что-то мелкое допилить, сойдет. Проще отправить скрипт, попросить написать, как он понял его, написать, где он ошибся, чем выгружать конфу, искать там нужные XML-ки.

Дальше привожу небольшой диалог по структуре регистра: 

? Обновлённая структура регистра бк_КомментарииСделокБ24

Измерения:

  • СделкаB24 — СправочникСсылка.bpcaSNS_СделкиБ24

  • КомментарийИД — Число (целое, длина 10 или 18, в зависимости от максимального значения ID)

Ресурсы:

  • Автор — Строка 100

  • Текст — Строка 1000 (или ХранилищеЗначения, если ожидается длинный текст)

  • ДатаВремя — Дата и время

Если потребуется, могу подготовить XML-файл для импорта этого регистра в конфигуратор или предоставить код для создания вручную. Сообщите, что предпочтительнее.

Вы сказали:

у Автора тип должен быть СправочникСсылка.Пользователи. Как заполнять автора посмотри в модуле бк_РаботаСБитрикс по аналогии с заполнением поля ОтветственныйЗаСделку. Задай уточняющие вопросы, если не понятно.

ChatGPT сказал:

Сохраненная память обновлена

Спасибо, нашёл нужный фрагмент. В модуле bpcaSNS_РаботаСБитрикс поле ОтветственныйЗаСделку заполняется так:

НоваяЗапись.ОтветственныйЗаСделку = ПолучитьПользователяУНФ(СоответствияПользователейБ24иУНФ, СделкаБитрикс["ASSIGNED_BY_ID"]);

Это означает, что:

  • используется функция ПолучитьПользователяУНФ

  • ей передаётся соответствие между пользователями Битрикс и 1С

  • и ID пользователя из Битрикс24


Значит, для поля Автор в комментарии нужно делать то же самое:

Запись.Автор = ПолучитьПользователяУНФ(СоответствияПользователейБ24иУНФ, Комментарий["AUTHOR_ID"]);


Есть один уточняющий вопрос:

? Где брать СоответствияПользователейБ24иУНФ в момент обработки комментариев?
Оно глобальное, передаётся в модуль, или его нужно отдельно получать?

Если ты укажешь, как формируется это соответствие (например, в общем модуле или справочнике), я смогу включить корректную логику в обработку.

Вы сказали:

СоответствияПользователейБ24иУНФ заполняется в коде Процедура ЗаполнитьДанныеСделки(СделкаБитрикс)

ChatGPT сказал:

Понял. В процедуре ЗаполнитьДанныеСделки(СделкаБитрикс) переменная СоответствияПользователейБ24иУНФ инициализируется так:

СоответствияПользователейБ24иУНФ = ПолучитьСоответствияПользователейБ24иУНФ();

Это значит, что:

  • при добавлении логики по комментариям внутри этой процедуры мы можем использовать эту переменную напрямую;

  • следовательно, при обработке каждого комментария автора можно заполнять так:

Запись.Автор = ПолучитьПользователяУНФ(СоответствияПользователейБ24иУНФ, Комментарий["AUTHOR_ID"]);


Если ты подтвердишь, что обработка комментариев будет встроена в ЗаполнитьДанныеСделки (или вызываться из неё), то можно переходить к написанию кода добавления комментариев и вставки записей в бк_КомментарииСделокБ24.

Диалог вполне разумный, и это даже не с джуном диалог. Вполне себе помощник!

Какие были проблемы

  1. Упорно использует конструктор массива, которого нет в 1С: 

Пример запроса:

Параметры = Новый Структура;

Параметры.Вставить("filter[ENTITY_TYPE]", Новый Массив("deal", "lead"));

Параметры.Вставить("select", Новый Массив("ID", "ENTITY_ID", "ENTITY_TYPE", "AUTHOR_ID", "COMMENT", "CREATED"));

Несколько раз указывал на ошибку, писал запомни, и он отвечал, что память обновлена. Кидал куски из синтаксис помощника, в общем тут прям проблема. 

  1. Любит писать много кода (копипаста). 

  1. Уже написали с ним процедуру получения лидов из Б24, пишем процедуру разового импорта всех лидов. Не догадывается вызвать готовую отлаженную процедуру загрузки одного лида, пишет заново. 

  2. Комментарии к сделкам и лидам в «Битрикс24» одна сущность, соответственно, и обращение к ним практически одинаковое, логично сделать общую процедуру, но нет, делает очень похожие две. Но если ему на это указать, он быстренько перепишет. 

  3. Забывает обязательный отбор ставить при работе с набором записей:

 // Создаём запись в регистре

    Набор = РегистрыСведений.бк_КомментарииСделокБ24.СоздатьНаборЗаписей();

    Запись = Набор.Добавить();

    Запись.СделкаB24 = СделкаСсылка;

    Запись.КомментарийИД = КомментарийИД;

    Запись.Автор = ПолучитьПользователяУНФ(СоответствияПользователейБ24иУНФ, Комментарий["AUTHOR_ID"]);

    Запись.Текст = Комментарий["COMMENT"];

    Запись.ДатаКомментария = СтрПреобразоватьВДату(Комментарий["CREATED"]);

    Набор.Записать();

  1. Использует несуществующие функции, например СтрПреобразоватьВДату()

Выводы

В итоге за 7-8 часов с перерывами на обед и т. д. было реализовано и отлажено:

  • загрузка лидов в справочник и сохранение истории статусов в РС;

  • загрузка комментариев к сделкам и лидам в РС;

  • процедура для разовой загрузки всех лидов и комментариев;

  • справочник и разовое заполнение статусов лидов.

Я думаю, если бы я писал сам, это заняло бы сопоставимое время, но:

  1. Я давно ничего такого не писал на 1С, навык потихоньку уходит, не уверен, что справился бы.

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

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

Я, кстати, делаю обзоры продуктов, которые относятся к классу ESB: Factor-ESB, «1С:Интеграция КОРП», «Интегра», USEBUS, Entaxy ION и другие. Для всех, кто интересуется шинами данных, создал сообщество в Телеграме «Шины не для машины». Это площадка для диалога между российскими разработчиками ESB и компаниями, которым нужна интеграционная шина. Если связаны с этой темой, то присоединяйтесь!

Комментарии (8)


  1. dendy142
    14.05.2025 07:54

    Странный вы технический директор, если только сейчас, спустя N релизов N нейросетей рискнули попробовать. А как же "быть на острие технологий"?..
    И да, попробуйте Gemini 2.5 Pro через их AI Studio. На уровне платной ChatGPT но бесплатно, грузить/создавать файлы и прочее - умеет. Результат вас удивит, уверяю.


    1. SergeySkirdin Автор
      14.05.2025 07:54

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

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

      Небольшие куски (минут 20-40) нейронка неплохо описывает (хотя не так глубоко как аналитик), структура и оформление на высоте. Ну и скорость обработки выдает такую, что человеку никогда не догнать. А вот дальше, что с этими кусками делать, как собрать? Аналитик этим не горит желанием заниматься, и я его понимаю, чужие потоки мыслей собирать в один документ, проще самому все написать.


  1. RobertoDiglas
    14.05.2025 07:54

    Это новая реальность, я ради эксперимента, попросил создать сайт, на определенную тематику, он написал мне код на js, css, и html, потом я попросил сгенерировать картинку сайта как он будет выглядеть, следом залил код, и развернул сайт, и сайт работал, и выглядел так как он мне сгенерировано на картинке. Это при том что я не знаю фронтенда. И заняло это 10 мин.


  1. saag
    14.05.2025 07:54

    Это уже не игрушка, это реальный помощник

    И зарплату ему не надо платить в отличие от ТС, а не оптимизировать ли затраты?:-)


    1. SergeySkirdin Автор
      14.05.2025 07:54

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


      1. saag
        14.05.2025 07:54

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


        1. SergeySkirdin Автор
          14.05.2025 07:54

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


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


          1. saag
            14.05.2025 07:54

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