ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

@nizamov_studio_1c


Канал для программистов 1С, новичков и профи, изучаем мобильную разработку 1С, интеграцию 1С.

По личным вопросам писать в личку @IlyaNizamov
Моя студия https://nizamov.studio
Моя школа: https://nizamov.school

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

20 Oct, 15:51


GigaChat. ИИ в 1С для разбора и структурирования данных

https://rutube.ru/video/296834aee539bc83e5a7198e2df9ad35/?r=wd

Всем привет, с вами Низамов Илья. В этом видео я покажу еще одно интересное применение ИИ в 1С для парсинга данных.

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

Сразу скажу, что это не панацея, ИИ может ошибаться, глючить и большие модели стоят денег. Но такое решение может очень сильно облегчить работу. После обработки ИИ вам нужно просто пробежаться по результатам и поправить руками ошибки, но это гораздо легче чем все делать с нуля.

В данном видео мы научим ИИ разбирать входящий запрос, выдавать структурированные данные "with_structured_output()" по разным типам товаров, напишем кастомных агентов "custom tools", и сделаем свой сервис на FastAPI. Модель будет использоваться GigaChat, так как в современных условиях это самый беспроблемный вариант и у них есть демо режим, то есть вы сможете повторить сами все что есть в этом видео. Модель буду использовать GigaChat-Pro и их библиотеку GigaChain, форк от LangChain.

Скачать все материалы https://gitflic.ru/project/ilyanizamov102/gigachat-1s-with_structured_output

@IlyaNizamov

#1с #1c #gigachat #ai

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

16 Oct, 14:57


Всем привет, с вами Низамов Илья! Сегодня пост не про 1С.

Есть такая поговорка: "беда не приходит одна". Если коротко, последние две недели были настоящим сумасшествием. Сначала соседи затопили квартиру — с этим я быстро разобрался. Потом ребенок сломал палец. А сегодня с утра пришло уведомление, что банк поднял процент по ипотеке в два раза, и весь день ушел на выяснение причин и попытки решить вопрос.

В общем, весело. Но я отношусь к таким вещам философски. Как сказал один умный человек: "Если на пути к цели нет никаких непреодолимых препятствий, то, возможно, это и не цель". Единственное, такие события сильно отвлекают от работы.

Теперь выдохнул, успокоился, разрулил всё и жду положительных результатов. Заодно вспомнил, что давно не проводил акций, а подписчиков за последнее время прибавилось. В честь этого даю скидку 45% на любые курсы по промокоду QVHJCW8X до конца месяца.

Всем удачи! Всё у нас будет отлично!

@IlyaNizamov

#1с #1c

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

11 Oct, 05:01


🚀 Привет всем! Рекомендую канал 1С Работа для тех, кто ищет карьерные возможности в сфере 1С.

💼 Здесь вы найдете топовые вакансии, бесплатный сервис подбора работы, полезные рейтинги из мира 1С, новые классные рубрики - вопросы на собесах 1С, истории успеха 1С.

🌟 Подписывайтесь на 1С Работа и будьте в курсе лучших предложений на рынке.

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

05 Oct, 08:55


https://rutube.ru/video/a95bde8699b25aec908f9c143b70e74f/?r=wd

В прошлом посте мы получили данные от сервиса в формате JSON и преобразовали их в данные 1С.

2. Преобразуем JSON в структуру 1С

Но что делать если нам нужен отдельный объект, или ограниченное количество товаров, или надо добавить сортировку. У каждого API эти параметры свои, но в документации вы скорее всего увидите следующее:

https://fakestoreapi.com/products/1 - получаем товар с ID=1
https://fakestoreapi.com/products?limit=5 - выбираем 5 товаров
https://fakestoreapi.com/products?sort=desc - сортируем


На 1С это реализуется так, у объекта HTTPЗапрос надо сформировать и заполнить АдресРесурса.

В прошлых примерах мы просто передавали "products", сейчас сделаем более универсальные функции.

В функцию отправки запроса начнем передавать 2 новых параметра. У HTTPСоединение будем вызывать ВызватьHTTPМетод (Отправляет данные на указанный адрес для обработки с использованием указанного HTTP-метода). В данном методе будем теперь четко указывать "GET", "POST" и другие типы запросов.

Функция ОтправитьЗапросНаСервере(Знач HTTPМетод, Знач АдресРесурса)
...
HTTPЗапрос.АдресРесурса = АдресРесурса;

РезультатЗапроса = HTTPСоединение.ВызватьHTTPМетод(HTTPМетод, HTTPЗапрос);
...
КонецФункции


Теперь опишем функцию формирования нашего адреса. В нее передаем базовый url "products", id объекта "1", и список параметров, через структуру типа ключ-значение "limit=5" и т.п.

Создаем массив в который будем будем добавлять все параметры.

МассивПараметров = Новый Массив;


В цикле пробегаемся по всем параметрам, переданным в функцию и с помощью СтрШаблон создаем строку, которую помещаем в массив.

Для каждого Стр Из ПараметрыURL Цикл
ПараметрСтр = СтрШаблон("%1=%2", Стр.Параметр, Стр.Значение);
МассивПараметров.Добавить(ПараметрСтр);
КонецЦикла;


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

ВсеПараметрыСтр = СтрСоединить(МассивПараметров, "&"); // limit=3&sort=desc


Далее в зависимости от того переданы ID и параметры, мы формируем итоговую строку. В результате полный код будет выглядеть так.


&НаКлиенте
Функция СформироватьАдресРесурса(Знач БазовыйАдрес, Знач ID = Неопределено, Знач ПараметрыURL = Неопределено)

МассивПараметров = Новый Массив;

Для каждого Стр Из ПараметрыURL Цикл
ПараметрСтр = СтрШаблон("%1=%2", Стр.Параметр, Стр.Значение);
МассивПараметров.Добавить(ПараметрСтр);
КонецЦикла;

ВсеПараметрыСтр = СтрСоединить(МассивПараметров, "&"); // limit=3&sort=desc

Если ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(ВсеПараметрыСтр) Тогда
ИтоговыйАдрес = СтрШаблон("%1/%2?%3", БазовыйАдрес, Формат(ID, "ЧРГ=''; ЧГ=0"), ВсеПараметрыСтр); // products/1?limit=3
ИначеЕсли ЗначениеЗаполнено(ID) И НЕ ЗначениеЗаполнено(ВсеПараметрыСтр) Тогда
ИтоговыйАдрес = СтрШаблон("%1/%2", БазовыйАдрес, Формат(ID, "ЧРГ=''; ЧГ=0")); // products/1
ИначеЕсли НЕ ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(ВсеПараметрыСтр) Тогда
ИтоговыйАдрес = СтрШаблон("%1?%2", БазовыйАдрес, ВсеПараметрыСтр); // products?limit=3
Иначе
ИтоговыйАдрес = БазовыйАдрес; // products
КонецЕсли;

Возврат ИтоговыйАдрес;
КонецФункции


Обратите внимание на то как мы добавляем числовой параметр в строку, через Формат(ID, "ЧРГ=''; ЧГ=0"). Иначе мы можем получить строку такого вида "products/1 000" с пробелом между цифрами.

Осталось переписать команду ОтправитьЗапрос.

&НаКлиенте
Процедура ОтправитьЗапрос(Команда)
АдресРесурса = СформироватьАдресРесурса(Адрес, IDОбъекта, ПараметрыЗапроса);
Результат = ОтправитьЗапросНаСервере(Метод, АдресРесурса);
КонецПроцедуры


Реквизиты, которые передаем в новые функции разместим на форме.

Скачать готовую обработку

@IlyaNizamov

#1chttp #1с #1c

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

10 Sep, 08:48


Всем привет, с вами Низамов Илья. Спасибо всем, кто откликнулся на курс по ИИ. Я долго размышлял, посмотрел отзывы о разных продуктах. В итоге решил, что данный курс должен быть максимально практичным, полезным, удобным в поиске информации, доступным большой аудитории, и не быть копипастой с других курсов по ChatGPT, которых уже и так огромное количество.

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

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

И да. Никаких предоплат. Продажи курса только после полной записи всех материалов.

@IlyaNizamov

#1с #1c #chatgpt #ai #ии

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

03 Sep, 05:24


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

Я решил автоматизировать эту задачу через telegram бота.
1. В специальном боте первые сотрудники отправляют голосовые сообщения.
2. Бот в 1С получает и сохраняет эти аудио записи.
3. 1С отправляет записи в специальный локальный сервис с ИИ, написанный на python, откуда возвращается текст.

Дальше с этим текстом в 1С можно делать все что угодно. А можно раз в 5 мин собирать все кусочки текста и отправлять на обработку ChatGPT, откуда будут возвращаться уже обработанные данные, по вашему формату, допустим JSON, на основании которых можно легко создать и заполнить документ в 1С.

Проект я уже написал и хотел спросить, как лучше его оформить? Соберемся на вебинар или записать компактное обучающее видео?

@IlyaNizamov

#1с #1c #chatgpt #ai #ии

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

20 Aug, 06:47


Ребят, никогда, никогда не делайте интеграцию для Авито. Худшего формата выгрузки для интеграции и документации по этому формату я в жизни не видел.

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

@IlyaNizamov

#1с #1c

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

18 Aug, 08:22


ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL pinned Deleted message

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

15 Aug, 16:21


Перезалил курс "Разработка HTML интерфейса мобильного приложения 1С" на rutube. Курс по ссылке

@IlyaNizamov

#1с #1c #html1c

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

08 Aug, 14:43


https://rutube.ru/video/33a065c2dfc4b3166052811ccdcde7b0/?r=wd

Перезалил курс по XDTO

@IlyaNizamov

#1с #1c #xdto

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

08 Aug, 08:10


НЕ ЗАПУСКАЕТСЯ РАСШИРЕНИЕ 1С.

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

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

Копипастил я объекты из одного расширения в другое, префиксы менял, но так как работал поздно у одного справочника забыл. При этом расширение, из которого копипастил стоит в той же базе.

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

В общем будьте внимательны и делитесь в комментариях своими необычными историями. Всем удачи, пока!

@IlyaNizamov

#1с #1c #расширения1с

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

05 Aug, 18:29


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

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

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

@IlyaNizamov

#1chttp #1с #1c

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

31 Jul, 13:23


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

И вот первая модель для генерации клипов. Запилил ролик на "Дурак и молния". Пока странновато, но начало есть и думаю скоро видео сервисы будут заполнены клипами от ИИ.

@IlyaNizamov

#1с #1c #ai #ии

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

29 Jul, 19:42


Преобразуем JSON в структуру 1С

Продолжаю тему HTTP запросов в 1С. Ссылка на первый пост тут:
1. Простой HTTP запрос.

Если что-то не понятно по коду, пишите ваши вопросы в комментариях, а мы продолжаем.


Выполним небольшой рефакторинг кода (скриншот 2).
1. Создадим серверную функцию и перенесем код HTTP запроса в нее. Почему серверная? Большая часть работы с API происходит в серверном коде, плюс у нас появляются методы недоступные на клиенте.
2. С клиента только вызываем нашу серверную функцию и помещаем в переменную результат
3. Добавляем вызов функции преобразования строки в JSON, которую мы сейчас разработаем.

Создаем новую серверную функцию. Первым параметром передаем строку, полученную из тела запроса, вторым параметром указываем, что по умолчанию преобразуем в соответствие. Почему так, объясню позже.

&НаСервере
Функция ОбработатьJSON(Знач СтрокаJSON, ПрочитатьВСоответствие = Истина)
КонецФункции


Внутри функции сразу создам переменную, которую буду возвращать.

ДанныеВозврата = Неопределено;
Возврат ДанныеВозврата;


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

Попытка
Исключение
ЗаписьЖурналаРегистрации("fakestoreapi", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;


Остается только преобразовать строку в JSON. Для этого у нас есть специальный объект ЧтениеJSON. Его и создаем.

Чтение = Новый ЧтениеJSON;


Далее используем его метод УстановитьСтроку в который передаем строку.

Чтение.УстановитьСтроку(СтрокаJSON);


И в итоге используем глобальный метод ПрочитатьJSON, где первым параметром передаем наш объект ЧтениеJSON, а вторым булеву переменную ПрочитатьВСоответствие. В нашем примере ставим Ложь и получаем преобразование в структуру.

ДанныеВозврата = ПрочитатьJSON(Чтение, ПрочитатьВСоответствие);


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

Полный код видно на скриншоте, копипастим, используем, ставим лайки, репостим друзьям ) Всем удачи. Пока.

3. 1С HTTP запрос. Параметры запроса

@IlyaNizamov

#1chttp #1с #1c

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

28 Jul, 19:56


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

Пишите ваши вопросы в комментариях, постараюсь отвечать всем.

Тестировать HTTP запросы будем на вот этом API "https://fakestoreapi.com/products"

Для начала начала укажем, что мы будем делать запрос по защищенному протоколу https, если api использует http, то указывать этот параметр не надо.

SSL = Новый ЗащищенноеСоединениеOpenSSL();


Создаем HTTPСоединение в "Сервер" указываем только имя сайта или api, указывать какие-то параметры или пути после / не надо, как в этом примере /products.
Укажем "Таймаут" - 15 сек.
В "ЗащищенноеСоединение" укажем нашу переменную SSL созданную ранее, тогда 1С автоматически сделает запрос используя https.

HTTPСоединение = Новый HTTPСоединение("fakestoreapi.com",,,,, 15, SSL);


Для того чтобы прописать какие-то заголовки, пути после /, или параметры запроса, нам необходимо создать HTTPЗапрос.
В данном примере указываем только products и больше никаких /

HTTPЗапрос = Новый HTTPЗапрос;
HTTPЗапрос.АдресРесурса = "products";


Используя метод "Получить", фактически это GET запрос, с помощью HTTPСоединение получаем данные от api передав в качестве параметра HTTPЗапрос.
Результат выполнения запроса помещаем в переменную РезультатЗапроса.

РезультатЗапроса = HTTPСоединение.Получить(HTTPЗапрос);


Выполнение HTTP запроса нам в любом случае вернет HTTPОтвет.
У него есть различные методы и свойства, в данном примере мы просто получим тело в виде строки и поместим его в "Результат".

Результат = РезультатЗапроса.ПолучитьТелоКакСтроку();


{"id":1,"title":"Fjallraven - Foldsack No. 1 Backpack, Fits 15 Laptops","price":109.95,"description":"Your perfect pack for everyday use and walks in the forest. Stash your laptop (up to 15 inches) in the padded sleeve, your everyday","category":"men's clothing","image":"https://fakestoreapi.com/img/81fPKd-2AYL._AC_SL1500_.jpg","rating":{"rate":3.9,"count":120}}


Вот такую строку получим в результате. Пока это просто строка, а следующих уроках преобразуем ее в структуру и соответствие. Расскажу почему лучше использовать соответствие.

@IlyaNizamov

Читать далее "Преобразуем JSON в структуру 1С"

#1chttp #1с #1c

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

12 Jul, 08:07


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

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

2. Есть проблема в самой технологии: текущие модели пока не могут самостоятельно выстраивать архитектуру для бизнеса. Т.е вы сначала долго и упорно копаетесь в бизнес-процессах, понимаете, где и как хранятся нужные данные, выстраиваете между ними связи, и только потом можно построить экспертную систему, которая в потенциале может заменить какого-то специалиста. А как правило, вы просто можете снять с него нагрузку, а не заменить полностью. Чтобы грамотно это сделать, возвращаемся к пункту 1.

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

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

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

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

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

ИНТЕГРАЦИЯ 1С. NIZAMOV.SCHOOL

04 Jul, 10:15


ChatGPT AI Manager (Продажа окон)

Демка ии менеджера по продажам пластиковых окон

@IlyaNizamov

#chatgpt #gigachat #ai #aimanager #1с #1c

4,021

subscribers

348

photos

25

videos