Стандарты 1С v8std
2.26K subscribers
16 photos
6 videos
1 file
96 links
Download Telegram
Общие сведения об избыточных блокировках

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

🟡 Ожидание блокировки возникает, когда разные сеансы 1С:Предприятия пытаются захватить один и тот же ресурс.

🟡 Поэтому при проектировании важно понимать, какие ресурсы захватываются при каждой операции и насколько «мелко» нарезаны данные.

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

#std659
https://v8std.ru/std/659/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍13❤‍🔥1
Безопасное хранение паролей

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

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

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

🟡 Если используется БСП, применяйте безопасное хранилище паролей.

#std740
https://v8std.ru/std/740/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12🔥6
Имена объектов метаданных в иерархии библиотек

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

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

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

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

#std552
https://v8std.ru/std/552/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍103
Блокирующее чтение остатков в начале транзакции

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

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

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

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

#std661
https://v8std.ru/std/661/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥7👍4🤔1
Вызов исключений в коде

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

🟡 В общем случае исключения в коде вызывать не требуется.

🟡 Для остальных случаев рекомендуется задавать категорию (ОшибкаРаботыСПринтером, ОшибкаСети, НарушениеПравДоступа и т.п.).

#std790
https://v8std.ru/std/790/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Многократное выполнение однотипных запросов

🟡 Запросы к разным таблицам тоже рекомендуется объединять в один с помощью ОБЪЕДИНИТЬ ВСЕ или пакета запросов.

🟡 При этом выигрыш по времени выполнения может быть незначительным.

🟡 Старайтесь получать однотипные данные одним запросом, а не серией запросов в цикле.

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

#std436
https://v8std.ru/std/436/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
Предварительная инициализация локальных переменных

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

🟡 Эта рекомендация особенно важна для больших блоков Если / ИначеЕсли / Иначе, где визуально сложно проверить все ветки инициализации.

🟡 Это снижает риск ошибок времени выполнения, когда переменная остается Неопределено, а следующий код ожидает конкретный тип.


#std494
https://v8std.ru/std/494/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121
Минимизация количества серверных вызовов и трафика

🟡 Если массив хранится как ДанныеФормыКоллекция, форма может передать его неполностью, и платформа выполнит дополнительное дочитывание данных с сервера.

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

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

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

#std487
https://v8std.ru/std/487/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Денежные поля: требования по локализации

🟡 При использовании функции Формат, а также при задании формата в свойствах элементов формы, полей наборов СКД и т.п.

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

🟡 Если используется БСП, не применяйте конструктор типа Число для описания типа денежного поля.

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

#std778
https://v8std.ru/std/778/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Нумерация редакций и версий

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

🟡 Каждая часть содержит минимум одну цифру и при необходимости может быть длиннее.

🟡 Новая редакция получает следующий целый номер относительно предыдущей.

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

#std483
https://v8std.ru/std/483/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Использование модулей с повторным использованием возвращаемых значений

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

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

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

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

#std724
https://v8std.ru/std/724/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61