Стандарты 1С v8std
2.26K subscribers
16 photos
6 videos
1 file
96 links
Download Telegram
Транзакции: правила использования

🟡 Начинайте и завершайте транзакцию в одном методе: пары НачатьТранзакцию и ЗафиксироватьТранзакцию`/`ОтменитьТранзакцию не разносите по разным функциям.

🟡 Размещайте ЗафиксироватьТранзакцию последней операцией в блоке Попытка, чтобы после фиксации не возникали новые исключения.

🟡 В блоке Исключение сначала вызывайте ОтменитьТранзакцию, затем выполняйте логирование и завершайте обработку оператором ВызватьИсключение.

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

#std783
https://v8std.ru/std/783/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍16🔥9👌43💯3🤨1
Новая главная страница и новый раздел!

https://v8std.ru/patterns/

Встречайте Паттерны на v8std
4🔥55❤‍🔥16👍12🏆4
Работа с пользовательскими настройками

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

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

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

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

#std557
https://v8std.ru/std/557/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥14👌1
Версия платформы 1С:Предприятие для разработки

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

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

🟡 В этом случае пользователи могут продолжать работу на текущем сертифицированном релизе и одновременно получают рекомендацию по обновлению.

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

#std785
https://v8std.ru/std/785/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔166
Начальные действия при работе конфигурации

🟡 Для подробного протокола выполненных операций и ошибок используйте журнал регистрации.

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

🟡 Ситуации, когда обработка выполнена не полностью, должны контролироваться конфигурацией.

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

#std556
https://v8std.ru/std/556/
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥91👌1
Поддержка толстого клиента, управляемое приложение, клиент-сервер

🟡 Не устанавливайте признак Вызов сервера всем модулям с признаком Сервер.

🟡 Для расстановки фрагментов кода с инструкциями препроцессора можно использовать обработку с ИТС.

🟡 Обработчики ОбработкаПолученияДанныхВыбора и ОбработкаПолученияФормы вызываются только на сервере, и это ограничение на них не распространяется.

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

#std680
https://v8std.ru/std/680/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥11👌1
Технология разветвленной разработки конфигураций

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

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

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

🟡 Все изменения по техническому проекту переносите в основное хранилище за одну закладку.

#std709
https://v8std.ru/std/709/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥8👍2👌1
Особенности разработки конфигураций для ОС Linux и macOS

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

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

🟡 Если применяется БСП, используйте функции модулей ОбщегоНазначения и ОбщегоНазначенияКлиент.

🟡 В большинстве случаев платформа сама обеспечивает кроссплатформенную работу клиентского и серверного кода.

#std723
https://v8std.ru/std/723/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍11👌1
Использование значений, влияющих на поведение клиентского приложения

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

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

🟡 Такой подход применяйте, когда изменение этих значений в течение сеанса некритично, и в рамках сеанса можно использовать один раз полученное значение.

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

#std459
https://v8std.ru/std/459/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥81
Несоответствие индексов и условий запроса

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

🟡 Если между используемыми полями есть пропуски, индекс применяется только частично.

🟡 Реквизиты справочников и документов рекомендуется индексировать с дополнительным упорядочиванием.

#std652
https://v8std.ru/std/652/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔52👍2🔥2👌1
Режим разделения итогов для регистров накопления

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

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

🟡 Но при включенном контроле остатков разделение итогов не даст ожидаемого прироста, и контроль остатков нужно переносить к концу транзакции.

#std664
https://v8std.ru/std/664/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👌3
Разработка ролей в библиотеках

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

🟡 В ролях допустимо задавать не только права к объектам, но и ограничения доступа на уровне записей (RLS).

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

#std668
https://v8std.ru/std/668/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍13👌2
Дополнительные индексы

🟡 Не понятно зачем нужен этот пункт "подстилка", ведь для того чтобы не исполнить стандарт разрешение стандарта не нужно :).

🟡 Для таблиц до 1 млн записей должно работать быстро без доп.

🟡 Не делайте несколько веток кода в зависимости от использования доп.

🟡 Для больших таблиц - производительность должна гарантироваться доп.

#std791
https://v8std.ru/std/791/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍52😁1🤮1👌1🤣1
Уточнение сущности объекта метаданных

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

🟡 В справочнике Организации использовать только реквизит ГоловнаяОрганизация и по его заполненности определять вид организации: «обычная» или обособленное подразделение.

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

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

#std541
https://v8std.ru/std/541/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍41🥰1😁1
Подсказка и проверка заполнения

🟡 Для документа Заказ клиента реквизит Клиент и табличная часть Товары должны быть обязательными.

🟡 Если хотя бы один сценарий требует обязательного заполнения, ставьте Проверка заполнения = Выдавать ошибку.

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

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

#std478
https://v8std.ru/std/478/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥5
Использование реквизитов строкового типа

🟡 Для реквизитов строкового типа используйте переменную длину строки: Допустимая длина = Переменная.

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

#std432
https://v8std.ru/std/432/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔9🔥2
Требования к установке и обновлению прикладных решений

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

🟡 В строке Catalog файла-манифеста, в наименование шаблона конфигурации (часть значения до символа «/») следует включать в явном виде название разработчика.

#std731
https://v8std.ru/std/731/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥84👍3
Обратите внимание на проект

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 конфигуратора.

Самое время ковырять!
1👍15🔥73👎2
Обеспечение совместимости библиотек

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

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

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

🟡 Если интерфейс и служебная реализация разнесены по разным модулям, для служебного модуля используйте постфикс Служебный (Internal).

#std644
https://v8std.ru/std/644/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍11🔥1