Общие сведения об избыточных блокировках
🟡 В этом контексте ресурсом считается неделимая совокупность данных, которая блокируется только целиком.
🟡 Ожидание блокировки возникает, когда разные сеансы 1С:Предприятия пытаются захватить один и тот же ресурс.
🟡 Поэтому при проектировании важно понимать, какие ресурсы захватываются при каждой операции и насколько «мелко» нарезаны данные.
🟡 Ошибки в проектировании структуры объектов метаданных могут привести к большому количеству избыточных блокировок и заметному падению производительности системы.
#std659
https://v8std.ru/std/659/
#std659
https://v8std.ru/std/659/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Общие сведения об избыточных блокировках #std659
Ошибки в проектировании структуры объектов метаданных могут привести к большому количеству избыточных блокировок и заметному падению производительности системы.
1👍13❤🔥1
Безопасное хранение паролей
🟡 Не храните пароли и другие конфиденциальные данные в реквизитах тех же объектов метаданных, с которыми ведется повседневная работа.
🟡 В этих случаях допустимо хранение паролей в ИБ, но пользователей нужно предупредить о рисках.
🟡 Если пароль уже сохранен, в реквизит формы записывается уникальный идентификатор, который эмулирует наличие пароля.
🟡 Если используется БСП, применяйте безопасное хранилище паролей.
#std740
https://v8std.ru/std/740/
#std740
https://v8std.ru/std/740/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Безопасное хранение паролей #std740
При разработке подсистем, которые работают с внешними ресурсами (почта, веб-сервисы, FTP и т. п.), обычно нужно передавать данные аутентификации: логин и пароль.
1👍12🔥6
Имена объектов метаданных в иерархии библиотек
🟡 Для разрешения конфликтов рекомендуется закреплять приоритет выбора имени за библиотекой более низкого уровня.
🟡 В конечных конфигурациях-потребителях и библиотеках более высокого уровня используйте более специфичные названия предметной области.
🟡 Наиболее универсальные имена используйте в библиотеках нижнего уровня иерархии.
🟡 Для независимых одноуровневых библиотек конфликты имен могут обнаружиться поздно - при внедрении или после него.
#std552
https://v8std.ru/std/552/
#std552
https://v8std.ru/std/552/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Имена объектов метаданных в иерархии библиотек #std552
Если конфигурация использует одну или несколько #std551: библиотек, избегайте конфликтов имен объектов метаданных (справочников, документов, общих модулей и др.) между библиотеками...
1👍10❤3
Блокирующее чтение остатков в начале транзакции
🟡 Если после проведения остатки становятся отрицательными, транзакцию нужно отменять.
🟡 В ряде задач нужно выполнять блокирующее чтение итогов.
🟡 Чтобы снизить влияние этой блокировки, переносите проверку как можно ближе к концу транзакции.
🟡 Нужно запретить двум пользователям одновременно читать один и тот же остаток за период, счет и значения измерений.
#std661
https://v8std.ru/std/661/
#std661
https://v8std.ru/std/661/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Блокирующее чтение остатков в начале транзакции #std661
В ряде задач нужно выполнять блокирующее чтение итогов. Типовой случай - контроль остатков при проведении документа.
1🔥7👍4🤔1
Вызов исключений в коде
🟡 Проверяйте внешний вид исключений без отладки и без режима технического специалиста: поведение окна исключения зависит от режима запуска.
🟡 В общем случае исключения в коде вызывать не требуется.
🟡 Для остальных случаев рекомендуется задавать категорию (ОшибкаРаботыСПринтером, ОшибкаСети, НарушениеПравДоступа и т.п.).
#std790
https://v8std.ru/std/790/
#std790
https://v8std.ru/std/790/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Вызов исключений в коде #std790
В общем случае исключения в коде вызывать не требуется.
👍8
Многократное выполнение однотипных запросов
🟡 Запросы к разным таблицам тоже рекомендуется объединять в один с помощью ОБЪЕДИНИТЬ ВСЕ или пакета запросов.
🟡 При этом выигрыш по времени выполнения может быть незначительным.
🟡 Старайтесь получать однотипные данные одним запросом, а не серией запросов в цикле.
🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.
#std436
https://v8std.ru/std/436/
#std436
https://v8std.ru/std/436/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Многократное выполнение однотипных запросов #std436
Старайтесь получать однотипные данные одним запросом, а не серией запросов в цикле.
👍10❤2
Предварительная инициализация локальных переменных
🟡 В блоках, где вычисляются локальные переменные, явно задавайте начальные значения.
🟡 Эта рекомендация особенно важна для больших блоков Если / ИначеЕсли / Иначе, где визуально сложно проверить все ветки инициализации.
🟡 Это снижает риск ошибок времени выполнения, когда переменная остается Неопределено, а следующий код ожидает конкретный тип.
#std494
https://v8std.ru/std/494/
#std494
https://v8std.ru/std/494/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Предварительная инициализация локальных переменных #std494
В блоках, где вычисляются локальные переменные, явно задавайте начальные значения.
👍12❤1
Минимизация количества серверных вызовов и трафика
🟡 Если массив хранится как ДанныеФормыКоллекция, форма может передать его неполностью, и платформа выполнит дополнительное дочитывание данных с сервера.
🟡 Не передавайте на сервер больше данных, чем нужно для задачи.
🟡 Если форма открывается из кода, выполняйте это за один вызов ОткрытьФорму.
🟡 Если на сервере требуется одно значение реквизита, не выполняйте контекстный вызов.
#std487
https://v8std.ru/std/487/
#std487
https://v8std.ru/std/487/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Минимизация количества серверных вызовов и трафика #std487
Контролируйте количество серверных вызовов из клиентского кода. В ряде сценариев дополнительно контролируйте объем передаваемых данных между клиентом и сервером.
👍9
Денежные поля: требования по локализации
🟡 При использовании функции Формат, а также при задании формата в свойствах элементов формы, полей наборов СКД и т.п.
🟡 Используйте функцию, которая возвращает описание на основе определяемого типа.
🟡 Если используется БСП, не применяйте конструктор типа Число для описания типа денежного поля.
🟡 Чтобы конфигурация корректно работала в странах с низким курсом национальной валюты, увеличивайте разрядность целой части числовых полей с денежным эквивалентом.
#std778
https://v8std.ru/std/778/
#std778
https://v8std.ru/std/778/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Денежные поля: требования по локализации #std778
Чтобы конфигурация корректно работала в странах с низким курсом национальной валюты, увеличивайте разрядность целой части числовых полей с денежным эквивалентом. Примеры денежных...
👍8
Нумерация редакций и версий
🟡 В пределах одной подредакции используйте сквозную нумерацию версий, включая альфа, ознакомительные, бета и финальные выпуски.
🟡 Каждая часть содержит минимум одну цифру и при необходимости может быть длиннее.
🟡 Новая редакция получает следующий целый номер относительно предыдущей.
🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза.
#std483
https://v8std.ru/std/483/
#std483
https://v8std.ru/std/483/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Нумерация редакций и версий #std483
Новая редакция получает следующий целый номер относительно предыдущей. Формат обозначения: Редакция.Подредакция (например, 1.5, 1.6). Для новой конфигурации стартовая редакция:...
👍2
Использование модулей с повторным использованием возвращаемых значений
🟡 Если в модуле с повторным использованием экспортные функции вызывают друг друга, результат внутренних вызовов не кешируется.
🟡 Чтобы получить значение из кеша, вызывайте функцию через имя модуля явно.
🟡 Ограничение также распространяется на использование таких значений во временном хранилище.
🟡 Ограничение связано с тем, что эти значения можно использовать только в том серверном вызове, где они получены.
#std724
https://v8std.ru/std/724/
#std724
https://v8std.ru/std/724/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Использование модулей с повторным использованием возвращаемых значений #std724
Общие модули с повторным использованием возвращаемых значений (кеш) применяйте для кеширования результатов функций:
👍6✍1