Особенности разработки конфигураций для ОС Linux и macOS
🟡 Используйте кроссплатформенные средства платформы для работы с файловой системой.
🟡 Для ключевых функций прикладного решения используйте кроссплатформенные механизмы платформы.
🟡 Если применяется БСП, используйте функции модулей ОбщегоНазначения и ОбщегоНазначенияКлиент.
🟡 В большинстве случаев платформа сама обеспечивает кроссплатформенную работу клиентского и серверного кода.
#std723
https://v8std.ru/std/723/
#std723
https://v8std.ru/std/723/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Особенности разработки конфигураций для ОС Linux и macOS #std723
В большинстве случаев платформа сама обеспечивает кроссплатформенную работу клиентского и серверного кода.
1👍11👌1
Использование значений, влияющих на поведение клиентского приложения
🟡 Если от значения зависит поведение команд или большого числа форм, используйте подход с общим модулем и кешированием на сеанс.
🟡 Если данные влияют только на одну форму или небольшой набор форм, храните их в реквизитах формы и получайте в ПриСозданииНаСервере.
🟡 Такой подход применяйте, когда изменение этих значений в течение сеанса некритично, и в рамках сеанса можно использовать один раз полученное значение.
🟡 Ограничивайте применение клиентских модулей с повторным использованием возвращаемых значений.
#std459
https://v8std.ru/std/459/
#std459
https://v8std.ru/std/459/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Использование значений, влияющих на поведение клиентского приложения #std459
Если поведение многих форм или команд зависит от одних и тех же значений, для минимизации клиент-серверного взаимодействия используйте #std724: общие модули с повторным...
1🔥8❤1
Несоответствие индексов и условий запроса
🟡 Проверяйте, что для всех условий запроса есть подходящие индексы.
🟡 Если между используемыми полями есть пропуски, индекс применяется только частично.
🟡 Реквизиты справочников и документов рекомендуется индексировать с дополнительным упорядочиванием.
#std652
https://v8std.ru/std/652/
#std652
https://v8std.ru/std/652/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Несоответствие индексов и условий запроса #std652
Проверяйте, что для всех условий запроса есть подходящие индексы.
1🤔5❤2👍2🔥2👌1
Режим разделения итогов для регистров накопления
🟡 При проектировании регистра накопления учитывайте, что остатки по одному набору измерений хранятся в одном ресурсе.
🟡 Если включить разделение итогов, обе записи смогут выполняться параллельно даже при совпадении строк по измерениям.
🟡 Но при включенном контроле остатков разделение итогов не даст ожидаемого прироста, и контроль остатков нужно переносить к концу транзакции.
#std664
https://v8std.ru/std/664/
#std664
https://v8std.ru/std/664/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Режим разделения итогов для регистров накопления #std664
При проектировании регистра накопления учитывайте, что остатки по одному набору измерений хранятся в одном ресурсе.
1👌3
Разработка ролей в библиотеках
🟡 В большинстве случаев библиотека должна поставлять готовый набор ролей для работы со своими данными (справочники, регистры и т.п.).
🟡 В ролях допустимо задавать не только права к объектам, но и ограничения доступа на уровне записей (RLS).
🟡 Если для библиотечных ролей используются правила поставки, для всех ролей задавайте правило Изменения разрешены.
#std668
https://v8std.ru/std/668/
#std668
https://v8std.ru/std/668/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Разработка ролей в библиотеках #std668
При проектировании ролей в библиотеках придерживайтесь общего подхода к границам функциональности библиотеки:
1👍13👌2
Дополнительные индексы
🟡 Не понятно зачем нужен этот пункт "подстилка", ведь для того чтобы не исполнить стандарт разрешение стандарта не нужно :).
🟡 Для таблиц до 1 млн записей должно работать быстро без доп.
🟡 Не делайте несколько веток кода в зависимости от использования доп.
🟡 Для больших таблиц - производительность должна гарантироваться доп.
#std791
https://v8std.ru/std/791/
#std791
https://v8std.ru/std/791/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Дополнительные индексы #std791
Дополнительный индекс – это индекс сразу по нескольким полям объекта метаданных.
1👍5❤2😁1🤮1👌1🤣1
Уточнение сущности объекта метаданных
🟡 Для уточнения сущности объекта используйте отдельные реквизиты, которые явно задают вид или состояние.
🟡 В справочнике Организации использовать только реквизит ГоловнаяОрганизация и по его заполненности определять вид организации: «обычная» или обособленное подразделение.
🟡 Используйте разные типы объектов метаданных для разных сущностей.
🟡 Если у сущности несколько состояний, не заводите несколько булевых реквизитов для каждого состояния.
#std541
https://v8std.ru/std/541/
#std541
https://v8std.ru/std/541/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Уточнение сущности объекта метаданных #std541
Используйте разные типы объектов метаданных для разных сущностей. Например, сущность «организация» описывайте справочником Организации, а сущность «подразделение» - отдельным...
1👍4❤1🥰1😁1
Подсказка и проверка заполнения
🟡 Для документа Заказ клиента реквизит Клиент и табличная часть Товары должны быть обязательными.
🟡 Если хотя бы один сценарий требует обязательного заполнения, ставьте Проверка заполнения = Выдавать ошибку.
🟡 Если проверка заполнения зависит от условий, управляйте автопометкой незаполненного значения через условное оформление формы.
🟡 Для типизированных объектов метаданных, стандартных реквизитов и табличных частей, которые обязательны по логике объекта, устанавливайте свойство Проверка заполнения = Выдавать ошибку.
#std478
https://v8std.ru/std/478/
#std478
https://v8std.ru/std/478/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Подсказка и проверка заполнения #std478
Свойство Подсказка задавайте только для тех реквизитов и объектов, которые пользователь видит в интерфейсе и для которых действительно нужно пояснение.
1🔥5
Использование реквизитов строкового типа
🟡 Для реквизитов строкового типа используйте переменную длину строки: Допустимая длина = Переменная.
🟡 Если используются строковые реквизиты неограниченной длины, учитывайте ограничения языка запросов.
#std432
https://v8std.ru/std/432/
#std432
https://v8std.ru/std/432/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Использование реквизитов строкового типа #std432
Для реквизитов строкового типа используйте переменную длину строки: Допустимая длина = Переменная.
1🤔9🔥2
Требования к установке и обновлению прикладных решений
🟡 В каталоге версии вместо точек должны использоваться подчеркивания.
🟡 В строке Catalog файла-манифеста, в наименование шаблона конфигурации (часть значения до символа «/») следует включать в явном виде название разработчика.
#std731
https://v8std.ru/std/731/
#std731
https://v8std.ru/std/731/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Требования к установке и обновлению прикладных решений #std731
Подготовка дистрибутивов установки и обновления прикладных решений (конфигураций) системы 1С:Предприятие 8 должна выполняться в соответствии с рекомендациями, изложенными в главе...
1🔥8❤4👍3
Forwarded from Игорь Апресов | Radio Ingvar
Обратите внимание на проект
https://github.com/itrous/bsl-analyzer
Это LSP сервер по мотивам BSL LS написанный на расте, по примеру rust-analyzer.
Конфиг BSL LS зачитыаается для обратной совместимости.
Под капотом MCP CLI и LSP сразу.
Еще есть HIR, Salsa, cfg и dfg при этом: AST представляется в универсальном формате и динамически пересчитывается вместе с гарафами потока управления и потока данных при редактировании кода.
На УТ:
2.6x быстрее
2.9x меньше памяти
Работает только с форматом xml конфигуратора.
Самое время ковырять!
https://github.com/itrous/bsl-analyzer
Это LSP сервер по мотивам BSL LS написанный на расте, по примеру rust-analyzer.
Конфиг BSL LS зачитыаается для обратной совместимости.
Под капотом MCP CLI и LSP сразу.
Еще есть HIR, Salsa, cfg и dfg при этом: AST представляется в универсальном формате и динамически пересчитывается вместе с гарафами потока управления и потока данных при редактировании кода.
На УТ:
2.6x быстрее
2.9x меньше памяти
Работает только с форматом xml конфигуратора.
Самое время ковырять!
GitHub
GitHub - itrous/bsl-analyzer: Анализатор кода BSL (1С:Предприятие) с поддержкой LSP. Написан на Rust.
Анализатор кода BSL (1С:Предприятие) с поддержкой LSP. Написан на Rust. - itrous/bsl-analyzer
1👍15🔥7❤3👎2
Обеспечение совместимости библиотек
🟡 Размещайте программный интерфейс библиотеки только в общих модулях, а не в модулях объектов, менеджеров, наборов записей и т.п.
🟡 В документации к «концу года» отмечайте, что версия обязательна для перехода, чтобы гарантировать перенос или очистку данных для реструктуризации.
🟡 Если нужно пересмотреть состав параметров, используйте опциональные параметры и добавляйте их в конец списка.
🟡 Если интерфейс и служебная реализация разнесены по разным модулям, для служебного модуля используйте постфикс Служебный (Internal).
#std644
https://v8std.ru/std/644/
#std644
https://v8std.ru/std/644/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Обеспечение совместимости библиотек #std644
При разработке библиотек обеспечивайте обратную совместимость между версиями в пределах одной #std483: подредакции.
1👍11🔥1
Упорядочивание результатов запроса
🟡 Если алгоритм обработки зависит от порядка записей или результат показывается пользователю, в тексте запроса следует использовать УПОРЯДОЧИТЬ ПО.
🟡 Если используется РАЗЛИЧНЫЕ, сортируйте только по полям, включенным в ВЫБРАТЬ.
🟡 В остальных случаях АВТОУПОРЯДОЧИВАНИЕ также не рекомендуется, так как разработчик не контролирует поля сортировки.
🟡 Причины использования АВТОУПОРЯДОЧИВАНИЕ нужно указывать в комментарии непосредственно перед текстом запроса.
#std412
https://v8std.ru/std/412/
#std412
https://v8std.ru/std/412/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Упорядочивание результатов запроса #std412
Если алгоритм обработки зависит от порядка записей или результат показывается пользователю, в тексте запроса следует использовать УПОРЯДОЧИТЬ ПО.
1👍15🔥3
Использование управляемого режима блокировки
🟡 В конфигурациях следует использовать управляемый режим блокировок (свойство конфигурации Режим управления блокировкой данных устанавливается в значение Управляемый) и учитывать его особенности.
🟡 Они связаны с особенностями механизмов блокировок в самой СУБД и с тем, что СУБД не учитывает физический смысл и структуру объектов метаданных 1С:Предприятия.
🟡 Одновременно могут возникать избыточные блокировки на уровне СУБД.
🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.
#std460
https://v8std.ru/std/460/
#std460
https://v8std.ru/std/460/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Использование управляемого режима блокировки #std460
В конфигурациях следует использовать управляемый режим блокировок (свойство конфигурации Режим управления блокировкой данных устанавливается в значение Управляемый) и учитывать его...
1❤🔥8🔥5👍3
Обработчик события ОбработкаЗаполнения
🟡 Если нужно ограничить ввод по команде Создать на основании, выполняйте проверку в обработчике ОбработкаЗаполнения модуля объекта (или набора записей).
🟡 Не выносите такую проверку в отдельные команды ввода на основании и их обработчики.
🟡 При возможности используйте свойство метаданных Значение заполнения.
🟡 Сначала выполняйте специальное заполнение в зависимости от типа ДанныеЗаполнения.
#std396
https://v8std.ru/std/396/
#std396
https://v8std.ru/std/396/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Обработчик события ОбработкаЗаполнения #std396
Если нужно ограничить ввод по команде Создать на основании, выполняйте проверку в обработчике ОбработкаЗаполнения модуля объекта (или набора записей).
1👍15❤1
Проверка прав доступа
🟡 Если роль не дает прав на объекты метаданных и служит только маркером дополнительного права, используйте РольДоступна.
🟡 Не используйте ролевую настройку видимости в командном интерфейсе конфигурации, интерфейсе основного раздела и рабочей области начальной страницы.
🟡 Такой подход повышает устойчивость кода к пересмотру состава ролей.
#std737
https://v8std.ru/std/737/
#std737
https://v8std.ru/std/737/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Проверка прав доступа #std737
Если в конфигурации много ролей (от нескольких десятков), не используйте ролевую настройку видимости в элементах форм:
1🔥8👍6💯3❤1
Forwarded from Игорь Апресов | Radio Ingvar
v8std-search-benchmark-results.pdf
119.9 KB
https://v8std.ru/mcp/
Я тут докрутил mcp к базе стандартов.
Можно локально у себя поднять можно готовый подключить.
Он по фрагменту кода находит применимые к нему стандарты
Получает стандарты в маркдауне чистом виде
По коду диагностик апк бсл и едт находит описание диагностики и пункт стандарта.
Ну и просто умеет искать по произвольным фразам стандарты)
Я тут докрутил mcp к базе стандартов.
Можно локально у себя поднять можно готовый подключить.
Он по фрагменту кода находит применимые к нему стандарты
Получает стандарты в маркдауне чистом виде
По коду диагностик апк бсл и едт находит описание диагностики и пункт стандарта.
Ну и просто умеет искать по произвольным фразам стандарты)
1🔥16👍9❤3
Forwarded from Игорь Апресов | Radio Ingvar
https://ai.v8std.ru/monitoring/
Добавил статистику публичную:
Что за последние 24 часа использовали и как в MCP.
Для разъяснений кода не стал включать трекер и сохранение фрагментов кода.
А вот запросы на поиск решил сохранять чтобы помониторить как именно LLM формулирует запросы. Это прям интересно получается.
Отдельно по логам собирается трек запросов скраберов которые пытаются выдернуть все что плохо лежит - тоже для интересующихся можно посмотреть что пытаются запрашивать злоумышленники.
Добавил статистику публичную:
Что за последние 24 часа использовали и как в MCP.
Для разъяснений кода не стал включать трекер и сохранение фрагментов кода.
А вот запросы на поиск решил сохранять чтобы помониторить как именно LLM формулирует запросы. Это прям интересно получается.
Отдельно по логам собирается трек запросов скраберов которые пытаются выдернуть все что плохо лежит - тоже для интересующихся можно посмотреть что пытаются запрашивать злоумышленники.
1🔥11👍6❤4
Общие требования по разработке оптимальных запросов
🟡 Не следует любой ценой переносить выполнение задачи в СУБД: простые запросы СУБД обычно выполняет эффективнее, чем избыточно сложные универсальные.
🟡 Для сложных запросов проверяйте, что СУБД выбирает эффективный план выполнения.
🟡 В большинстве случаев следует минимизировать и общее количество запросов к СУБД.
🟡 Если нужно выполнять свертку, сортировку или вычисления, сначала проверьте, можно ли переложить эти операции на СУБД и сразу получить готовый результат.
#std729
https://v8std.ru/std/729/
#std729
https://v8std.ru/std/729/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Общие требования по разработке оптимальных запросов #std729
Прежде чем переходить к продвинутым приемам оптимизации, убедитесь, что сам запрос адекватен задаче.
1🔥13👍8❤4
Как вы заметили, пока постов нет.
Майская передышка до 15 мая :)
Потом продолжим.
Майская передышка до 15 мая :)
Потом продолжим.
1👍34👌16😢4🎉3🤬1
Майская передышка пролетела, Кунг-фу в Екатеринбурге провели, продолжаем посты по стандартам 🙂
1👍13