TGViewer
Channel Public Channel
1С и AI, полезные инструменты и сервисы, стандарты и паттерны

1С и AI, полезные инструменты и сервисы, стандарты и паттерны

@usefultools1c

1С и AI - инструменты и сервисы, стандарты разработки и паттерны, нейронки, cursor, mcp, docker, шаблоны кода и т.д.
Обратная связь, публикации: @usefultools1c_bot
Subscribers
2.27K
Photos
69
Videos
13
Links
148

Showing posts older than #171 · Back to latest

Older Posts 19 shown
Post #170 1.47K

Forwarded from Андрей Соколов | Sokolov:Dev

Всем привет! 🖐

Продолжаем ковырять типовую конфигурацию в рубрике #ПодКапотомERP

⭐️ Начнем с общего модуля ПартнерыИКонтрагенты.
➡️ПолучитьКонтрагентаПартнераПоУмолчанию
➡️ПолучитьВсехКонтрагентовПартнера
➡️ПолучитьНижестоящихПартнеров
Все это - удобный интерфейс для манипуляций связкой Партнер - Контрагент и иерархией Партнеров.
➡️Когда-то может и "потеряшка" ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту найдет путь к своим собратьям.

⭐️ Дальше у нас РаботаСКурсамиВалютУТ
➡️ПолучитьКоэффициентПересчетаИзВалютыВВалюту
➡️ПолучитьКурсВалюты
➡️ПолучитьКоэффициентыПересчетаВалюты
➡️ПересчитатьВВалюту

Как же много "Получить" в этом посте 😁
Тем не менее, методы от этого менее полезными не становятся 🙃
➡️СформироватьСуммуПрописью - хотя я думаю, что те кто часто делают печатные формы, и так с ним уже знакомы.

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

➡️НайтиЗапросРезультата - Находит в схеме первый запрос, выбирающий результативные данные (то есть, не создающий и не уничтожающий временные таблицы).
❗️ Обратите внимание, что возвращаемое значение - Структура, описание точки схемы запроса, выбирающего данные.
Ну совершенно точно следует раскурить этот модуль целиком )

➡️УстановитьПомещениеВоВременнуюТаблицу - Устанавливает ключевое слово ПОМЕСТИТЬ и имя временной таблицы в текст запроса
➡️УстановитьИндексациюПолейЗапроса - Устанавливает индексацию в выборке
➡️УстановитьВыборкуРазрешенныхЗаписей, УстановитьВыборкуРазрешенныхЗаписейВоВсемЗапросе - Устанавливает в секцию ВЫБРАТЬ ключевое слово "РАЗРЕШЕННЫЕ"

Используйте с умом 😉

А на этом сегодня все 🤘

Знали про эти методы или пишете свои?
👍 - узнали что-то новое
🤝 - не в этот раз
🔥 - у меня свой велопарк, зато без "Получить" без именах методов
  • 👍 20
  • 🤔 2
Post #169 1.61K

Forwarded from Валерий Бобров | IT и технологии

Ввожу небольшую рубрику — База по AI ✍️

Первой темой будет MCP и MCP серверы:

MCP (Model Context Protocol) — это open-source стандарт, который позволяет приложениям с LLM "общаться" с внешними приложениями 📞

Приложение с LLM по MCP обращается к специальному серверу, который в свою очередь будет обращаться к какому-то внешнему приложению. Это и есть MCP-сервер. У MCP-серверов есть 3 возможности:

⚙️ Инструменты (tools) — с их помощью LLM может вызвать API методы приложений или выполнить какой-нибудь код. То есть отдельный tool — отдельный сценарий действий;

ℹ️ Ресурсы (resources) — получение пассивных данных, тут доступно только чтение. Например чтение одного лог файла;

💬 Промпты (prompts) — предварительно созданные шаблоны инструкций, указывающие модели, как работать с конкретными инструментами и ресурсами.

Во время общения пользователя с LLM приложением, которое подключено к такому MCP-серверу, LLM будет получать, помимо промпта пользователя, информацию о всех доступных tools, resources и prompts и будет вкурсе всех возможностей, которые сможет сделать.

Этот подход унифицирует подключение приложений с LLM или AI-клиентов к внешним системам. С MCP делаешь один сервер, и он может работать с разными клиентами.

Разберем пример:

Пользователь обращается к привычному LLM чату в интернете и говорит — "Поставь встречу с клиентом на завтра в 5 часов вечера" 👨‍💻

LLM чат без MCP сервера придумает какой-то ответ, может сохранить это только в рамках диалога, но ничего фактически не сделает ☝️

LLM чат, подключенный к MCP серверу для Google календаря, дополнительно к вопросу пользователя получит от MCP сервера такой блок текста:
[MCP контекст от сервера "gcal-mcp"]

TOOLS:
1) calendar.check_free
Что делает: проверяет, свободно ли время.
Вход: date, time_from, time_to

2) calendar.create_event
Что делает: создает событие в календаре.
Вход: title, date, time_from, time_to

RESOURCES (read-only):
- calendar.timezone
Что это: таймзона пользователя (например, Irkutsk)

PROMPTS:
- prompt: schedule_meeting
Инструкция модели:
1) Возьми timezone из ресурса calendar.timezone.
2) Если длительность не указана — ставь 30 минут.
3) Сначала проверь свободно ли через calendar.check_free.
4) Если свободно — создай событие через calendar.create_event.
5) Если занято — попроси пользователя выбрать другое время


И имея такой контекст LLM сделает следующее:
1️⃣читает ресурс calendar.timezone → "Irkutsk"

2️⃣интерпретирует запрос:
- завтра = (конкретная дата в Irkutsk)
- 17:00
- длительность не указана → 30 минут → 17:00–17:30


3️⃣ вызывает tool calendar.check_free:
calendar.check_free(date=завтра, time_from=17:00, time_to=17:30)

MCP-сервер → ответ:
free=true


4️⃣ вызывает tool calendar.create_event:
calendar.create_event(
title="Встреча с клиентом",
date=завтра,
time_from=17:00,
time_to=17:30,
)

MCP-сервер → ответ: created=true

LLM → финальный ответ пользователю:
"Готово! Поставил встречу на завтра с 17:00 до 17:30."


И в итоге получаем ответ + действие в реальном мире. Пользователь доволен 😃

Например уже сейчас, при помощи расширения от Владимира Харина можно превратить свою 1С в один большой MCP сервер, при помощи стороннего прокси, которое будет вызывать tools прямо внутри вашей 1С и делать всё что нужно в рамках вашей конфигурации!

А по MCP советую изучить официальную документацию 👀

Если вы хотите посмотреть какие вообще существуют MCP сервера для 1С и что они делают, мы с командой BenchLabs добавили новый раздел с MCP серверами на наш сайт и собрали для вас 18 MCP серверов в удобном месте, смотрите подробнее в группе нашего проекта:

Пост с 18 MCP серверами для 1С 😍
➡️ Уже тут

Новый раздел на сайте 🖥
➡️ https://benchlabs.ru/mcp-servers
  • 👍 13
Post #168 1.37K

Forwarded from 1Cnik

🧩 Визуальная шпаргалка по выбору модуля для размещения кода

Часто ли вы задумываетесь: в каком модуле лучше разместить этот кусочек кода? Чтобы не гадать, следуйте золотому правилу размещения кода: стандарту 486. Более подробно про модули можно почитать в методических рекомендациях ИТС:
🔘Программные модули в 1С:8
Или в статье на IS:
🔘Модули платформы 1С

Пруф: myblog-1c.ru

#НачинающимНаЗаметку #Практика1С
  • 👍 17
Post #167 1.7K

Forwarded from Стандарты 1С v8std

Обращения к виртуальным таблицам

🟡Все условия, относящиеся к виртуальной таблице, передавайте в ее параметры, а не в ГДЕ.

🟡Так СУБД быстрее выберет план и не обработает лишние записи.

🟡В параметрах используйте простые условия вида Измерение = Значение.

🟡Подзапросы и соединения в параметрах — только в исключениях и по строгим правилам.

🟡Если условий с подзапросами много — оставьте одно самое фильтрующее, остальные перенесите наружу или используйте временную таблицу.

#std657
https://v8std.ru/std/657/
  • 👍 9
Post #166 1.68K

Forwarded from Дмитрий Сидоренко: Мысли вслух

#ИИ #Халява
Сегодня меня угостили вот такой вещицей. Проверил, делюсь.

Google дарит месяц бесплатной подписки Gemini Enterprise!

Что в плюсах:
До 10 видео в день через Veo 3.
Собственный ИИ‑агент: пишет тексты в стиле вашего бренда.
Deep Research: 200 отчётов/день (вместо 5–20 в месяц на стандартных тарифах!).
Увеличенное контекстное окно модели.

Регистрация тут

Работает без карты и лишних телодвижений!

П.С. Из РФ не работает.
  • 👍 1
Post #165 1.69K

Forwarded from 1С:Борщ🥘

Кстати, к вопросу последовательности работы обработчиков записи объекта, у меня есть хорошая картинка, которая наглядно это все описывает🔥
  • 👍 18
Post #163 2.17K

Forwarded from Игорь Апресов | Radio Ingvar

🔖АНГЕЛЫ И ДЕМОНЫ КОДА. РЕВЬЮ В ПРЯМОМ ЭФИРЕ
3 февр. 2026 г.

Публичное ревью готового решения без скидок на опыт и «ну в целом нормально».

Разберём:
- качество кода
- архитектурные решения
- удобство интерфейса
- типичные ошибки, которые все делают и зря

Приглашённый гость: Дмитрий Базенков
- эксперт по UI/UX, руководитель разработки, куратор и наставник.

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

📺 https://www.youtube.com/live/U7tO7HDqYr4
  • 👍 3
  • 👎 1
Post #162 1.59K

Forwarded from Стандарты 1С v8std

Правила создания модулей форм

🟡В модуле формы держите только код, который работает именно в контексте этой формы.

🟡Не делайте экспорт в форме: публичный интерфейс — в общих модулях и модулях объектов/менеджеров.

🟡Параметры формы передавайте через ОткрытьФорму, результат — через оповещения, не через экспортные методы.

🟡Для обновления данных формы используйте Оповестить и стандартные обработчики.

🟡Если логика нужна и на клиенте, и на сервере — делайте одну процедуру &НаКлиентеНаСервереБезКонтекста и передавайте контекст параметром.

#std630
https://v8std.ru/std/630/
Стандарты разработки 1С Правила создания модулей форм #std630 Размещайте в модуле формы только код, который нужен для работы этой формы и выполняется в ее контексте.
  • 👍 9
Post #161 1.38K

Forwarded from Иосиф Правец: ИТ-дневник

Среда — это маленькая пятница.

А значит, это время для маленького релиза и поста про Docker и EDT. 😎

Мне тут потребовался образ EDT 2025 для моего CI-контура. Пришлось немного допилить напильником onec-images, чтобы закрыть этот вопрос.

Как всегда, не обошлось без "радости". Начиная с 2025-й версии EDT, вендор решил укомплектовывать дистрибутив java-машиной, чтобы на ней и запускать EDT.

Я на радостях заменил базовый образ с temurin-17 на ubuntu-24.04 и... получил бибу. EDT и edtcli в образе как бы запускаются, но как бы не работают. edtcli вообще молча не работала, а EDT выдала сообщение, что не нашла java-машину по пути /opt/1C/1CE/components/1c-edt-2025.1.5+34-x86_64/jre/. А установщик поставил её по пути /opt/1C/1CE/components/axiom-jdk-full-17.0.16+12-x86_64/.

А симлинк? Да нафиг он нужен, раз ты осмелился использовать Linux, то симлинк как-нибудь сам сообразишь сделать, чо как маленький? 😂
Главный девиз 1С и ИТ в целом ведь помните?

В общем, после всех правок образ успешно собрался и даже прошёл тесты (коих, конечно, мало, но это всё, что у меня есть).

Кстати, в целом в EDT 2025 есть и другие важные изменения:
🛑собственно, переход на встроенную java-машину, о которой я написал выше;
🛑полностью упразднён и выпилен ring;
🛑в edtcli добавлена команда version, благодаря которой теперь есть тест, проверяющий версию установленной EDT.

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

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


P.S. Ну и если я какой-то текст до конца дочитываю, то никогда не обломаюсь поставить свой царский лайк, а, возможно, даже подпишусь на автора
  • 👍 14
Post #159 1.72K

Forwarded from Андрей Соколов | Sokolov:Dev

Всем привет! 🖐
Пока лонгриды пишутся (и удаляются), запускаю рубрику #ПодКапотомERP.
В ней посмотрим как на программный интерфейс, так и на некоторые механизмы флагманского решения: какие инструменты уже лежат в коробке, чтобы не изобретать велосипеды.

На «операционном столе» - ERP 2.5.22.132, первым обследуем программный интерфейс модуля ОбщегоНазначенияУТ.

Вокруг него есть загадка: переедут ли эти методы в БСП или так и останутся жить в ERP?
Спойлер: никто не знает. Но пользоваться ими можно уже здесь и сейчас.

Мой топ методов:

➡️СоответствиеМассивовПоТипамОбъектов
Сборная солянка в документах-основаниях? Привет, Транспортная накладная 👋.
Метод раскладывает массив ссылок по полочкам (типам). Крайне удобно, чтобы собрать динамический запрос. Привет стандарту 437!

➡️ПерваяСтрокаРезультатаЗапросаВСтруктуру
Маст-хэв. Серьезно. Имя метода говорит сама за себя

➡️ОписаниеТиповПоТипу
Возвращает описание типов по переданному типу. Хорош, если не пользуетесь Конструктором описания типов

➡️ЗначенияРеквизитовОбъектаПоУмолчанию
Если переданная ссылка пустая - вернет значение по умолчанию для этого типа.
⚠️ Нюанс: С составными полями магии не ждите, возвращает Неопределено.

➡️ЗначениеРеквизитаОбъектаТипаБулево
Если значение имеет тип, отличный от Булево - вернет Ложь.

➡️Пауза
Да, да, пауза! 🥲
⚠️ Важно: Использовать только в фоновом задании.

➡️СравнитьТаблицыЗначений
Сравнивает две ТЗ построчно, как отдельно по колонкам, там и по ее содержимому.

➡️МассивВТаблицуЗначений
Все знают про ТаблицаЗначенийВМассив из ОбщегоНазначения, но не про обратную конвертацию. может и не надо? 😁
⚠️ Важно: Метод типизирует колонки по типам в первой структуре массива.

➡️НайтиИУдалитьСтрокиТаблицыЗначений и УдалитьСтрокиТаблицы
Удобный интерфейс для удаления строк в ТЗ.
Но не забывайте, что оптимальный способ удаления зависит от объема удаляемых строк, подробности - тут.

➡️МассивДатИзПериода и РазностьДат
Вернут массив дней в период / разницу между двумя датами

➡️КлючКоллекцииПоЗначению, ПоменятьКлючИЗначениеКоллекции
При "жонглировании" структурами / соответствиями

Конечно, помимо ОбщегоНазначенияУТ есть клиентский и клиент-серверный модули.
Так например, в ОбщегоНазначенияУТКлиентСервер есть раздел ПреобразованиеТиповДанных для работы с массивами, структурами и прочими типами.
Загляните внутрь, прежде чем писать очередной "Универсальный механизм". Возможно, 1С это уже написала за вас.

Знали про эти методы или пишете свои?
👍 - узнали что-то новое
🤝 - не в этот раз
🔥 - пишу свои велосипеды, так надежнее
  • 👍 48
Post #150 2.9K
Post #149 2.72K

Forwarded from Андрей Соколов | Sokolov:Dev

Начинаем продолжать продолжаем начинать про горячие клавиши.
Тема старая (навигация) - клавиши новые 🙃

1. Перейти к объявлению » F12
Это - база :) Стоите на названии переменной или вызове функции - нажали F12 - вы на месте объявления. Работает везде (нет): переменные, методы.

2. Возврат к месту перехода » Ctrl + -
Перешли по F12 на три уровня и хотите обратно? Эта комбинация возвращает вас туда, откуда вы пришли.

3. Сворачивание и разворачивание групп
Когда блоков кода много и нужна панорама. На цифровой клавиатуре:

Свернуть одну группу » Ctrl + Num -
Развернуть одну группу » Ctrl + Num +
Свернуть все сразу » Ctrl + Shift + Num -
Развернуть все сразу » Ctrl + Shift + Num +

4. Обновить группировки » Ctrl + Shift + R
Если структура свёртывания поехала или сломалась после редактирования кода.
Кстати, знаю как это сделать комбинацией, но не знаю где команда в меню 😁

5. Навигация по "операторным скобкам"
Встаньте на открывающей конструкции условия или цикла - нажмите Ctrl + ] - перемещаетесь на закрывающую. И наоборот.

Перейти на закрывающую скобку » Ctrl + ]
Перейти на открывающую скобку » Ctrl + [

(операторная скобка = Если/КонецЕсли и т.д.)

6. Список процедур и функций модуля » Ctrl + Alt + P
Быстрый переход по методам в текущем модуле.
Там и поиск работает 😉

7. В конец строки » End
Не так нужна сама по себе, но в комбинации End + Enter заменяет отсутсвующую комбинацию Ctrl + Enter, доступную в других IDE

👍 - если узнали что-то новое
🤝 - если не в этот раз
🔥 - используешь хоткеи только чтобы переключать окна, когда заходит начальник

#1C_Shortcuts
  • 👍 36
Post #147 1.7K

Forwarded from Иосиф Правец: ИТ-дневник

Давно у меня не было постов про EDT.

А сегодня как раз случился подходящий повод.

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

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

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

Всё, что требуется:

🛑Проект текущей версии расширения вендора
🛑Проект новой версии расширения вендора
🛑Ваш проект, в котором есть это расширение

Ну а далее стандартное "Сравнить/объединить", указываем путь к новой версии, включаем использование общего предка и указываем путь к текущей версии расширения - и в путь.

Далее (как показывает моя двухлетняя практика) всё в автоматическом режиме корректно объединяется, нужно просто на всякий случай проверить результат и завершить процесс объединения.

По-моему это великолепно. Сложно оценить, сколько времени и нервов мне сэкономила эта фича EDT.

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


P.S. Ну и если я какой-то текст до конца дочитываю, то никогда не обломаюсь поставить свой царский лайк, а, возможно, даже подпишусь на автора
  • 👍 25
Post #146 1.62K

Forwarded from 1Cnik

🔌 Схема порядка событий, регистрируемых в ТЖ

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

Чтобы не искать в сети инфу по событиям ТЖ, когда он понадобиться, добавляйте наглядную схему в свой инструментарий:
📎 Формат на языке разметки (в виде диаграммы, авторский)
📎 Формат PDF (немного сжал авторский вариант)

Пруф: wiki 1C

Полезное по теме:
▪️Описание почти всех событий технологического журнала
▪️Пост про то как с помощью Технологического Журнала пофиксить проблемы ненормального поведения платформы.

#Практика1С
  • 👍 12
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →