Стандарты 1С v8std
2.57K subscribers
22 photos
6 videos
1 file
147 links
Download Telegram
Поиск в коллекциях значений

🟡 Для НайтиСтроки() список полей индекса должен точно совпадать со списком полей в структуре поиска (порядок полей не важен).

🟡 В этих вариантах поиск обычно выполняется за константное время, а в массиве — перебором, то есть пропорционально числу элементов.

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

🟡 Если поля не совпадают, индекс не используется и выполняется полный перебор.

#std452
https://v8std.ru/std/452/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍9
Округление результатов арифметических операций в запросах

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

🟡 При арифметических операциях в запросах платформа обычно поддерживает точность до 8 знаков после запятой.

🟡 Но из-за особенностей разных СУБД реальная точность может отличаться.

🟡 ВЫРАЗИТЬ применяйте к операндам, если на какой-то СУБД точность недостаточна.

#std535
https://v8std.ru/std/535/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6
Доступ к файловой системе из кода конфигурации

🟡 Если один и тот же файл обрабатывается и на клиенте, и на сервере, передавайте его через временное хранилище.

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

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

🟡 Если конфигурация использует БСП, для транслитерации имен файлов применяйте СтроковыеФункцииКлиентСервер.СтрокаЛатиницей().

#std542
https://v8std.ru/std/542/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10
Поставка международной версии конфигурации

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

🟡 В алгоритмах, где нужно дополнить или переопределить поведение, делайте вызов в эти модули.

🟡 В международной поставке модули с постфиксом Локализация не должны содержать прикладной код.

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

#std769
https://v8std.ru/std/769/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3
Несущественные предупреждения проверки конфигурации

🟡 В регламентной проверке конфигурации обычно не включайте флажок Поиск использования синхронных вызовов.

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

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

🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.

#std759
https://v8std.ru/std/759/
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤3👍3
Определение типа значения переменной

🟡 Определяйте тип значения сравнением с типом, а не косвенными проверками.

🟡 Закрепите ключевые правила стандарта «Определение типа значения переменной» в code review и внутренних чек-листах.

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

🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.

#std442
https://v8std.ru/std/442/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4❤‍🔥3
Использование предопределенных элементов

🟡 При использовании подсистемы Обмен данными БСП версии 2.1.4 и выше требования 1 и 2 снимаются.

🟡 Если не учитывать отсутствие такого элемента, обращение из кода или запроса вызовет исключение.

🟡 При использовании БСП версии 2.1.4 и выше применяйте функцию ПредопределенныйЭлемент() общих модулей ОбщегоНазначения или ОбщегоНазначенияКлиент.

🟡 В логике загрузки данных из главного узла (обработчик ПриПолученииДанныхОтГлавного, правила регистрации объектов) избегайте обращений к предопределенным элементам.

#std697
https://v8std.ru/std/697/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4❤1
Ограничения на регламентные задания при работе в модели сервиса

🟡 Исключить это задание из состава общих реквизитов, разделяющих данные.

🟡 Исключить добавленное задание из состава общих реквизитов, разделяющих данные.

🟡 Для управления заданиями используйте программный интерфейс БСП из модуля РегламентныеЗаданияСервер.

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

#std760
https://v8std.ru/std/760/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2
Вычисление количества записей в запросах

🟡 При вычислении количества записей в запросе всегда используйте функцию КОЛИЧЕСТВО, а не СУММА.

🟡 Иначе при количестве записей 10 млн и более возможно переполнение, связанное с разрядностью чисел по умолчанию, используемых СУБД платформой 1С:Предприятие.

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

🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.

#std787
https://v8std.ru/std/787/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍9✍1
Установка прав для новых объектов и полей объектов

🟡 При разработке ролей выбирайте методику установки прав, которая не допускает появления ролей с доступом к полям объекта без доступа к самому объекту.

🟡 При добавлении новых объектов или новых полей существующих объектов обязательно настраивайте права на них в соответствующих ролях.

🟡 [ ] Независимые права подчиненных объектов должен быть снят.

🟡 [x] Устанавливать права для новых объектов должен быть установлен только у роли ПолныеПрава.

#std532
https://v8std.ru/std/532/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍8
Особенности сортировки в таблице значений

🟡 Если таблица значений сортируется по колонкам со ссылочными значениями, учитывайте: для каждой такой колонки по всем строкам система получает представление ссылки из информационной базы.

🟡 Для этого в метод Сортировать() передавайте объект СравнениеЗначений.

🟡 Это особенно важно для таблиц с сотнями и тысячами строк, когда алгоритм критичен ко времени выполнения.

🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.

#std781
https://v8std.ru/std/781/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍6
https://ai.v8std.ru/mcp временно работает не стабильно
пришло очень много новых пользователей

Выделяем отдельные ресурсы перенастраиваем систему
Как заработает сообщу дополнительно.
❤8🔥5👍3
Починили MCP v8std 🎉

Нашли причину ошибок 500: долгоживущие подключения кодовых агентов забивали лимит nginx — 768 соединений на рабочий процесс оказалось недостаточно.

Отключили лишние постоянные каналы, настроили завершение старых процессов и подняли лимит до 4096 соединений — больше чем в пять раз.

За первые 14 минут после восстановления — 1138 запросов и ни одной серверной ошибки.

4096 соединений нельзя приравнять к 4096 пользователям: один агент может занимать несколько. Предел по одновременно работающим агентам ещё предстоит подтвердить нагрузочным тестом.
🔥31👍6🎉4
Мне уже несколько человек написали что ставить v8std локально и MCP к нему тяжело.

Планирую переработать схему - будет просто mcp в каталоге docker. Ставиться одной кнопкой в докер десктоп.

Если тебе это нужно поставь 🔥
🔥111🤷‍♂2
Использование привилегированного режима

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

🟡 Так проверка прав на запись требуется только для регистратора.

🟡 Чтение/запись в такие регистры выполняйте только в привилегированном режиме.

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

#std485
https://v8std.ru/std/485/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤2
Настройка расписания регламентных заданий

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

🟡 Учитывайте, что слишком частый запуск может негативно влиять на производительность сервера 1С:Предприятие.

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

🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.

#std402
https://v8std.ru/std/402/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Копирование строк между таблицами значений (табличными частями и т.п.) произвольной структуры

🟡 При копировании строк между разными таблицами значений (табличными частями и т.п.) со схожим составом колонок используйте метод глобального контекста ЗаполнитьЗначенияСвойств().

🟡 Такой алгоритм заметно эффективнее, чем многократный перебор колонок для определения состава таблиц.

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

🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.

#std448
https://v8std.ru/std/448/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Обновили MCP v8std и упростили локальный запуск.

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

Использовать публичный сервер:
• Просто подключите в кодовам агенте MCP по адресу

https://ai.v8std.ru/mcp


Для локальной работы — два Docker Compose-файла:
- Только MCP — скачивает индекс с публичного сервера, ссылки ведут на v8std.ru.
- Сайт + MCP — использует локальный индекс и локальные страницы. Все данные полностью остаются в закрытом вашем контуре. После скачивания образов работает без интернета.

Готовые Docker-образы сайта и MCP теперь публикуем в GHCR для amd64 и arm64. Собирать из исходников не нужно.

Compose-файлы и команды запуска →
🔥19🥰5👏5🙏2😢1
Стандарты 1С v8std
Мне уже несколько человек написали что ставить v8std локально и MCP к нему тяжело. Планирую переработать схему - будет просто mcp в каталоге docker. Ставиться одной кнопкой в докер десктоп. Если тебе это нужно поставь 🔥
Сказано - сделано. По эмодзи хорошо видно что тема ИИ и MCP интересна.

Потому я хочу поделиться двумя материалами:
• Я делаю Unica - плагин для Claude Code и Codex - почитать можно тут https://ingvarconsulting.github.io/unica/index.html, телеграм канал @unica_ai (MCP стандартов разработки в Юнику включен)
• В Петербурге организовывали Кунг-фу митап на прошлой неделе на площадке Selectel по теме ИИ как вводная + практика с Юникой. Запись https://kinescope.io/0cDWthipGCB8qVvuriEWP7 а телеграм канал наших митапов @kungfu_conf
👍19🔥8❤2
Самодостаточность регистров

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

🟡 Для работы должно быть достаточно данных самого регистра.

🟡 Любая логика по данным регистра и любые отчеты по нему не должны обращаться к полям регистратора.

🟡 Кроме того, в распределенной информационной базе регистратора может не быть: движения регистров могут мигрировать между узлами, а регистраторы - нет.

#std477
https://v8std.ru/std/477/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤8
Псевдонимы источников данных в запросах

🟡 Для универсальных механизмов, работающих с произвольными таблицами, допустимы универсальные псевдонимы.

🟡 Закрепите ключевые правила стандарта «Псевдонимы источников данных в запросах» в code review и внутренних чек-листах.

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

🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.

#std758
https://v8std.ru/std/758/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1