Размеры экрана
🟡 Ориентируйтесь на типовое разрешение 1280×768 и масштаб 96 DPI (100%).
🟡 Считайте, что окно развернуто на весь экран, но часть высоты занимает панель задач и браузера.
🟡 Рабочая область — примерно 1280×668.
🟡 Формы должны помещаться без горизонтальной и вертикальной прокрутки (вертикальная допустима только в списках).
#std727
https://v8std.ru/std/727/
#std727
https://v8std.ru/std/727/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Размеры экрана #std727
1280х768 типовое разрешение экрана.
1👍23👎9💯4👀4⚡1🔥1🥰1👏1👌1🕊1🎅1
Изменения на сайте:
↔️ Теперь для ссылок генерируется социальная карточка
https://v8std.ru
🔨 Есть быстрый переход к просмотру исходников в markdown и открытием на внесение правок - если заметили ошибку отправляйте PR
▶️ Вы же знаете, что сайт собирается сам из markdown? :)
🗂 Для десктопного сайта нумерация разделов уходит в отдельную выравненную колонку, на которую можно скопировать и дать ссылку, чтобы поделиться конкретным абзацем
https://v8std.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍18❤🔥3❤2🔥2👏2🎉2👎1🥰1👌1
Ограничения на использование экспортных процедур и функций
🟡 Не размещайте экспортные процедуры и функции в модулях команд и общих команд.
🟡 К этим модулям нельзя обращаться извне, поэтому экспорт там бесполезен.
#std544
https://v8std.ru/std/544/
#std544
https://v8std.ru/std/544/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Ограничения на использование экспортных процедур и функций #std544
Не следует размещать экспортные процедуры и функции в модулях команд и общих команд. К этим модулям нет возможности обращаться из внешнего по отношению к ним кода, поэтому...
3👍23🔥6❤3🥱3😁2🥰1
Безопасность программного обеспечения, вызываемого через открытые интерфейсы
🟡 При использовании интеграции со сторонними приложениями с помощью открытых интерфейсов (в частности, с помощью COM) требуется отключать исполнение произвольного кода средствами вызываемого приложения.
🟡 В частности, перед программным открытием документов Microsoft Word и Microsoft Excel через COM следует запрещать исполнение макросов.
🟡 «Разрешить запуск подписанных макросов (рекомендуется)» (выбран по умолчанию).
🟡 Форма настройки для клиентского кода должна быть доступна каждому пользователю, настройки должны сохраняться в разрезе пользователей, каждому пользователью должны быть доступны только свои настройки.
#std775
https://v8std.ru/std/775/
#std775
https://v8std.ru/std/775/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Безопасность программного обеспечения, вызываемого через открытые интерфейсы #std775
При интеграции со сторонними приложениями через открытые интерфейсы (в частности, COM) отключайте исполнение произвольного кода средствами вызываемого приложения.
1🔥11👍9👏4👌1
Поля «Ответственный» и «Комментарий»
🟡 Если в типовых сценариях комментарии обычно длинные, используйте многострочный вариант на отдельной вкладке.
🟡 Располагайте внизу формы документа, последним полем.
🟡 Заголовок Комментарий выводите в названии вкладки, а у самого поля заголовок не отображайте.
🟡 Поле Ответственный выводите в нижней части формы документа.
#std719
https://v8std.ru/std/719/
#std719
https://v8std.ru/std/719/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍27🔥4👌4👏2
Открытие форм
🟡 Для открытия форм используйте метод ОткрытьФорму.
🟡 Если форма требует параметризации при открытии, передавайте все параметры через набор параметров формы.
🟡 Не используйте альтернативные способы параметризации формы при открытии.
🟡 Результат работы формы получайте через обработчики оповещений.
#std404
https://v8std.ru/std/404/
#std404
https://v8std.ru/std/404/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Открытие форм #std404
Для открытия форм используйте метод ОткрытьФорму. (В проектах на платформе 1С:Предприятие 8.2 и ниже ОткрытьФормуМодально).
2🤝19👍5👌3❤1🔥1
Обработчик события ОбработкаПроверкиЗаполнения
🟡 В обработчике
🟡 Если проверка заполнения условная, в коде удаляйте такие реквизиты из массива ПроверяемыеРеквизиты.
🟡 Не используйте альтернативные схемы условной проверки, чтобы проверки оставались прозрачными для свойства «Проверка заполнения».
🟡 Учитывайте, что обработчик вызывается не при каждой записи; при обмене данными анализируйте
#std463
https://v8std.ru/std/463/
ОбработкаПроверкиЗаполнения проверяйте корректность заполнения реквизитов шапки, табличных частей и других данных до записи.ДополнительныеСвойства.ОтложенноеПроведение.#std463
https://v8std.ru/std/463/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Обработчик события ОбработкаПроверкиЗаполнения #std463
В обработчике ОбработкаПроверкиЗаполнения модуля объекта выполняйте проверки корректности заполнения реквизитов объекта:
1👍13👌3🔥1
Forwarded from Игорь Апресов | Radio Ingvar
Стандарты 1С часто воспринимают как “про оформление кода”: отступы, скобки, переносы.
Но в какой-то момент выясняется: в стандартах уже есть ответы на кучу типовых рабочих ситуаций, из-за которых мы спорим в ревью, ломаем архитектуру и тратим часы на “ну я так привык”.
На стриме разберем:
Приглашенный гость:
Формат: разговор + разбор примеров + вопросы из чата.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥29👍7❤4
Правила создания общих модулей
🟡 Общие модули создавайте для процедур и функций, объединенных по одному признаку.
🟡 При разработке общих модулей выбирайте один из четырех контекстов выполнения.
🟡 Серверные общие модули используйте для внутренней серверной бизнес-логики.
🟡 Именуйте по общим правилам именования.
#std469
https://v8std.ru/std/469/
#std469
https://v8std.ru/std/469/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Правила создания общих модулей #std469
Общие модули создавайте для процедур и функций, объединенных по одному признаку. Обычно в один модуль попадает код:
1🔥13👌10❤2🤔1
Имена объектов метаданных в конфигурациях
🟡 Именуйте объекты метаданных по общим правилам именования, без лишних технических слов в названиях.
🟡 Для ролей разделяйте схему именования: прикладные роли называйте по должности, технические — по разрешаемому действию.
🟡 Подписки на события называйте от сути действия и образуйте имя от неопределенной формы глагола.
🟡 Функциональные опции и их параметры именуйте по включаемой функциональности и смыслу параметра, а не по внутренней реализации.
#std550
https://v8std.ru/std/550/
#std550
https://v8std.ru/std/550/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Имена объектов метаданных в конфигурациях #std550
Стандарт дополняет общие правила именования: #std474: Имя, синоним, комментарий.
1👍8🔥3👌3❤1🤯1
Использование функциональных опций
🟡 Управляйте необязательной функциональностью через функциональные опции, а их значения храните в данных информационной базы.
🟡 Для контекстной доступности функциональности используйте параметризованные функциональные опции и устанавливайте параметры опций формы.
🟡 После изменения значений функциональных опций вызывайте
🟡 Не перегружайте систему параметрами опций: исключайте дубли и не параметризуйте по данным с очень большим числом значений.
#std470
https://v8std.ru/std/470/
ОбновитьИнтерфейс, чтобы командам и элементам формы применились новые ограничения.#std470
https://v8std.ru/std/470/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Использование функциональных опций #std470
Если часть функциональности конфигурации может быть необязательной, управляйте ее доступностью через функциональные опции.
1👍10👌4🔥3❤1❤🔥1🥰1🙏1
Использование параметров сеанса
🟡 Используйте параметры сеанса для значений, которые нужны в рамках текущего сеанса, запросов и ограничений доступа к данным.
🟡 Не храните в параметрах сеанса значения, нужные только клиентской логике: для этого применяйте глобальные переменные приложения.
🟡 Не используйте параметры сеанса как кеш вычислений серверной бизнес-логики; выносите такие вычисления в серверные функции с повторным использованием.
🟡 Инициализируйте параметры сеанса по требованию в обработчике
#std413
https://v8std.ru/std/413/
УстановкаПараметровСеанса, а не массово при старте программы.#std413
https://v8std.ru/std/413/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Использование параметров сеанса #std413
Параметры сеанса используйте для хранения значений определенных типов в рамках клиентского сеанса.
1👍12👌4❤2🔥2
Использование подсистем
🟡 Используйте подсистемы для двух задач: построения разделов командного интерфейса и функциональной группировки объектов метаданных.
🟡 Если интерфейсная и функциональная структуры не совпадают, создавайте отдельную иерархию функциональных подсистем без включения в командный интерфейс.
🟡 Объекты без визуального представления в интерфейсе включайте только в функциональные подсистемы.
🟡 Команды администрирования выносите в раздел «Настройка и администрирование», сохраняя логическую группировку объектов по функциональному назначению.
#std543
https://v8std.ru/std/543/
#std543
https://v8std.ru/std/543/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Использование подсистем #std543
Подсистемы решают две задачи:
1👍9👌5🔥3
Ограничения на использование Выполнить и Вычислить на сервере
🟡 Не выполняйте на сервере строки кода, собранные из внешних параметров, без строгого контроля источника и содержимого.
🟡 Перед вызовом
🟡 По возможности используйте безопасные обертки БСП вместо прямого вызова
🟡 Код, который нельзя запускать в безопасном режиме, выполняйте только после аудита и только из контролируемого администратором хранилища.
#std770
https://v8std.ru/std/770/
Выполнить и Вычислить на сервере включайте безопасный режим, а в сервисной модели дополнительно включайте безопасный режим разделения данных.Выполнить и Вычислить.#std770
https://v8std.ru/std/770/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Ограничения на использование Выполнить и Вычислить на сервере #std770
Опасность представляет не только прямое выполнение кода пользователя, но и выполнение строк, собранных из параметров и переданных в серверные процедуры/функции.
1👍12🔥5👌3
Транзакции: правила использования
🟡 Начинайте и завершайте транзакцию в одном методе: пары
🟡 Размещайте
🟡 В блоке
🟡 Избегайте лишних, вложенных и длинных транзакций: открывайте их только для действительно неделимых операций.
#std783
https://v8std.ru/std/783/
НачатьТранзакцию и ЗафиксироватьТранзакцию`/`ОтменитьТранзакцию не разносите по разным функциям.ЗафиксироватьТранзакцию последней операцией в блоке Попытка, чтобы после фиксации не возникали новые исключения.Исключение сначала вызывайте ОтменитьТранзакцию, затем выполняйте логирование и завершайте обработку оператором ВызватьИсключение.#std783
https://v8std.ru/std/783/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Транзакции: правила использования #std783
Транзакция - это действие, которое может быть выполнено только целиком. Если часть действия не выполнена - все действие отменяется.
1👍16🔥9👌4❤3💯3🤨1
4🔥55❤🔥16👍12🏆4
Работа с пользовательскими настройками
🟡 Для каждой настройки в хранилище общих настроек используйте уникальный строковый ключ.
🟡 В конфигурации должно быть общее место для редактирования всех пользовательских настроек.
🟡 Если позже будет создан пользователь с прежним именем, он получит ранее сохраненные настройки.
🟡 При необходимости перенос настроек между узлами реализуйте отдельно средствами встроенного языка.
#std557
https://v8std.ru/std/557/
#std557
https://v8std.ru/std/557/
Please open Telegram to view this post
VIEW IN TELEGRAM
Стандарты разработки 1С
Работа с пользовательскими настройками #std557
Для хранения персональных настроек пользователя используйте ХранилищеОбщихНастроек.
1🔥14👌1