Реестр диагностик по стандартам¶
#std396: Обработчик события ОбработкаЗаполнения 0 проверок · 0 пунктов
п. 1 — Если нужно ограничить ввод по команде Создать на основании,
Нет проверок
п. 2 — Чтобы объяснить пользователю причину отказа,
Нет проверок
п. 3 — Рекомендуется придерживаться единой логической структуры
Нет проверок
п. 3.1 — Сначала выполняйте специальное заполнение
Нет проверок
п. 3.2 — После специального заполнения выполняйте общее заполнение:
Нет проверок
#std397: Организация работы со списками данных с помощью общих команд 0 проверок · 0 пунктов
п. 1 — Иногда один и тот же список нужен в разных сценариях работы,
Нет проверок
п. 2 — Чтобы не дублировать код форм списка
Нет проверок
п. 3 — Если вся функциональность в одной форме не оправдана,
Нет проверок
п. 4 — Можно комбинировать оба подхода:
Нет проверок
#std399: Запрет редактирования полей таблицы по условию 0 проверок · 0 пунктов
#std400: Информирование пользователя 0 проверок · 0 пунктов
п. 1 — Доводите информацию до пользователя в следующих случаях:
Нет проверок
п. 1.1 — Ошибки проверки заполнения выводите в панели сообщений формы
Нет проверок
п. 1.1А — Проверка заполнения реквизитов объекта
Нет проверок
п. 1.1Б — Проверка целостности объекта и связанных данных
Нет проверок
п. 1.2 — Протокол выполненных действий можно выводить в отдельном поле формы
Нет проверок
п. 1.3 — Информацию об ошибке выводите в отдельном диалоге
Нет проверок
п. 1.4 — Сообщайте об успешном выполнении действия в форме, если результат неочевиден
Нет проверок
п. 1.5 — Если форма не открыта, тоже сообщайте об успешном завершении неочевидного действия
Нет проверок
п. 1.5.1 — Используйте ПоказатьОповещениеПользователя для уведомления о завершении
Нет проверок
п. 1.5.2 — Используйте Состояние, чтобы показывать прогресс клиентской операции и сообщение о завершении
Нет проверок
#std401: Размещение большого количества команд в основном окне приложения 0 проверок · 0 пунктов
п. 1 — Проанализируйте все команды отчетов,
Нет проверок
п. 2 — Для подсистемы верхнего уровня
Нет проверок
п. 3 — Реализуйте общую команду,
Нет проверок
#std402: Настройка расписания регламентных заданий 2 проверки · 0 пунктов
#std404: Открытие форм 4 проверки · 2 пункта
п. 1 — Для открытия форм используйте метод ОткрытьФорму
п. 2 — Если форма требует параметризации при открытии, передавайте все параметры через набор параметров формы
п. 3 — Не используйте альтернативные способы параметризации формы при открытии
Нет проверок
п. 4 — Результат работы формы получайте через обработчики оповещений
Нет проверок
п. 5 — Дополнительные ограничения:
Нет проверок
п. 6 — Следующие виды форм должны быть доступны пользователю в режиме 1С:Предприятие из меню Все функции, даже если объект не выведен в командный интерфейс:
Нет проверок
#std407: Применение параметров отчета в СКД 0 проверок · 0 пунктов
#std409: Использование РеквизитФормыВЗначение и ДанныеФормыВЗначение 3 проверки · 1 пункт
#std411: Установка параметров выбора и связей параметров выбора для объектов метаданных 0 проверок · 0 пунктов
#std412: Упорядочивание результатов запроса 2 проверки · 2 пункта
п. 1.1 — Если алгоритм обработки зависит от порядка записей или результат показывается пользователю, в тексте запроса следует использовать УПОРЯДОЧИТЬ ПО
п. 1.2 — При сортировке по полю, которое может содержать NULL, учитывайте: на разных СУБД порядок может отличаться
п. 1.3 — Если результаты запроса отображаются пользователю:
Нет проверок
п. 1.4 — Отсутствие УПОРЯДОЧИТЬ ПО допустимо только если одновременно верно:
Нет проверок
п. 2 — Если используется РАЗЛИЧНЫЕ, сортируйте только по полям, включенным в ВЫБРАТЬ
Нет проверок
п. 3 — Использование ПЕРВЫЕ совместно с АВТОУПОРЯДОЧИВАНИЕ запрещено
Нет проверок
#std413: Использование параметров сеанса 0 проверок · 0 пунктов
п. 1.1 — Параметры сеанса используйте для хранения значений определенных типов в рамках клиентского сеанса
Нет проверок
п. 1.2 — Не используйте параметры сеанса для значений, которые нужны только клиентской логике
Нет проверок
п. 1.3 — Не используйте параметры сеанса для кеширования вычисленных значений,
Нет проверок
п. 2.1 — Не инициализируйте параметры сеанса при запуске программы:
Нет проверок
#std415: Ограничения на использование ключевого слова `#!sdbl РАЗРЕШЕННЫЕ` в запросах 0 проверок · 0 пунктов
#std417: Вопрос при закрытии программы 0 проверок · 0 пунктов
#std418: Ограничение на использование метода Сообщить 3 проверки · 0 пунктов
#std423: Правила создания иконок командных панелей 0 проверок · 0 пунктов
#std430: Использование сочетаний клавиш, список зарезервированных сочетаний 0 проверок · 0 пунктов
#std432: Использование реквизитов строкового типа 1 проверка · 1 пункт
п. 1.1 — Для реквизитов строкового типа используйте переменную длину строки:
п. 1.2 — Если максимальная длина строки заранее известна
Нет проверок
п. 1.3 — Если строка получается конкатенацией других строк,
Нет проверок
п. 1.4 — Если длина строки не регламентирована,
Нет проверок
п. 2 — В отдельных случаях допустимо использовать строки неограниченной длины
Нет проверок
п. 2.1 — Когда в строковый реквизит может попадать пользовательский текст
Нет проверок
п. 2.2 — Когда в строковом реквизите хранится техническая информация,
Нет проверок
п. 3 — Если используются строковые реквизиты неограниченной длины,
Нет проверок
п. 3.1 — Для сравнения значений, группировки и получения РАЗЛИЧНЫЕ
Нет проверок
п. 3.2 — В отчетах СКД для таких полей вместо этого
Нет проверок
п. 3.3 — В остальных случаях обрезать строку в запросах не требуется
Нет проверок
п. 4 — Если строковое поле выводится в печатной форме,
Нет проверок
#std434: Использование ключевых слов "ОБЪЕДИНИТЬ" и "ОБЪЕДИНИТЬ ВСЕ" в запросах 2 проверки · 0 пунктов
#std435: Ограничение на использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах 2 проверки · 1 пункт
п. 1.1 — При разработке запросов учитывайте, что в клиент-серверном варианте с СУБД PostgreSQL производительность запросов с конструкцией ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ существенно снижается
п. 1.2 — Исключение: случаи, когда запрос объективно нельзя переписать без ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
Нет проверок
п. 2 — Недопустимо одновременно использовать ПОЛНОЕ СОЕДИНЕНИЕ и обращение к табличным частям из раздела ВЫБРАТЬ
Нет проверок
#std436: Многократное выполнение однотипных запросов 1 проверка · 1 пункт
#std437: Оформление текстов запросов 4 проверки · 5 пунктов
п. 1 — Все ключевые слова языка запросов пишутся заглавными буквами
п. 2 — Указывайте необязательные части запроса
п. 2а — Для полей – реквизитов других полей, например Касса.Валюта.Наименование автоматически присваиваемые псевдонимы собираются как ВалютаНаименование, а не Наименование
п. 2б — Пишите ключевое слово КАК перед псевдонимом поля источника
п. 3 — Текст запроса должен быть структурирован
Нет проверок
п. 4 — В сложных запросах используйте комментарии
Нет проверок
п. 5 — При создании объекта Запрос указывайте комментарий о цели запроса: какие данные нужны или для чего они используются
Нет проверок
п. 6.1 — При программной "сборке" текста запроса комментируйте все этапы
Нет проверок
п. 6.2 — Старайтесь, чтобы каждая часть формируемого запроса открывалась в конструкторе запросов:
п. 7 — Типичные случаи программной модификации текста запроса
Нет проверок
п. 7.1 — Изменение имени поля выборки
Нет проверок
п. 7.2 — Использование комментария для помещения во временную таблицу результата запроса
Нет проверок
п. 7.3 — Конкатенация нескольких текстов запросов в пакет
Нет проверок
Стандарт в целом
#std438: Проверка на пустой результат выполнения запроса 1 проверка · 1 пункт
#std439: Использование директив компиляции и инструкций препроцессора 6 проверок · 3 пункта
#std440: Использование дублирующего кода 2 проверки · 1 пункт
#std441: Общие требования к построению конструкций встроенного языка 5 проверок · 2 пункта
п. 1 — Ключевые слова встроенного языка пишите канонически, как в документации и Синтакс-помощнике
п. 2 — Когда подряд идут несколько присваиваний, допускается локально выравнивать = для лучшей читаемости
Нет проверок
п. 3 — Составные логические выражения в Если
Нет проверок
п. 4 — Логические выражения и значения типа Булево не сравнивайте с литералами Истина и Ложь
п. 5 — Если нужно сравнить результат выражения, сначала присвойте его промежуточной переменной, а затем сравнивайте переменную
Нет проверок
п. 6 — Используйте системные наборы значений везде, где это возможно
Нет проверок
#std442: Определение типа значения переменной 0 проверок · 0 пунктов
#std443: Получение предопределенных значений на клиенте 0 проверок · 0 пунктов
п. 1 — В клиентском коде (тонкий клиент, веб-клиент), где недоступны менеджеры вида СправочникМенеджер.<Имя> и ПеречислениеМенеджер.<Имя>, для получения ссылок на предопределенные элементы используйте ПредопределенноеЗначение
Нет проверок
п. 2 — Если используется БСП версии 2.1.4 и выше, предпочтительно применять ПредопределенныйЭлемент из модулей ОбщегоНазначения или ОбщегоНазначенияКлиент
Нет проверок
#std444: Перенос выражений 4 проверки · 3 пункта
п. 1 — Если длина строки больше 120 символов, используйте переносы
п. 2 — Длинные арифметические выражения переносите по правилам:
п. 3.1 — Длинные строковые константы переносите с помощью символа перевода строки |
Нет проверок
п. 3.2 — При конкатенации строк используйте + в начале новой строки, как и в арифметических выражениях
Нет проверок
п. 3.3 — При конкатенации длинных строк допускается ставить + в конце строки, чтобы не ломать общее форматирование текста
Нет проверок
п. 4 — Параметры процедур, функций и методов переносите по правилам:
Нет проверок
п. 5 — Сложные условия в Если
Нет проверок
п. 6 — Используйте автоформатирование текста программного модуля
#std445: Получение метаданных объектов 0 проверок · 0 пунктов
#std447: Использование объекта РегистрСведенийМенеджерЗаписи 0 проверок · 0 пунктов
п. 1 — Чтение записи (или набора записей) из регистра сведений без последующей модификации выполняйте запросом
Нет проверок
п. 2 — РегистрСведенийМенеджерЗаписи применяйте только когда нужен отбор одновременно по всем измерениям регистра
Нет проверок
п. 3 — В остальных случаях используйте РегистрСведенийНаборЗаписей
Нет проверок
#std448: Копирование строк между таблицами значений (табличными частями и т.п.) произвольной структуры 0 проверок · 0 пунктов
#std449: Получение представлений для ссылочных значений в табличном документе 0 проверок · 0 пунктов
#std450: Порядок записи движений документов 1 проверка · 1 пункт
#std451: Программное создание прикладных объектов 2 проверки · 1 пункт
#std452: Поиск в коллекциях значений 0 проверок · 0 пунктов
п. 1 — При двух и более операциях поиска в объекте ТаблицаЗначений с большим количеством строк рекомендуется:
Нет проверок
п. 2 — Для поиска в ТаблицаЗначений предусмотрены методы:
Нет проверок
п. 2.1 — Не используйте Найти() для поиска по нескольким колонкам в больших таблицах значений
Нет проверок
п. 2.2 — Для НайтиСтроки() список полей индекса должен точно совпадать со списком полей в структуре поиска (порядок полей не важен)
Нет проверок
п. 2.3 — То же ограничение действует для метода Скопировать() таблицы значений при вызове с параметром ПараметрыОтбора типа Структура
Нет проверок
п. 3 — При сортировке таблицы значений по колонкам со ссылочными значениями система для каждой такой колонки получает представления ссылок из базы данных по всем строкам таблицы
Нет проверок
п. 3.1 — При поиске в Массив с большим количеством элементов лучше отказаться от массива в пользу:
Нет проверок
п. 3.2 — Чтобы обеспечить уникальность элементов в большом массиве, однократно в конце алгоритма вызывайте СвернутьМассив() или ДополнитьМассив() с параметром ТолькоУникальныеЗначения = Истина (модуль ОбщегоНазначения БСП)
Нет проверок
п. 4 — Аналогичный недостаток есть у ДеревоЗначений: индексов нет, поиск выполняется перебором
Нет проверок
#std453: Описание процедур и функций 38 проверок · 11 пунктов
п. 1 — Описывайте процедуры и функции в комментарии к ним
п. 2 — Комментируйте процедуры и функции, входящие в программный интерфейс модулей
п. 3 — Прочие процедуры и функции (в том числе обработчики событий модулей форм, объектов, наборов записей, менеджеров значений и т.п.) комментируйте, если нужно пояснить назначение или особенности работы
Нет проверок
п. 4 — Избегайте комментариев, которые не дают дополнительных пояснений о работе неэкспортной процедуры (функции)
Нет проверок
п. 5 — Размещайте комментарий перед объявлением процедуры (функции) и используйте следующий формат
п. 5.1 — Секция // Описание
п. 5.2 — Секция // Параметры:
п. 5.2.1 — Описание параметра начинается с новой строки: имя параметра, затем дефис и список типов (), затем дефис и текстовое описание параметра
п. 5.2.2 — Для параметров типа Структура и ТаблицаЗначений (ДеревоЗначений) в описании типа указывайте ссылку на функцию, выходным значением которой является эта структура или таблица значений
Нет проверок
п. 5.2.3 — Для параметров типа Массив указывайте тип элементов с помощью ключевого слова Из
п. 5.2.4 — Для параметра типа СтрокаТаблицыЗначений (СтрокаДереваЗначений) можно задать состав свойств, соответствующий колонкам его таблицы-владельца (дерева-владельца)
Нет проверок
п. 5.2.5 — Для каждого параметра можно задать одно или несколько дополнительных описаний типов
Нет проверок
п. 5.2.6 — Описания также могут задаваться с помощью ссылки на функцию-конструктор в формате // см
п. 5.3 — Секция // Возвращаемое значение:
п. 5.4 — Секция // Пример:
Нет проверок
п. 5.4.1 — В переопределяемых модулях в секции «Пример» приводите пример реализации переопределяемой процедуры, а не пример ее вызова
Нет проверок
п. 5.5 — В редких случаях, когда сразу несколько параметров имеют дополнительные типы, добавляйте секцию // Варианты вызова:
Нет проверок
п. 5.6 — В любом месте документирующего комментария можно добавить переход к другим объектам конфигурации, процедурам и функциям (в том числе к функциям-конструкторам структур)
п. 5.7 — Если нужно пометить процедуру (функцию) как устаревшую, в первой строке описания используйте слово // Устарела
п. 6 — Если требуется прокомментировать процедуру или функцию с директивой компиляции, сначала размещайте комментарий, а затем директиву компиляции
Нет проверок
п. 7 — Код процедур и функций отделяйте друг от друга пустыми строками
Нет проверок
Стандарт в целом
#std454: Правила образования имен переменных 3 проверки · 2 пункта
п. 1 — Имена переменных берите от терминов предметной области
Нет проверок
п. 2 — Формируйте имена так:
Нет проверок
п. 3 — Не начинайте имена переменных с подчеркивания ИмяПеременной
п. 4 — Не делайте имена переменных из одного символа
п. 5 — Названия булевых переменных пишутся так, как пишется истинное значение, хранимое в переменной
Нет проверок
#std455: Структура модуля 33 проверки · 12 пунктов
п. 1.1 — Старайтесь выделить из модуля следующие разделы:
п. 1.2 — Не делайте очень большие разделы, разделяйте на подразделы
Нет проверок
п. 1.3 — Разделы и подразделы оформляйте в виде областей
п. 1.4 — Шаблон общего модуля:
п. 1.5 — Шаблон модулей объектов, менеджеров, наборов записей, обработок, отчетов:
п. 1.6 — Шаблон модулей форм:
п. 1.7 — Шаблон модулей команд:
п. 1.8 — Не оставляйте пустых областей в модуле
п. 2.1 — Модуль может содержать заголовок модуля с описанием состава модуля
Нет проверок
п. 2.2 — Пример описания переменных:
п. 2.3 — Программный интерфейс располагается сразу после описания переменных
п. 2.4.1 — Обработчики событий формы, команд и элементов формы располагайте до служебных методов
Нет проверок
п. 2.4.2 — Старайтесь обработчики одного элемента формы располагать рядом
Нет проверок
п. 2.4.3 — Для каждого события создавайте свой обработчик
п. 2.5 — Обработчики событий модулей объекта и менеджера объекта размещайте после раздела с программным интерфейсом, но до служебных процедур и функций модуля
Нет проверок
п. 2.5.1 — Располагайте обработчики в модулях объекта и менеджера по порядку следования в описании встроенного языка
Нет проверок
п. 2.6 — Служебные процедуры и функции модуля размещайте в модуле следом за обработчиками событий
п. 2.7 — Пример инициализации переменных:
#std456: Тексты модулей 21 проверка · 9 пунктов
п. 1 — Пишите код на русском языке
п. 1.1 — Не используйте букву ё в коде программы
п. 1.2 — Не используйте в коде программы неразрывные пробелы и знак минус - − в других начертаниях (короткое – –, длинное тире — —)
п. 2 — Удаляйте мертвый код
п. 3 — Удалите закомментированный код и код связанный с процессом разработки (отладочный код, служебные отметки:
п. 4 — Пишите один оператор на одной строке
п. 5 — Код программы оформляйте отступом
п. 5.1 — С крайней левой позиции без отступов пишем:
Нет проверок
п. 5.2 — Текст внутри блока процедур НачатьТранзакцию() и ЗафиксироватьТранзакцию() не сдвигается
Нет проверок
п. 6 — Длина строки: 120 символов
п. 7.1 — Тексты комментариев должны составляться:
Нет проверок
п. 7.2 — Небольшие комментарии пишите в конце строки
Нет проверок
п. 7.3 — Большие комментарии или комментарии к фрагменту кода пишите перед кодом отдельной строкой
п. 8 — Тексты больших процедур и функций разбивайте на отдельные сворачиваемые области
Нет проверок
Стандарт в целом
#std458: Общие требования по локализации конфигурации 0 проверок · 0 пунктов
#std459: Использование значений, влияющих на поведение клиентского приложения 0 проверок · 0 пунктов
п. 1 — Если поведение многих форм или команд зависит от одних и тех же значений,
Нет проверок
п. 2 — Функция общего модуля должна возвращать за один вызов сразу весь набор значений,
Нет проверок
п. 3 — Ограничивайте применение клиентских модулей с повторным использованием возвращаемых значений
Нет проверок
#std460: Использование управляемого режима блокировки 4 проверки · 0 пунктов
#std463: Обработчик события ОбработкаПроверкиЗаполнения 0 проверок · 0 пунктов
п. 1.1 — В обработчике ОбработкаПроверкиЗаполнения модуля объекта выполняйте проверки корректности заполнения реквизитов объекта:
Нет проверок
п. 1.2 — Используйте этот обработчик, когда обычной проверки на заполненность недостаточно:
Нет проверок
п. 1.3 — Учитывайте, что ОбработкаПроверкиЗаполнения вызывается не при каждой записи объекта
Нет проверок
п. 1.4 — Если в конфигурации используется подсистема Обмен данными БСП, обработчик ОбработкаПроверкиЗаполнения может вызываться при проведении документов после загрузки из сообщения обмена
Нет проверок
п. 2.1 — Проверки в ОбработкаПроверкиЗаполнения выполняются вне транзакции записи
Нет проверок
п. 2.2 — Не размещайте в ОбработкаПроверкиЗаполнения проверки, которые должны гарантировать целостность объекта и зависимых данных (например, движений)
Нет проверок
п. 2.2.1 — Проверка состояния движений документов оперативного учета
Нет проверок
п. 2.2.2 — Проверка состояния других объектов базы, на которые ссылается текущий объект
Нет проверок
#std464: Обработчик события ПередЗаписью 3 проверки · 1 пункт
#std465: Обработчик события ПриЗаписи 3 проверки · 1 пункт
#std466: Обработчик события ПриКопировании 0 проверок · 0 пунктов
#std467: Общие требования к конфигурации 74 проверки · 7 пунктов
п. 1.1 — Используйте только штатные и документированные возможности платформы
п. 1.2 — Платформа может работать в различных СУБД, операционных системах, браузерах
п. 1.3 — Исправляйте ошибки обнаруженные при проверке конфигурации
п. 1.4 — Для обратной совместимости с собственными и сторонними решениями, внешними обработками и отчетами, разработанными для платформы 1С:Предприятие 8.0 и 8.1, обеспечьте поддержку обоих режимов только для администраторов (пользователей с полными правами):
п. 1.5 — Не делайте пользовательские интерфейсы сильно отличающимися от интерфейса по умолчанию
Нет проверок
п. 2.1 — Пишите тексты грамотно
п. 2.2 — Не оставляйте после себя мертвый код и мертвые объекты метаданных
п. 2.3 — Метаданные верхнего уровня сортируйте по имени
Стандарт в целом
#std468: Пользовательские представления объектов 9 проверок · 5 пунктов
п. 1 — Синоним объекта заполняйте обязательно
Нет проверок
п. 2 — Представление объекта (для регистра - Представление записи) задавайте в единственном числе
п. 3 — Расширенное представление объекта (для регистра - Расширенное представление записи) задавайте как полное название объекта в единственном числе
п. 4 — Представление списка задавайте во множественном числе
п. 5 — Расширенное представление списка задавайте как полное название списка объектов
п. 6 — Расширенное представление задавайте как полное название объекта метаданных
п. 7 — Пояснение используйте для уточнения назначения объекта, если представления недостаточно
Нет проверок
п. 8 — Картинку задавайте для подсистем верхнего уровня с флагом Включать в командный интерфейс
Нет проверок
#std469: Правила создания общих модулей 28 проверок · 8 пунктов
п. 1.1 — Общие модули создавайте для процедур и функций, объединенных по одному признаку
Нет проверок
п. 1.2 — При разработке общих модулей выбирайте один из четырех контекстов выполнения
п. 2.1 — Серверные общие модули используйте для внутренней серверной бизнес-логики,
Нет проверок
п. 2.2 — Серверные общие модули для вызова с клиента содержат серверные процедуры и функции,
п. 2.3 — Клиентские общие модули содержат клиентскую бизнес-логику
п. 2.4 — Чтобы избежать дублирования кода,
п. 3.1 — Имена общих модулей формируйте по общим правилам именования
п. 3.2 — Дополнительно к базовым постфиксам допускаются уточняющие постфиксы
Нет проверок
п. 3.2.1 — Для глобальных модулей используйте постфикс Глобальный (Global)
п. 3.2.2 — Для модулей с признаком Привилегированный
п. 3.2.3 — Для модулей с функциями повторного использования возвращаемых значений
п. 3.2.4 — В библиотечных конфигурациях для модулей,
Нет проверок
п. 3.2.5 — В локализуемых конфигурациях,
Нет проверок
#std470: Использование функциональных опций 0 проверок · 0 пунктов
п. 1.1 — Если часть функциональности конфигурации может быть необязательной,
Нет проверок
п. 1.2 — Доступность функциональности можно задавать не только для всей базы,
Нет проверок
п. 1.3 — Не используйте функциональные опции не по назначению
Нет проверок
п. 2.1 — Платформа не предоставляет отдельного механизма установки функциональных опций
Нет проверок
п. 2.2 — Для параметризованных опций учитывайте правила вычисления значения:
Нет проверок
п. 2.3 — Если опция хранится в ресурсе периодического регистра сведений,
Нет проверок
п. 2.4 — Изменение значения функциональной опции не обновляет командный интерфейс автоматически
Нет проверок
п. 2.5 — Значения функциональных опций кешируются на сервере
Нет проверок
п. 3.1 — Если одна функциональность зависит от других,
Нет проверок
п. 3.2 — Для взаимоисключающих функциональных опций используйте элементы,
Нет проверок
п. 3.3 — Если незначительная функциональность сложно зависит от нескольких опций
Нет проверок
п. 4.1 — По соображениям производительности не рекомендуется иметь более 10 параметров функциональных опций
Нет проверок
п. 4.2 — При проектировании состава функциональных опций и их параметров придерживайтесь схемы:
Нет проверок
#std473: Использование кодов (номеров) объектов конфигурации 2 проверки · 1 пункт
п. 1 — Необходимость применения кодов (номеров) объектов конфигурации определяйте из прикладной задачи
Нет проверок
п. 1.1 — Пользователям предстоит работать со списками, содержащими большое количество элементов
Нет проверок
п. 1.2 — Искать данные по коду (номеру) удобнее, чем по другим свойствам
Нет проверок
п. 1.3 — Код имеет прикладной смысл, продиктованный спецификой автоматизируемой области
Нет проверок
п. 2 — Автонумерация объектов конфигурации не нужна в следующих случаях
Нет проверок
п. 2.1 — Код используется как краткое строковое представление элемента данных
Нет проверок
п. 2.2 — Код (номер) приходит из внешних источников (входящие данные)
Нет проверок
п. 3 — Длину кода (номера) устанавливайте в зависимости от назначения кода и способа его получения
п. 3.1 — Для объектов с автонумерацией длину кода (номера) выбирайте исходя из потенциального количества:
Нет проверок
п. 3.2 — Для объектов, где код используется как краткое строковое представление (см
Нет проверок
п. 3.3 — Для объектов, где код (номер) приходит из внешних источников (см
Нет проверок
п. 3.4 — Рекомендуется использовать переменную допустимую длину кода (номера)
Нет проверок
п. 4 — Если прикладное решение работает с данными, которые могут вводиться параллельно из нескольких мест (в рамках РИБ или в других программах), должна быть реализована автоматическая префиксация объектов конфигурации
Нет проверок
#std474: Имя, синоним, комментарий 24 проверки · 8 пунктов
п. 1.1 — Синоним объекта заполняйте обязательно
п. 1.2 — Не используйте в синонимах сокращения, кроме общеупотребительных и понятных целевой аудитории, например:
Нет проверок
п. 1.3 — В синонимах и пользовательских сообщениях используйте общепринятые термины
Нет проверок
п. 1.4 — Если у объекта есть стандартные реквизиты и табличные части, задавайте для них синонимы по прикладному смыслу
Нет проверок
п. 1.5 — Для стандартных реквизитов Родитель и Владелец всегда задавайте синонимы, отличные от значений по умолчанию
п. 1.6 — Если есть два и более схожих объекта, синонимы должны полностью различать их назначение
Нет проверок
п. 2.1 — Имя объекта рекомендуется строить на основе синонима:
п. 2.2 — Исключение: объекты метаданных с префиксом Удалить
Нет проверок
п. 2.3 — Имена объектов метаданных не должны превышать 80 символов
п. 2.4 — Для подчиненных объектов (реквизиты, измерения, ресурсы) не используйте имена, совпадающие с именами объектов-владельцев
п. 2.5 — Не используйте имена, совпадающие с именами таблиц языка запросов (Документ, Справочник, РегистрСведений и т.п.)
п. 3.1 — Комментарий задавайте только когда нужно дать разработчику важное пояснение по объекту
Нет проверок
п. 3.2 — Комментарий начинайте с прописной буквы
п. 4 — В именах, синонимах и комментариях не используйте букву ё
Стандарт в целом
#std477: Самодостаточность регистров 1 проверка · 0 пунктов
#std478: Подсказка и проверка заполнения 3 проверки · 1 пункт
п. 1.1 — Свойство Подсказка задавайте только для тех реквизитов и объектов, которые пользователь видит в интерфейсе и для которых действительно нужно пояснение
п. 2.1 — Для типизированных объектов метаданных, стандартных реквизитов и табличных частей, которые обязательны по логике объекта, устанавливайте свойство Проверка заполнения = Выдавать ошибку
Нет проверок
п. 2.2 — Описывайте ограничения максимально в метаданных
Нет проверок
п. 2.3 — Если проверка заполнения зависит от условий, управляйте автопометкой незаполненного значения через условное оформление формы
Нет проверок
#std480: Оформление карты маршрута бизнес-процесса 0 проверок · 0 пунктов
п. 1
Нет проверок
п. 1.1 — Бизнес-процессы рисуйте сверху вниз
Нет проверок
п. 1.2 — Используйте стандартную сетку: шаг 20 точек, линии сетки включены
Нет проверок
п. 1.3 — Не используйте жирные и разноцветные шрифты
Нет проверок
п. 1.4 — Количество изгибов соединительных линий должно быть минимальным
Нет проверок
п. 1.5 — При размещении декораций и точек маршрута соблюдайте отступ в одну клетку от левого и верхнего края карты маршрута
Нет проверок
п. 1.6 — Ширину точек маршрута делайте равной четному количеству клеток
Нет проверок
п. 1.7 — Текст в точках маршрута и декорациях выравнивайте по центру (по умолчанию)
Нет проверок
п. 1.8 — Размещайте декорации и точки маршрута так, чтобы они не пересекали границы печатного листа (меню Графическая схема - Режим просмотра страниц)
Нет проверок
п. 2
Нет проверок
п. 2.1 — Точки Старт и Завершение устанавливайте размером 2х2 клетки, без наименования
Нет проверок
п. 2.2 — Точки Действие, Автоматическая обработка, Вложенный бизнес-процесс должны иметь размер, достаточный для размещаемого текста
Нет проверок
п. 2.3 — Изображения входящих документов располагайте слева от точки на расстоянии двух клеток и соединяйте с точкой пунктирной линией со стрелкой
Нет проверок
п. 2.4 — Комментарии к точкам маршрута размещайте на расстоянии двух клеток:
Нет проверок
п. 2.5 — Точки условного перехода должны содержать короткий вопрос, заканчивающийся знаком вопроса
Нет проверок
#std482: Заполнение свойств конфигурации информацией о выпуске 10 проверок · 9 пунктов
п. 1 — Синоним
п. 2 — Имя
п. 3 — Краткая информация
п. 4 — Подробная информация
п. 5 — Логотип
Нет проверок
п. 6 — Заставка
Нет проверок
п. 7 — Авторские права
п. 8 — Адрес информации о поставщике
п. 9 — Адрес информации о конфигурации
п. 10 — Поставщик
п. 11 — Версия
Нет проверок
п. 12 — Адрес каталога обновлений
#std483: Нумерация редакций и версий 2 проверки · 1 пункт
#std484: Общие сведения о выпуске конфигураций 0 проверок · 0 пунктов
#std485: Использование привилегированного режима 1 проверка · 1 пункт
п. 1.1 — Привилегированный режим позволяет:
Нет проверок
п. 1.2 — Используйте привилегированный режим, когда:
Нет проверок
п. 2 — Ниже приведены типовые сценарии использования привилегированного режима
Нет проверок
п. 2.1 — Если подчиненные регистры (движения документов) нужны пользователю только для отчетов:
Нет проверок
п. 2.2 — Если регистры не нужны пользователю ни в отчетах, ни в командном интерфейсе,
Нет проверок
п. 2.3 — Если для разрешенной операции требуются заранее недоступные пользователю данные,
Нет проверок
п. 2.4 — Привилегированный режим можно использовать для повышения производительности,
Нет проверок
п. 3 — Неоправданное использование привилегированного режима создает риски безопасности
п. 3.1 — Опасны экспортные серверные процедуры и функции,
Нет проверок
п. 3.2 — Если к экспортной процедуре/функции обращается пользователь с недостаточными правами,
Нет проверок
п. 3.3 — Включайте привилегированный режим точечно:
Нет проверок
п. 4 — Для перехода в привилегированный режим используйте возможности платформы:
Нет проверок
#std486: Использование модуля объекта, модуля менеджера объекта и общих модулей 0 проверок · 0 пунктов
п. 1 — Модуль объекта отвечает за поведение
Нет проверок
п. 2 — Модуль менеджера предназначен для "статической" логики,
Нет проверок
п. 3 — Если функциональность нельзя однозначно отнести
Нет проверок
#std487: Минимизация количества серверных вызовов и трафика 2 проверки · 2 пункта
п. 1.1 — Контролируйте количество серверных вызовов из клиентского кода
Нет проверок
п. 1.2 — Для мобильного клиента и медленных соединений оптимизируйте не только число вызовов, но и трафик
Нет проверок
п. 2.1 — Код обработчиков ПередНачаломРаботыСистемы и ПриНачалеРаботыСистемы в простом сценарии не должен обращаться к серверу
Нет проверок
п. 2.2 — Если в конфигурации используется БСП, применяйте ее программный интерфейс:
Нет проверок
п. 3.1 — Когда нужно периодически передавать данные с клиента на сервер или проверять состояние сервера,
Нет проверок
п. 3.2 — Если используется БСП, реализуйте периодическое взаимодействие через ее программный интерфейс
Нет проверок
п. 3.2.1 — Для длительных операций ожидайте результат через ДлительныеОперацииКлиент.ОжидатьЗавершение
Нет проверок
п. 3.2.2 — Для отдельной формы без длительных операций допустимы бесконтекстные периодические вызовы,
Нет проверок
п. 3.2.3 — Для периодической проверки состояния сервера и отправки оповещений клиентам:
Нет проверок
п. 3.2.4 — Для периодической отправки данных с клиента на сервер:
Нет проверок
п. 4.1 — Если форма открывается из кода, выполняйте это за один вызов ОткрытьФорму
Нет проверок
п. 4.2 — При открытии формы не вызывайте сервер из клиентских обработчиков ПриОткрытии и ПриПовторномОткрытии
Нет проверок
п. 4.3 — Не подключайте несколько разных обработчиков ожидания (ПодключитьОбработчикОжидания) для проверки готовности фоновых заданий одной формы
Нет проверок
п. 5.1 — Локальная команда формы должна приводить максимум к одному серверному вызову
Нет проверок
п. 5.2 — В общем случае выбор из справочника должен вызывать только один серверный вызов из кода:
Нет проверок
п. 6.1 — Глобальная команда должна приводить максимум к одному серверному вызову из кода
Нет проверок
п. 6.3 — Если после выбора нужна бизнес-логика, выполняемая только на сервере,
Нет проверок
п. 7.1 — При выполнении команды формирования отчета не делайте дополнительных серверных вызовов из кода конфигурации
Нет проверок
п. 8.1 — При подборе элементов между формой объекта и формой подбора передается список выбранных элементов
Нет проверок
п. 8.2 — Для оптимизации передачи данных между формами используйте временное хранилище,
Нет проверок
п. 8.3 — При работе с временным хранилищем используйте один из двух вариантов:
п. 9 — Не добавляйте отдельный серверный вызов из клиентских ПередЗаписью и ПослеЗаписи
Нет проверок
п. 10 — Учитывайте клиентские методы и свойства, которые могут вызывать сервер:
Нет проверок
п. 11 — Не передавайте на сервер больше данных, чем нужно для задачи
Нет проверок
п. 12 — Не возвращайте с сервера обратно параметры, которые пришли с клиента
#std488: Стандартные роли 39 проверок · 17 пунктов
п. 1.1 — Если в конфигурации есть разграничение прав доступа,
Нет проверок
п. 1.2 — Роли можно строить двумя способами:
Нет проверок
п. 2 — В конфигурации должны быть обязательные роли:
п. 2.1 — ПолныеПрава (FullAccess) должна:
п. 2.2 — АдминистраторСистемы (SystemAdministrator) — роль системного администрирования
Нет проверок
п. 2.3 — ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок
п. 2.4 — Роли ПолныеПрава, АдминистраторСистемы и
п. 2.5 — Если нужно дать «неполноправным» пользователям право на удаление,
Нет проверок
п. 3 — Для общих прав работы с информационной базой
п. 3.1 — Администрирование (Administration) предоставляет права:
п. 3.2 — ВыводНаПринтерФайлБуферОбмена (OutputToPrinterFileClipboard) предоставляет право:
п. 3.3 — ЗапускAutomation (StartAutomation) предоставляет право:
п. 3.4 — ЗапускВебКлиента (StartWebClient) предоставляет право:
п. 3.5 — ЗапускВнешнегоСоединения (StartExternalConnection) предоставляет право:
п. 3.6 — ЗапускТолстогоКлиента (StartThickClient) предоставляет право:
п. 3.7 — ЗапускТонкогоКлиента (StartThinClient) предоставляет право:
п. 3.8 — ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок
Нет проверок
п. 3.9 — ОбновлениеКонфигурацииБазыДанных (UpdateDatabaseConfiguration)
п. 3.10 — ПросмотрЖурналаРегистрации (ViewEventLog)
п. 3.11 — РежимТехническогоСпециалиста (TechnicalSpecialistMode)
Нет проверок
п. 3.12 — СохранениеДанныхПользователя (SaveUserData)
п. 4.1 — Если отдельным пользователям нужен временный или постоянный доступ
Нет проверок
п. 4.2 — Если роли в конфигурации построены по должностям
Нет проверок
п. 4.3 — Если роли построены по отдельным функциям,
п. 5 — Ни в одной роли, включая ПолныеПрава и АдминистраторСистемы,
п. 6 — При разработке расширений не рекомендуется заимствовать и изменять роли
Нет проверок
п. 6.1 — Если права на все объекты расширения одинаковые для всех категорий пользователей:
Нет проверок
п. 6.2 — Если права на объекты расширения различаются для администратора и пользователей,
Нет проверок
п. 6.3 — Если права различаются для администратора, пользователей и внешних пользователей,
Нет проверок
п. 6.4.1 — В конфигурациях на базе БСП роли из пп
Нет проверок
п. 6.4.2 — Если в расширении нужна гибкая настройка прав доступа,
Нет проверок
п. 6.5 — В конфигурациях без БСП (или без использования профилей)
Нет проверок
#std489: Ограничения при использовании динамических списков 2 проверки · 1 пункт
п. 1.1 — При разработке интерфейса можно использовать группировки
Нет проверок
п. 1.2 — Пользователь может установить свои группировки через настройку списка
Нет проверок
п. 1.3 — Группировки рекомендуется использовать в динамических списках,
Нет проверок
п. 1.4 — В динамических списках,
Нет проверок
п. 1.5 — Многоуровневые группировки допустимы только если:
Нет проверок
п. 1.6 — Не рекомендуется делать группировки по полям,
Нет проверок
п. 2 — Для иерархических списков
Нет проверок
п. 3 — Строку поиска в командной панели динамического списка
#std490: Блокировка данных объекта для редактирования из кода 2 проверки · 1 пункт
п. 1.1 — Перед изменением существующего объекта информационной базы из встроенного языка предварительно устанавливайте блокировку данных для редактирования (объектную блокировку)
Нет проверок
п. 1.2 — Для блокировки из встроенного языка используйте метод Заблокировать() у объекта или метод глобального контекста ЗаблокироватьДанныеДляРедактирования()
п. 1.3 — При редактировании данных в формах платформа 1С:Предприятие автоматически устанавливает блокировку объекта, который указан как основной реквизит формы
Нет проверок
п. 2 — Не проверяйте блокировку объектов для редактирования в случаях:
Нет проверок
#std491: Влияние изменения значений параметров сеанса и функциональных опций на производительность механизма ограничения доступа к данным 0 проверок · 0 пунктов
#std492: Обработчики событий модуля формы, подключаемые из кода 2 проверки · 1 пункт
#std494: Предварительная инициализация локальных переменных 0 проверок · 0 пунктов
#std495: Особенности реализации команд для форм списков 0 проверок · 0 пунктов
#std496: Чтение отдельных реквизитов объекта из базы данных 2 проверки · 0 пунктов
#std497: Запись событий в историю работы пользователя 0 проверок · 0 пунктов
#std498: Использование Журнала регистрации 9 проверок · 3 пункта
п. 1 — Журнал регистрации хранит события, которые возникают в работе пользователей с информационной базой
Нет проверок
п. 2 — Пишите события в журнал регистрации из встроенного языка, когда администратору нужна дополнительная диагностика, которую платформа не пишет автоматически
Нет проверок
п. 2.1 — Используйте строковый идентификатор типа события
п. 2.2 — Выбирайте уровень важности события по смыслу:
п. 2.3 — Комментарий — это текстовая неструктурированная информация о событии
п. 3 — Не используйте выборки из журнала регистрации там, где критична высокая скорость
Нет проверок
Стандарт в целом
#std499: Перехват исключений в коде 6 проверок · 5 пунктов
п. 1 — Не перехватывайте исключения без необходимости
п. 2 — Если технологический текст исключения непонятен пользователю,
п. 2.1 — В таких случаях допустимо перехватить и перевызвать исключение
Нет проверок
п. 2.2 — В особых сценариях (например, обработчики обновления информационной базы)
п. 3 — Частные случаи некорректного перехвата исключений
п. 3.1 — Не анализируйте текст исключения для интерпретации причины ошибки
Нет проверок
п. 3.2 — Недопустимо перехватывать любые исключения бесследно для системного администратора
п. 4 — Порядок обработки исключений при использовании транзакций
Нет проверок
#std500: Общие правила построения интерфейсов 2 проверки · 1 пункт
п. 1 — Для каждой укрупненной группы пользователей
Нет проверок
п. 2.1 — Главное меню должно обеспечивать доступ
Нет проверок
п. 2.2 — При любом положении выбора действия
Нет проверок
п. 2.3 — По умолчанию пункты меню
Нет проверок
п. 3.1 — Интерфейс следует проектировать так,
Нет проверок
п. 3.2 — Однотипные блоки меню
Нет проверок
п. 4 — В каждой конфигурации
#std501: Общие интерфейсы 2 проверки · 1 пункт
п. 1 — Для отображения пунктов меню
п. 2 — На верхнем уровне главного меню
Нет проверок
п. 3 — В меню Сервис
Нет проверок
п. 4 — В интерфейсе Общий
Нет проверок
п. 5 — В конфигурации
Нет проверок
#std502: Интерфейс "Полный" 0 проверок · 0 пунктов
п. 1 — Интерфейс Полный
Нет проверок
п. 2 — На верхнем уровне главного меню
Нет проверок
п. 3 — На верхнем уровне
Нет проверок
п. 4 — Запрещается группировать подменю
Нет проверок
#std503: Имя элемента управления 1 проверка · 0 пунктов
п. 1 — Для элементов управления
Нет проверок
п. 2 — Для элементов управления
Нет проверок
п. 3 — Если данные
Нет проверок
п. 4 — Если не указаны
Нет проверок
п. 5 — Если по этим правилам
Нет проверок
Стандарт в целом
#std504: Изменения размера колонки табличного поля 1 проверка · 0 пунктов
#std505: Размеры формы 2 проверки · 0 пунктов
#std506: Подсказки 2 проверки · 0 пунктов
#std507: Использование флагов "Автовыбор незаполненного" и "Автоотметка незаполненного" 1 проверка · 0 пунктов
#std508: Использование гиперссылок в диалогах форм 0 проверок · 0 пунктов
#std509: Привязки 0 проверок · 0 пунктов
#std510: Отступы 0 проверок · 0 пунктов
#std511: Использование закладок 1 проверка · 0 пунктов
#std512: Порядок обхода элементов диалога 0 проверок · 0 пунктов
#std513: Размещение кнопки вызова справки в формах 0 проверок · 0 пунктов
#std514: Отображение единственного табличного поля в форме 0 проверок · 0 пунктов
#std515: Разделители 2 проверки · 0 пунктов
#std516: Кнопки 3 проверки · 0 пунктов
#std517: Картинки 0 проверок · 0 пунктов
#std518: Программное управление видимостью страниц 0 проверок · 0 пунктов
#std519: Программное управление формой 0 проверок · 0 пунктов
#std520: Ограничение выполнения действий, доступных только при определенных условиях 0 проверок · 0 пунктов
#std521: Поведение специализированных форм 0 проверок · 0 пунктов
#std522: Обращение к данным информационной базы в обработчиках часто вызываемых событий 0 проверок · 0 пунктов
#std523: Обращение к свойству "ТекущаяСтрока" табличного поля 0 проверок · 0 пунктов
#std524: Стили 10 проверок · 2 пункта
#std526: Ограничения по использованию одинаковых текстов на элементах управления в форме 0 проверок · 0 пунктов
#std527: Использование пояснений в полях ввода и выбора 0 проверок · 0 пунктов
#std528: Особенности размещения в командных панелях пунктов меню, не предназначенных для решения основных задач 0 проверок · 0 пунктов
#std531: Реквизит «Комментарий» у документов 4 проверки · 1 пункт
п. 1 — Для всех документов рекомендуется создавать реквизит Комментарий (строка неограниченной длины)
п. 2 — Если рабочий сценарий предполагает ввод произвольного прикладного текста, создавайте отдельные реквизиты прикладного назначения
Нет проверок
п. 3 — В простом варианте для внешнего редактирования комментария используйте функцию ВвестиСтроку
Нет проверок
#std532: Установка прав для новых объектов и полей объектов 3 проверки · 2 пункта
п. 1 — При разработке ролей выбирайте методику установки прав, которая не допускает появления ролей с доступом к полям объекта без доступа к самому объекту
п. 2
п. 3 — При добавлении новой роли:
Нет проверок
п. 4 — Если нужно дать права только на поля объекта метаданных (просмотр/редактирование реквизитов, табличных частей, измерений, команд и т.п.) без прав на сам объект, сначала:
Нет проверок
п. 5 — При добавлении новых объектов или новых полей существующих объектов обязательно настраивайте права на них в соответствующих ролях
Нет проверок
#std533: Особенности табличного документа в веб-клиенте 0 проверок · 0 пунктов
п. 1 — Чтобы обеспечить приемлемую скорость работы форм в веб-клиенте,
Нет проверок
п. 1.1 — Если после изменения ячейки нужно пересчитать состояние формы
Нет проверок
п. 1.2 — Если серверный вызов при завершении редактирования ячейки все же нужен,
Нет проверок
п. 1.3 — Избегайте в макетах табличных документов большого количества колонок и объединений
Нет проверок
п. 2 — В веб-браузерах Microsoft Internet Explorer 6.0 и 7
Нет проверок
п. 3 — В веб-клиенте, если у ячейки табличного документа
Нет проверок
#std534: Удаление устаревших объектов метаданных из конфигурации 6 проверок · 2 пункта
п. 1 — При изменении структуры метаданных, если объект связан с данными ИБ, заранее решите: переносить данные или удалять
Нет проверок
п. 1.1 — Не удаляйте устаревшие объекты и реквизиты сразу
п. 1.2 — После изменения структуры обеспечьте перенос данных из устаревших объектов и реквизитов в новую структуру
Нет проверок
п. 1.3 — Если удаляемый объект — документ-регистратор, а регистры остаются, решите вопрос сохранения движений
Нет проверок
п. 1.4 — Замените по всей конфигурации обращения к устаревшим объектам и реквизитам на новые
п. 1.5 — Сортируйте устаревшие объекты и реквизиты в дереве метаданных по общим требованиям к конфигурации
Нет проверок
п. 1.6 — Рекомендуется очистить устаревшие данные, чтобы они не влияли на размер базы и не потребляли ресурсы
Нет проверок
п. 2 — Перенос данных требуется также при изменении структуры измерений регистров сведений, если:
Нет проверок
п. 3 — Удаляйте устаревшие объекты и реквизиты с префиксом Удалить (Obsolete) только при выпуске новых версий и при одном из условий:
Нет проверок
Стандарт в целом
#std535: Округление результатов арифметических операций в запросах 0 проверок · 0 пунктов
#std536: Обращение из кода к автоматически формируемым элементам управления формы 0 проверок · 0 пунктов
#std537: Команды по модификации объектов 0 проверок · 0 пунктов
#std539: Запуск регламентных заданий 0 проверок · 0 пунктов
п. 1 — Рекомендуется давать пользователю
Нет проверок
п. 1.1 — Если регламентное задание изменяет в системе данные,
Нет проверок
п. 1.2 — Если регламентное задание влияет на данные,
Нет проверок
п. 1.3 — Если регламентное задание
Нет проверок
п. 2 — Для администраторов информационных баз
Нет проверок
#std540: Общие требования к регламентным заданиям 2 проверки · 2 пункта
п. 1 — В общем случае
Нет проверок
п. 2 — Если регламентные задания
Нет проверок
п. 3.1 — Регламентные задания нельзя выполнять,
Нет проверок
п. 3.2 — Дополнительно обезопасьте выполнение
п. 4.1 — Если выполнение регламентного задания
Нет проверок
п. 4.2 — Если в конфигурации используется
Нет проверок
п. 5 — Чтобы избежать конфликтных ситуаций,
Нет проверок
п. 6 — Если регламентное задание
#std541: Уточнение сущности объекта метаданных 0 проверок · 0 пунктов
п. 1 — Используйте разные типы объектов метаданных для разных сущностей
Нет проверок
п. 2 — Для уточнения сущности объекта используйте отдельные реквизиты, которые явно задают вид или состояние
Нет проверок
п. 3 — Если у сущности несколько состояний, не заводите несколько булевых реквизитов для каждого состояния
Нет проверок
#std542: Доступ к файловой системе из кода конфигурации 6 проверок · 4 пункта
п. 1 — При обращении к файлам и каталогам из кода конфигурации учитывайте права пользователя ОС, от имени которого запущено приложение
п. 1 — Для получения имени временного файла используйте ПолучитьИмяВременногоФайла() (исключение: веб-клиент, см
п. 1 — Если один и тот же файл обрабатывается и на клиенте, и на сервере, передавайте его через временное хранилище
п. 1.1 — Если код выполняется на клиенте, доступ к файловой системе идет под правами пользователя, который запустил приложение (тонкий, толстый или веб-клиент)
Нет проверок
п. 1.2 — Если код выполняется на сервере:
Нет проверок
п. 2 — Запрещено записывать файлы в каталог исполняемых файлов платформы, получаемый через КаталогПрограммы()
Нет проверок
п. 2 — Для временного каталога также используйте имя, полученное через ПолучитьИмяВременногоФайла() (исключение: веб-клиент, см
Нет проверок
п. 2 — Если данные файла должны храниться между несколькими серверными вызовами, при помещении в хранилище передавайте УникальныйИдентификаторФормы в ПоместитьФайл()
Нет проверок
п. 3 — Даже если #std761: локализация конфигурации на другие языки не планируется, обеспечивайте переносимость автоматически сформированных файлов между ОС с разными кодировками
Нет проверок
п. 3 — Если в конфигурацию встроена БСП, для помещения файлов во временное хранилище используйте ЗагрузитьФайл() и ЗагрузитьФайлы() общего модуля ФайловаяСистемаКлиент
Нет проверок
п. 3.1 — В именах файлов, которые формируются системой, используйте только английские буквы и цифры
Нет проверок
п. 3.1 — В веб-клиенте ПолучитьИмяВременногоФайла() недоступен
Нет проверок
п. 3.2 — Если имя файла вводит пользователь, разрешайте русскоязычные имена, но дайте возможность транслитерации в латиницу
Нет проверок
п. 3.2 — Если в конфигурацию встроена БСП, для создания временных каталогов на клиенте используйте ФайловаяСистемаКлиент.СоздатьВременныйКаталог()
Нет проверок
п. 4 — После завершения работы временный файл или каталог удаляйте явно
п. 5 — Если временные файлы или каталоги используются на сервере, завершайте работу с ними в рамках одного серверного вызова
Нет проверок
п. 5.1 — В редких случаях временные файлы нужно передавать между сеансами (например, подготовка данных для фонового задания или длительный процесс из нескольких вызовов web-сервиса)
Нет проверок
#std543: Использование подсистем 3 проверки · 3 пункта
п. 1 — Подсистемы решают две задачи:
Нет проверок
п. 1.1 — Если структура интерфейса и функциональная структура совпадают, можно использовать одну и ту же иерархию подсистем
п. 1.2 — Если логическая группировка объектов не совпадает с разделами интерфейса, создавайте отдельную иерархию «функциональных» подсистем
п. 1.3 — Объекты без визуального представления в командном интерфейсе (общие модули, регламентные задания, константы, подписки на события и т.п.) включайте только в «функциональные» подсистемы
#std544: Ограничения на использование экспортных процедур и функций 3 проверки · 0 пунктов
#std545: Обращение из кода к пользовательским элементам управления формы 0 проверок · 0 пунктов
#std547: Ограничение на использование оператора Перейти 5 проверок · 2 пункта
#std548: Формирование печатных форм 1 проверка · 1 пункт
п. 1 — Для формирования печатной формы пользователю должно быть достаточно прав:
Нет проверок
п. 2 — В функции печати рекомендуется поддерживать множественную печать
Нет проверок
п. 3 — Следующие рекомендации применимы к нерегламентированным печатным формам
Нет проверок
п. 3.1 — Печатная и экранная формы объектов,
Нет проверок
п. 3.2 — Если строки в экранной форме уже сгруппированы,
Нет проверок
п. 3.3 — В табличных частях печатных форм всегда выводите колонку
Нет проверок
п. 3.4 — Если в экранной форме реквизит Номер строки не отображается,
Нет проверок
п. 3.5 — Заголовок колонки с номером строки зависит от прикладной специфики
Нет проверок
п. 4 — Порядок строк табличных частей в печатной форме должен быть одинаковым
Нет проверок
п. 5.1 — При выводе данных в печатные формы обеспечьте,
Нет проверок
п. 5.2 — Если печатные формы строятся табличными макетами,
Нет проверок
п. 6 — При подготовке табличного документа на сервере
#std550: Имена объектов метаданных в конфигурациях 0 проверок · 0 пунктов
п. 1 — Подсистемы именуйте по общим правилам наименования метаданных
Нет проверок
п. 2 — Для именования общих модулей используйте #std469: Правила создания общих модулей
Нет проверок
п. 3 — Параметры сеанса именуйте по общим правилам наименования метаданных
Нет проверок
п. 4 — Для ролей используйте одну из двух схем:
Нет проверок
п. 5 — Общие реквизиты именуйте по общим правилам наименования метаданных
Нет проверок
п. 6 — Для планов обмена используйте такие правила:
Нет проверок
п. 7 — Критерии отбора именуйте во множественном числе, по списку отбираемых объектов
Нет проверок
п. 8 — Подписки на события именуйте от сути действия и образуйте от неопределенной формы глагола
Нет проверок
п. 9 — Регламентные задания именуйте в единственном числе, от существительного
Нет проверок
п. 10 — Функциональные опции, связанные с константами, именуйте по включаемой или выключаемой функциональности
Нет проверок
п. 11 — Параметры функциональных опций именуйте по смыслу параметра
Нет проверок
п. 12 — Определяемые типы именуйте в единственном числе, по назначению
Нет проверок
п. 13 — Хранилища настроек именуйте по общим правилам наименования метаданных
Нет проверок
п. 14 — Общие формы именуйте от существительных
Нет проверок
п. 15 — Для общих команд используйте такие правила:
Нет проверок
п. 16 — Группы команд именуйте от существительных
Нет проверок
п. 17 — Интерфейсы именуйте по общим правилам наименования метаданных
Нет проверок
п. 18 — Общие макеты именуйте от существительных, которые кратко описывают назначение или содержимое
Нет проверок
п. 19 — Общие картинки именуйте по общим правилам наименования метаданных
Нет проверок
п. 20 — XDTO-пакеты именуйте на русском языке, от существительных, которые кратко описывают содержимое или назначение
Нет проверок
п. 21 — Web-сервисы именуйте на английском языке, от существительных
Нет проверок
п. 22 — WS-ссылки именуйте от существительных по назначению сервиса
Нет проверок
п. 23 — Элементы стиля именуйте от существительных по назначению
Нет проверок
п. 24 — Стили именуйте по общим правилам наименования метаданных
Нет проверок
п. 25 — Языки именуйте по наименованию языка интерфейса
Нет проверок
п. 26 — Константы именуйте по таким правилам:
Нет проверок
п. 27 — Справочники именуйте во множественном числе, по списку хранимых объектов
Нет проверок
п. 28 — Документы именуйте в единственном числе
Нет проверок
п. 28.1 — Если документ отражает процесс в системе, имя должно описывать именно процесс
Нет проверок
п. 28.2 — Если документ нужен только для получения печатной формы и не отражает отдельный процесс,
Нет проверок
п. 29 — Журналы документов именуйте во множественном числе, по списку содержащихся документов
Нет проверок
п. 30 — Перечисления именуйте во множественном числе
Нет проверок
п. 31 — Для отчетов и вариантов отчетов применяйте отдельные правила
Нет проверок
п. 31.1 — Имена отчетов и вариантов отчетов образуйте от существительного
Нет проверок
п. 31.2 — Если отчет или вариант отчета предназначен для печати, предусмотрите вывод заголовка
Нет проверок
п. 31.3 — Представление варианта отчета:
Нет проверок
п. 31.4 — Не используйте в именах отчетов и вариантов отчетов лишние слова (Отчет...)
Нет проверок
п. 32 — Обработки именуйте от существительного
Нет проверок
п. 33 — Планы видов характеристик именуйте во множественном числе,
Нет проверок
п. 34 — Планы счетов именуйте в единственном числе, от существительного по назначению
Нет проверок
п. 35 — Планы видов расчета именуйте во множественном числе,
Нет проверок
п. 36 — Регистры сведений и регистры накопления именуйте во множественном числе,
Нет проверок
п. 37 — Регистры бухгалтерии и регистры расчета именуйте по списку записей, которые в них хранятся
Нет проверок
п. 38 — Бизнес-процессы именуйте так же, как документы: в единственном числе
Нет проверок
п. 39 — Задачи бизнес-процессов именуйте в единственном числе
Нет проверок
п. 40 — Внешние источники данных именуйте по описанию импортируемых данных
Нет проверок
#std551: Разработка конфигураций с повторным использованием общего кода и объектов метаданных 2 проверки · 1 пункт
п. 1 — При разработке нескольких конфигураций (например, линейки продуктов) общий код и общие объекты метаданных выносите в библиотеки
Нет проверок
п. 2 — Библиотека может стоять на поддержке у другой библиотеки
Нет проверок
п. 3 — При взаимодействии библиотек, конфигураций-потребителей и внешних систем разделяйте области видимости программного кода
#std552: Имена объектов метаданных в иерархии библиотек 0 проверок · 0 пунктов
п. 1 — Если конфигурация использует одну или несколько #std551: библиотек, избегайте конфликтов имен объектов метаданных (справочников, документов, общих модулей и др.) между библиотеками и самой конфигурацией
Нет проверок
п. 2 — Для независимых одноуровневых библиотек конфликты имен могут обнаружиться поздно - при внедрении или после него
Нет проверок
п. 2.1 — Наиболее универсальные имена используйте в библиотеках нижнего уровня иерархии
Нет проверок
п. 2.2 — В конечных конфигурациях-потребителях и библиотеках более высокого уровня используйте более специфичные названия предметной области
Нет проверок
п. 2.3 — Если функционал расширяет аналогичный функционал библиотеки нижнего уровня или конфликтует с соседней одноуровневой библиотекой, добавляйте уточняющий постфикс - имя библиотеки или конфигурации-потребителя
Нет проверок
#std553: Переопределяемые и поставляемые объекты библиотеки 0 проверок · 0 пунктов
п. 1 — Для настройки библиотеки в конфигурации-потребителе делите объекты на три категории:
Нет проверок
п. 2 — Рекомендуемые правила поставки:
Нет проверок
п. 3 — Чтобы упростить настройку библиотеки и обновления в конфигурации-потребителе, минимизируйте количество переопределяемых объектов
Нет проверок
п. 3.1 — Переопределяемые общие модули называйте с постфиксом Переопределяемый
Нет проверок
п. 3.2 — Переопределяемые общие модули должны содержать только экспортные процедуры, которые вызываются из кода библиотеки
Нет проверок
п. 3.3 — В переопределяемом модуле оставляйте только экспортные процедуры с пустой реализацией
Нет проверок
п. 3.4 — При обновлении библиотеки в конфигурации-потребителе особого внимания требуют:
Нет проверок
#std554: Переопределение общих модулей в условиях иерархии библиотек 7 проверок · 1 пункт
п. 1 — В библиотеке нижнего уровня (базовой) объявляйте переопределяемый модуль по правилам #std469: создания общих модулей
Нет проверок
п. 2 — В библиотеках более высокого уровня реализацию процедур и функций базового переопределяемого модуля доопределяйте при необходимости
п. 3 — В конечной конфигурации-потребителе реализация переопределяемого модуля строится как цепочка вызовов библиотек плюс прикладная часть
Нет проверок
Стандарт в целом
#std556: Начальные действия при работе конфигурации 0 проверок · 0 пунктов
п. 1 — В конфигурации должен быть механизм, который автоматически:
Нет проверок
п. 2 — Первичное заполнение ИБ можно разделять на:
Нет проверок
п. 3 — После обработки ИБ при первом запуске конфигурации или при первом запуске нового релиза рекомендуется показывать администратору:
Нет проверок
п. 4 — Ситуации, когда обработка выполнена не полностью, должны контролироваться конфигурацией
Нет проверок
п. 5 — Если конфигурация работает с распределенной информационной базой (РИБ), обновление данных в подчиненных узлах должно:
Нет проверок
#std557: Работа с пользовательскими настройками 0 проверок · 0 пунктов
п. 1.1 — Для хранения персональных настроек пользователя используйте ХранилищеОбщихНастроек
Нет проверок
п. 1.2 — Для работы с пользовательскими настройками у пользователя должно быть право СохранениеДанныхПользователя
Нет проверок
п. 1.3 — Для каждой настройки в хранилище общих настроек используйте уникальный строковый ключ
Нет проверок
п. 2.1 — В конфигурации должно быть общее место для редактирования всех пользовательских настроек
Нет проверок
п. 2.2 — Форма персональных настроек может быть не единственным местом для редактирования
Нет проверок
п. 2.3 — Форма персональных настроек, другие формы (рабочие места) и отдельные элементы форм для работы с персональными настройками должны быть доступны только пользователям с правом СохранениеДанныхПользователя
Нет проверок
п. 3.1 — Настройки из хранилища общих настроек не мигрируют между узлами информационной базы
Нет проверок
п. 3.2 — Все настройки в хранилище общих настроек сохраняются в разрезе пользователей по строковому имени пользователя
Нет проверок
#std558: Обновление списков при интерактивных действиях пользователя 0 проверок · 0 пунктов
п. 1 — Платформа 1С:Предприятие по умолчанию обновляет динамические списки при стандартных действиях пользователя (Записать, Провести, Пометить на удаление и т.п.), а также при добавлении новых элементов
Нет проверок
п. 2 — Команды в форме списка, которые изменяют объекты, должны обновлять список после выполнения
Нет проверок
п. 3 — Обеспечьте обновление и для динамического списка без основной таблицы
Нет проверок
п. 3.1 — Если данные добавляются или изменяются командой в форме такого списка, обновляйте список явно после выполнения команды
Нет проверок
п. 3.2 — Если данные меняются в другой форме (например, форме объекта), организуйте обновление через оповещение
Нет проверок
п. 3.3 — Если в рамках одной операции изменяется сразу несколько объектов, в параметр ОбъектСсылка метода Оповестить передавайте Неопределено
Нет проверок
#std566: Общие рекомендации 0 проверок · 0 пунктов
п. 1 — Типовым разрешением экрана считается 1280x768 pt
Нет проверок
п. 2 — Разработку (конфигурирование)
Нет проверок
п. 3 — При разработке управляемого интерфейса
Нет проверок
п. 4 — При проектировании интерфейсов
Нет проверок
#std567: Панель разделов 0 проверок · 0 пунктов
#std568: Названия разделов 0 проверок · 0 пунктов
п. 1 — Общая длина названия раздела
Нет проверок
п. 2 — При выборе названия (синонима) учитывайте,
Нет проверок
п. 3 — Чтобы название раздела выглядело аккуратно,
Нет проверок
п. 4 — По возможности не используйте длинные слова
Нет проверок
п. 5 — Выбирайте названия примерно одинаковой визуальной ширины,
Нет проверок
п. 6 — Используйте конкретные,
Нет проверок
п. 7 — Используйте в названиях
Нет проверок
#std569: Картинки разделов 0 проверок · 0 пунктов
#std571: Подсказки для интерфейсных подсистем 0 проверок · 0 пунктов
#std572: Панель навигации основного окна 0 проверок · 0 пунктов
#std573: Порядок и названия команд в панели навигации 0 проверок · 0 пунктов
#std574: Группировка команд 0 проверок · 0 пунктов
#std575: Команды, размещаемые в панели навигации 0 проверок · 0 пунктов
#std576: Панель действий 0 проверок · 0 пунктов
#std578: Рабочий стол 0 проверок · 0 пунктов
#std581: Быстрые отборы в списках 0 проверок · 0 пунктов
п. 1 — Когда использовать
Нет проверок
п. 1.1 — Быстрые отборы следует использовать,
Нет проверок
п. 1.2 — Используйте быстрые отборы,
Нет проверок
п. 1.3 — Используйте быстрые отборы,
Нет проверок
п. 2 — Как оформлять быстрые отборы
Нет проверок
п. 2.1 — Поля ввода или флажки быстрых отборов
Нет проверок
п. 2.2 — Если быстрые отборы размещены сверху,
Нет проверок
п. 2.3 — У полей необязательных отборов
Нет проверок
п. 2.4 — Быстрые отборы
Нет проверок
п. 2.5 — Если поля быстрых отборов
Нет проверок
#std582: Команда "Создать" в журналах документов 0 проверок · 0 пунктов
п. 1 — Для создания документов
Нет проверок
п. 2 — В подменю размещаются команды
Нет проверок
п. 3 — Картинку !Иконка команды Создать{ width="20" }
Нет проверок
п. 4 — В подменю Создать
Нет проверок
п. 5 — При использовании подменю Создать
Нет проверок
#std584: Акцентирование внимания на просроченных или критичных состояниях 0 проверок · 0 пунктов
#std585: Сообщения пользователю 2 проверки · 2 пункта
п. 1 — Общие рекомендации
Нет проверок
п. 1.1 — Сообщения должны быть информативными и содержательными
п. 1.2 — Не используйте восклицательные знаки и повелительный тон,
п. 1.3 — Пишите сообщение текстом, понятным пользователю
Нет проверок
п. 1.4 — Сообщения об ошибках выводите в момент возникновения ошибки
Нет проверок
п. 1.5 — Избегайте двусмысленных вопросов
Нет проверок
п. 1.6 — Не используйте сокращения и аббревиатуры,
Нет проверок
п. 1.7 — Если текст сообщения занимает несколько строк,
Нет проверок
п. 1.8 — В процедурах и функциях, выполняемых в транзакции,
Нет проверок
п. 1.9 — Сообщения, оповещения, предупреждения и состояние
Нет проверок
п. 2 — Сообщение об ошибках в форме
Нет проверок
п. 2.1 — В панели сообщений выводите только ошибки
Нет проверок
п. 2.2 — По возможности привязывайте сообщение к полю,
Нет проверок
п. 2.3 — Сообщение об ошибке должно отвечать на три вопроса:
Нет проверок
п. 2.4 — В панели сообщений текст форматируется автоматически,
Нет проверок
п. 2.5 — Сообщение делайте кратким и понятным
Нет проверок
п. 2.6 — Текст сообщения об ошибке должен содержать побудительную часть,
Нет проверок
п. 3 — Оповещение
Нет проверок
п. 3.1 — Используйте оповещение для информирования без прерывания основной работы
Нет проверок
п. 3.2 — Делайте оповещения с гиперссылками на соответствующие объекты
Нет проверок
п. 3.3 — Текст и пояснение оповещения составляйте так,
Нет проверок
п. 4 — Состояние
Нет проверок
п. 4.1 — Используйте состояние для длительных процессов
Нет проверок
п. 4.2 — Состояние применяйте для длительных операций,
Нет проверок
п. 5 — Предупреждение
Нет проверок
п. 5.1 — Предупреждение используйте только когда нужно прервать работу пользователя,
Нет проверок
п. 5.2 — Не используйте предупреждение для сообщения о начале длительной обработки
Нет проверок
п. 5.3 — Текст предупреждения должен содержать завершенное пояснение
Нет проверок
п. 6 — Вопросы в сообщениях
Нет проверок
п. 6.1 — Используйте вопросы,
Нет проверок
п. 6.2 — Вопросы задавайте перед выполнением:
Нет проверок
п. 6.3 — Ответы в вопросе формулируйте глаголами,
Нет проверок
п. 6.4 — В вопросах кнопкой по умолчанию делайте вариант,
Нет проверок
#std586: Окно старта 0 проверок · 0 пунктов
#std587: Поля "Ответственный" и "Комментарий" 2 проверки · 2 пункта
п. 1 — Расположение группы полей "Ответственный" и "Комментарий"
п. 2 — Оформление поля "Ответственный"
Нет проверок
п. 3 — Оформление поля "Комментарий"
п. 3.1 — Оформление многострочного поля "Комментарий"
Нет проверок
п. 3.2 — Оформление однострочного поля "Комментарий"
Нет проверок
п. 4 — Оформление вкладки "Комментарий"
Нет проверок
#std588: Группа полей "Наименование", "Код", "Полное наименование", "Входит в группу" 0 проверок · 0 пунктов
#std589: Выбор: блокирующая форма или независимая 0 проверок · 0 пунктов
#std590: Частотные кнопки 0 проверок · 0 пунктов
#std591: Команда «Подобрать» 0 проверок · 0 пунктов
#std592: Команда «Отмена» 0 проверок · 0 пунктов
#std593: Единицы измерения 0 проверок · 0 пунктов
п. 1.1 — Единицы измерения
Нет проверок
п. 1.2 — Единицы измерения
Нет проверок
п. 1.3 — Если к единице измерения
Нет проверок
п. 2.1 — Единицу измерения
Нет проверок
п. 2.2 — Если единица измерения
Нет проверок
п. 2.3 — Если единица измерения
Нет проверок
#std594: Значения по умолчанию 0 проверок · 0 пунктов
#std595: Гиперссылка на счет-фактуру 0 проверок · 0 пунктов
#std596: Требования к изображениям (иконкам) 0 проверок · 0 пунктов
#std597: Компоновка форм 0 проверок · 0 пунктов
п. 1 — Общие рекомендации
Нет проверок
п. 1.1 — Один и тот же реквизит
Нет проверок
п. 1.2 — В шапке формы документа
Нет проверок
п. 1.3 — Шапка документа
Нет проверок
п. 2 — Оформление шапки, состоящей из двух колонок
Нет проверок
п. 2.1 — В левой колонке
Нет проверок
п. 2.2 — Реквизиты рекомендуется распределять
Нет проверок
п. 2.3 — Если в форме есть несколько взаимозависимых полей,
Нет проверок
п. 2.4 — Если в форме есть поле Вид операции,
Нет проверок
п. 3 — Примеры оформления конкретных групп полей
Нет проверок
#std598: Тексты 1 проверка · 0 пунктов
п. 1 — Общие рекомендации:
Нет проверок
п. 2 — Названия и заголовки:
Нет проверок
п. 3 — Когда использовать многоточие:
Нет проверок
п. 4 — Не используйте концевые пробельные символы (пробел, неразрывный пробел, табуляция) в:
Нет проверок
п. 5 — Не размещайте в одной форме элементы управления одного типа с одинаковым текстом
Нет проверок
Стандарт в целом
#std599: Выбор: кнопка или гиперссылка 0 проверок · 0 пунктов
#std600: Командный интерфейс 0 проверок · 0 пунктов
#std601: Группа «См. также» 0 проверок · 0 пунктов
#std602: Переход к форме с дополнительными реквизитами 0 проверок · 0 пунктов
#std603: Требования к проведению документов 0 проверок · 0 пунктов
п. 1 — Документы нужны для ввода первичной информации о событиях, которые влияют на учетные показатели
Нет проверок
п. 2.1 — Регистрация события в учете выполняется через проведение документа
Нет проверок
п. 2.2 — Если у документа есть этапы жизненного цикла, для них можно использовать статусы
Нет проверок
п. 2.3 — Исключения из правила «большинство документов должны проводиться»:
Нет проверок
п. 2.4 — Если пользователь должен одним действием и зарегистрировать событие, и отразить его в учете,
Нет проверок
п. 3 — Для отражения события в учете часто нужны вторичные данные
Нет проверок
п. 4 — Иногда движения должны формироваться отдельным документом
Нет проверок
п. 5 — Непроведенные и помеченные на удаление документы не должны иметь #std633: активных движений
Нет проверок
п. 6 — Даже если документ не формирует движений, его нужно проводить,
Нет проверок
п. 7.1.1 — Если в документе не изменялись данные, влияющие на проведение
Нет проверок
п. 7.1.2 — При разработке алгоритмов формирования движений
Нет проверок
п. 7.2 — Чтобы выполнить требования п
Нет проверок
п. 7.2.1 — Если пользователь может изменять внешние по отношению к документу данные
Нет проверок
п. 7.2.2 — Стремитесь минимизировать влияние настроек программы
Нет проверок
п. 7.2.3 — Если исключить зависимость движений от настроек не удалось,
Нет проверок
п. 7.3 — При изменении логики формирования движений, чтобы выполнить п
Нет проверок
п. 8 — Для большинства событий отражение в учете обратимо
Нет проверок
#std604: Многоэтажные списки 0 проверок · 0 пунктов
#std606: Команды, размещаемые во "Всех действиях" 0 проверок · 0 пунктов
#std607: Заголовки списков 0 проверок · 0 пунктов
п. 1 — Оформление заголовка списка
Нет проверок
п. 1.1 — Если список имеет командную панель,
Нет проверок
п. 1.2 — Если список не имеет командной панели,
Нет проверок
п. 2 — Отражение количества элементов в списке
Нет проверок
п. 2.1 — Количество элементов выводите только тогда,
Нет проверок
п. 2.2 — Если для конкретного списка принято выводить
Нет проверок
п. 2.3 — Количество элементов в списке
Нет проверок
п. 2.4 — В пустом списке
Нет проверок
п. 3 — Ситуации, в которых заголовок списка не выводится
Нет проверок
п. 3.1 — Если на форме только один список,
Нет проверок
п. 3.2 — Если на форме два списка,
Нет проверок
п. 3.3 — Если список выводится на странице (вкладке),
Нет проверок
#std609: Группировки в списках 0 проверок · 0 пунктов
#std610: Пояснение невозможности заполнения ячеек в табличных частях 0 проверок · 0 пунктов
#std611: Панель навигации вспомогательного окна 0 проверок · 0 пунктов
#std612: Формы выбора 0 проверок · 0 пунктов
#std613: Итоги в документах 0 проверок · 0 пунктов
#std614: Итоги в журналах документов 0 проверок · 0 пунктов
#std615: Рабочее место 0 проверок · 0 пунктов
#std616: Формы списков 0 проверок · 0 пунктов
#std617: Списки с одной колонкой 0 проверок · 0 пунктов
#std618: Размеры списков 0 проверок · 0 пунктов
#std619: Формы 0 проверок · 0 пунктов
#std620: Командная панель формы 1 проверка · 0 пунктов
#std621: Группы элементов формы 0 проверок · 0 пунктов
#std622: Флажки 0 проверок · 0 пунктов
п. 1 — Подпись располагайте
Нет проверок
п. 2 — Если для флажка нужна подсказка,
Нет проверок
п. 3 — Первая буква подписи флажка
Нет проверок
п. 4 — Подписи у флажков
Нет проверок
п. 5 — Текст подписи
Нет проверок
п. 6 — Подпись к флажку
Нет проверок
п. 7 — Если на форме
Нет проверок
#std623: Группа команд «Важное» в панели навигации 0 проверок · 0 пунктов
#std624: Оформление элементов 0 проверок · 0 пунктов
#std625: Картинки (иконки) в названии команд 0 проверок · 0 пунктов
#std627: Колонки с флажками 0 проверок · 0 пунктов
#std628: Использование объекта ДанныеФормыКоллекция 0 проверок · 0 пунктов
#std629: Минимизация кода, выполняемого на клиенте 0 проверок · 0 пунктов
п. 1.1 — Минимизируйте объем кода, который выполняется на клиенте
Нет проверок
п. 1.2 — На клиенте оставляйте алгоритмы, которые гарантированно выполняются быстрее, чем стоит один серверный вызов
Нет проверок
п. 2.1 — Исключение: подсистема предназначена для работы с ПО, установленным на клиентском компьютере
Нет проверок
п. 2.2 — Если подсистема работает с клиентским ПО только в отдельных режимах клиента, используйте директивы препроцессора
Нет проверок
#std630: Правила создания модулей форм 2 проверки · 1 пункт
п. 1 — Размещайте в модуле формы только код, который нужен для работы этой формы и выполняется в ее контексте
Нет проверок
п. 1.1 — Не размещайте экспортные процедуры и функции в модулях форм
п. 1.2 — Не используйте экспортные процедуры и функции формы для параметризации формы при открытии
Нет проверок
п. 1.3 — Не вызывайте экспортные процедуры и функции модуля формы для обновления данных формы или для программной перерисовки формы по действиям пользователя в других формах
Нет проверок
п. 1.4 — Исключение — экспортные процедуры-обработчики оповещений (ОписаниеОповещения.ИмяПроцедуры)
Нет проверок
п. 2 — Если одна и та же логика нужна на клиенте и на сервере, не дублируйте код
Нет проверок
#std631: Поле, влияющее на состав остальных полей в форме 0 проверок · 0 пунктов
#std632: Использование констант 0 проверок · 0 пунктов
#std633: Использование активности движений 0 проверок · 0 пунктов
п. 1 — Активность записей таких регистров должна учитываться во всех запросах и отчетах
Нет проверок
п. 2 — Активность записей регистров должна учитываться и в универсальных отчетах (или универсальной бизнес-логике), которые работают с произвольными регистрами конфигурации
Нет проверок
п. 3 — При отмене проведения документов, в которых разрешено прямое редактирование движений (ручная корректировка), активность движений нужно отключать, а не удалять сами движения
Нет проверок
#std634: Взаимосвязанные поля 0 проверок · 0 пунктов
#std635: Невыбранная картинка 0 проверок · 0 пунктов
#std636: Контекстная и внеконтекстная передача управления на сервер 0 проверок · 0 пунктов
п. 1 — Платформа 1С:Предприятие поддерживает два способа передачи управления из клиентского кода формы на сервер:
Нет проверок
п. 2.1 — Контекстную передачу используйте, когда одновременно выполняются условия:
Нет проверок
п. 2.2 — Если на форме есть таблица, при активизации строки которой нужно перестраивать форму (например, выводить детали по текущей строке), в обработчике ПриАктивизацииСтроки подключайте однократный обработчик ожидания
Нет проверок
п. 3 — При передаче управления с клиента на сервер не передавайте по значению параметры типов:
Нет проверок
#std637: Настройка обмена данными для классификаторов между различными информационными базами 0 проверок · 0 пунктов
п. 1 — К классификаторам относятся справочники и регистры сведений с условно-постоянной информацией, одинаковой для всех совместно используемых баз
Нет проверок
п. 2 — Данные классификаторов объектного типа (например, страны мира, ОКЕИ) должны сопоставляться:
Нет проверок
п. 3 — Классификаторы в виде наборов записей (например, адресный классификатор) не должны участвовать в обмене
Нет проверок
#std638: Работа с неактуальными (недействительными) объектами 0 проверок · 0 пунктов
п. 1 — Эта рекомендация применяется, когда объект информационной базы становится неактуальным временно или постоянно (например, сотрудник уволился или ушел в декрет)
Нет проверок
п. 2 — Чтобы запретить выбор неактуальных объектов через автоподбор и быстрый выбор в полях ввода, используйте один из двух подходов:
Нет проверок
п. 2.1 — Если ограничение должно действовать во всех или в большинстве полей ввода, задавайте его по умолчанию
Нет проверок
п. 2.1.1 — В модуле менеджера справочника Пользователи реализуйте обработчики ОбработкаПолученияДанныхВыбора и ОбработкаПолученияФормы, которые устанавливают параметры отбора
Нет проверок
п. 2.1.2 — Для реквизитов, где поведение нужно изменить, явно задавайте свойства Параметры выбора и Связи параметров выбора:
Нет проверок
п. 2.2 — Если запрет на выбор неактуальных объектов сильно зависит от контекста, не задавайте его по умолчанию
Нет проверок
п. 3 — В формах списка и выбора пользователей рекомендуется добавить флажок Показывать недействительных пользователей
Нет проверок
п. 4 — Для отображения неактуальных объектов в списках используйте элемент стиля ТекстЗапрещеннойЯчейкиЦвет (192,192,192)
Нет проверок
#std639: Использование переменных в программных модулях 2 проверки · 1 пункт
п. 1 — В большинстве случаев вместо переменных программного модуля используйте более подходящие средства платформы 1С:Предприятие
Нет проверок
п. 2 — Неоправданные варианты использования переменных в модулях объектов (справочников, документов, наборов записей, обработок, отчетов и т.д.)
Нет проверок
п. 2.1 — Чтобы передавать параметры между подписками на события и обработчиками событий модуля объекта из внешнего кода, используйте свойство ДополнительныеСвойства
п. 2.2 — Для обработки кодов возврата (ошибок) в логике программного модуля используйте строковые константы
Нет проверок
п. 2.3 — Для кеширования долго вычисляемых и часто используемых значений в процедурах и функциях применяйте #std459: Использование значений, влияющих на поведение клиентского приложения
Нет проверок
п. 3 — Неоправданные варианты использования переменных в модулях форм
Нет проверок
п. 3.1 — Для кеширования долго вычисляемых и часто используемых значений в процедурах и функциях используйте #std459: Использование значений, влияющих на поведение клиентского приложения
Нет проверок
п. 3.2 — Для хранения и передачи промежуточных результатов между процедурами и функциями формы используйте:
Нет проверок
п. 4 — Переменные управляемого и обычного приложения используйте для хранения клиентских параметров сеанса
Нет проверок
#std640: Параметры процедур и функций 23 проверки · 6 пунктов
п. 1 — Параметры методов надо именовать так же, как переменные
Нет проверок
п. 2 — Используйте параметры методов
Нет проверок
п. 3 — Используйте порядок параметров: от общего к частному
п. 4 — Необязательные параметры (параметров по-умолчанию) располагайте после обязательных
п. 5 — Не делайте больше 7 параметров
п. 6 — Избегайте громоздких конструкций
Нет проверок
п. 6.1 — Избегайте вложенные вызовы
п. 6.2 — Избегайте вложенные конструкторы
п. 6.3 — Избегайте лишних пробелов:
Нет проверок
п. 7 — При вызове методов не пропускайте обязательные параметры
Стандарт в целом
#std641: Структуры и таблицы значений в качестве параметров процедур и функций 1 проверка · 1 пункт
п. 1.1 — Помимо функции, которая реализует прикладную функциональность (далее по тексту: вызываемая функция), определите функцию-конструктор параметров, возвращающую:
п. 1.2 — Имена свойств структуры должны соответствовать параметрам вызываемой функции
Нет проверок
п. 1.3 — Для параметра с типом ТаблицаЗначений допустимо не создавать отдельную функцию-конструктор, если таблица значений — результат расчетов в прикладном коде
Нет проверок
п. 1.4 — При разработке программного интерфейса библиотек все функции, возвращающие значения в виде структур и таблиц значений, в том числе функции-конструкторы, должны иметь описание типа возвращаемого значения
Нет проверок
п. 1.5 — В описании структур и таблиц значений могут быть вложенные описания
Нет проверок
п. 2 — В вызывающем коде не инициализируйте структуру параметров или не добавляйте в нее другие свойства, не изменяйте состав и тип колонок таблицы значений
Нет проверок
#std642: Длительные операции на сервере 2 проверки · 2 пункта
п. 1 — Избегайте длительных вызовов из клиентского кода на сервер
п. 2.1 — Общий подход к асинхронному выполнению длительных серверных операций:
Нет проверок
п. 2.2 — Асинхронное формирование отчета требуется для отчетов, которые:
Нет проверок
п. 3 — Если используется БСП, применяйте общие модули:
Нет проверок
п. 3.1 — При каждом запуске фонового задания результат помещается во временное хранилище на время жизни формы
п. 4 — Если алгоритмы запускают фоновые задания или записывают данные без участия пользователя (например, при регулярном обновлении формы), проверяйте, что не включен монопольный режим
Нет проверок
п. 5 — Иногда длительная операция требует монопольного режима
Нет проверок
#std643: Работа в разных часовых поясах 4 проверки · 2 пункта
п. 1 — Сервер может работать в одном часовом поясе, пользователи в другом
Нет проверок
п. 2.1 — Используйте ТекущаяДатаСеанса вместо ТекущаяДата в серверном контексте
п. 2.2 — Когда требуется учесть время, не зависящее от часового пояса текущего сеанса пользователя, используйте УниверсальноеВремя
Нет проверок
п. 2.3 — Если метод платформы возвращает время в часовом поясе сервера, а время надо показать пользователю, приведите время к часовому поясу пользователя
Нет проверок
п. 3.1 — Не используйте ТекущаяДата на клиенте
п. 3.2
Нет проверок
п. 3.3 — При работе с документами используйте дату документа вместо текущей даты
Нет проверок
п. 3.4 — При использовании БСП используйте ОбщегоНазначенияКлиент.ДатаСеанса там, где не смогли отказаться от расчета даты на клиенте
Нет проверок
п. 4 — Могут появиться исключения из правил, описанных выше
Нет проверок
п. 5 — Не вызывайте подряд несколько раз функции ТекущаяДатаСеанса (ТекущаяДата)
Нет проверок
#std644: Обеспечение совместимости библиотек 13 проверок · 4 пункта
п. 1 — При разработке библиотек обеспечивайте обратную совместимость
Нет проверок
п. 1.1 — Полный номер версии библиотеки должен однозначно показывать
Нет проверок
п. 1.2 — Если библиотека содержит несколько #std543: функциональных подсистем,
Нет проверок
п. 1.3 — Если совместимость незапланированно нарушена
Нет проверок
п. 1.4 — Аналогично, незапланированное добавление новых функций
Нет проверок
п. 1.5 — Для обеспечения совместимости:
Нет проверок
п. 1.6 — К программному интерфейсу библиотеки относятся объекты,
Нет проверок
п. 1.7 — Совместимость не нарушается при расширении интерфейса
Нет проверок
п. 1.8 — Во всех случаях, когда по разделу 1 допустим отказ от совместимости,
Нет проверок
п. 1.9 — Размещайте программный интерфейс библиотеки
Нет проверок
п. 2.1 — Разделяйте программный интерфейс
п. 2.2 — Раздел Программный интерфейс может содержать
п. 3 — Практические рекомендации для сохранения совместимости API
Нет проверок
п. 3.1 — Если нужно переименовать или удалить экспортную функцию/процедуру,
п. 3.2 — Если исправление ошибки меняет поведение экспортной функции,
Нет проверок
п. 3.3 — Если нужно пересмотреть состав параметров,
Нет проверок
п. 3.4 — Параметры типа Структура используйте также
Нет проверок
п. 3.5 — Чтобы прикладной код не зависел от деталей реализации библиотеки,
Нет проверок
п. 3.6 — Чтобы скрывать детали реализации от потребителя,
п. 4 — Для контроля изменений программного интерфейса
Нет проверок
Стандарт в целом
#std645: Названия печатных форм учетных документов и команд по их выводу на печать 0 проверок · 0 пунктов
п. 1 — Название,
Нет проверок
п. 2 — В названии можно использовать
Нет проверок
п. 3 — В название следует включать
Нет проверок
п. 4 — Из названия
Нет проверок
#std647: Имена процедур и функций 2 проверки · 2 пункта
п. 1 — Чем лучше имена - тем проще читать код
Нет проверок
п. 2 — Имена процедур, функций и параметров берите от терминов предметной области
Нет проверок
п. 3 — Формируйте имена так:
Нет проверок
п. 4 — Не используйте типы в названиях процедур и функций
п. 5 — Имена процедур берите от неопределенной формы глагола
Нет проверок
п. 6.1 — Имена функций берите от описания возвращаемого значения
п. 6.2 — Если функция создает какой-то объект, назовите его со слова Новый
Нет проверок
п. 6.3 — Если функция выполняет проверку, назовите ее со слова Это или используйте причастие
Нет проверок
п. 6.4 — Если для понимания назначения функции важно каким образом было получено возвращаемое значение, назовите ее от глагола в неопределенной форме
Нет проверок
п. 6.5 — Если функция используется как процедура, ее действие - основная задача, ее результат - побочный эффект, называйте функции как процедуры
Нет проверок
#std648: Ответственное чтение данных 2 проверки · 1 пункт
п. 1 — Ответственным считается любое чтение, по результатам которого:
Нет проверок
п. 1.1 — Если чтение должно быть ответственным, выполняйте его в транзакции с предварительной установкой управляемых блокировок
Нет проверок
п. 1.2 — В ряде задач ответственное чтение не требуется
Нет проверок
п. 1.3 — Во многих обработчиках событий модификации данных платформа уже открывает системную транзакцию
Нет проверок
п. 2 — Выбор между исключительной и разделяемой блокировкой зависит от того, будут ли изменяться прочитанные данные
Нет проверок
п. 2.1 — Если после ответственного чтения данные изменяются, устанавливайте исключительную управляемую блокировку до чтения
п. 2.2 — Если данные читаются ответственно, но не изменяются (например, только для формирования движений), используйте:
Нет проверок
#std649: Реквизиты 0 проверок · 0 пунктов
#std652: Несоответствие индексов и условий запроса 0 проверок · 0 пунктов
п. 1.1 — Проверяйте,
Нет проверок
п. 1.2 — Если подходящего индекса нет,
Нет проверок
п. 2 — При создании объектов метаданных
Нет проверок
п. 3 — Если автоматических индексов недостаточно,
Нет проверок
#std653: Групповые обработки в списках 0 проверок · 0 пунктов
п. 1 — При групповой обработке
Нет проверок
п. 2 — Пользователя нельзя оставлять без отклика,
Нет проверок
п. 3 — Групповые обработки
Нет проверок
#std654: Разыменование ссылочных полей составного типа в языке запросов 3 проверки · 2 пункта
п. 1.1 — В языке запросов можно обращаться не только к полям таблиц из раздела ИЗ, но и к полям объектов, на которые ссылаются ссылочные поля
п. 1.2 — Чем больше неявных соединений, тем сложнее и медленнее запрос
п. 2.1 — Избегайте избыточных составных типов ссылочных полей
Нет проверок
п. 2.2 — Чтобы не строить запросы с большим числом соединений, жертвуйте компактностью хранения данных ради производительности и переносите нужные поля в исходную таблицу запроса
Нет проверок
п. 2.3 — При необходимости жертвуйте компактностью и универсальностью кода ради производительности
Нет проверок
#std655: Ограничения на соединения с вложенными запросами и виртуальными таблицами 4 проверки · 2 пункта
#std656: Ограничения на использование вложенных запросов в условии соединения 0 проверок · 0 пунктов
#std657: Обращения к виртуальным таблицам 2 проверки · 1 пункт
п. 1 — Передавайте в параметры виртуальной таблицы все условия, относящиеся к ней
п. 2.1 — В параметрах виртуальной таблицы используйте простые условия вида Измерение = Значение
Нет проверок
п. 2.2 — Если подзапросы нужны, соблюдайте условия:
Нет проверок
п. 2.3 — Если нужно несколько условий с подзапросами, выберите одно, которое удовлетворяет требованиям выше и отфильтровывает максимум записей
Нет проверок
#std658: Эффективные условия запросов 4 проверки · 1 пункт
п. 1 — Условия запросов пишите с учетом производительности
Нет проверок
п. 1.1 — Требования раздела 1 можно не применять, если:
Нет проверок
п. 1.2 — Если записей много и требования раздела 1 выполнить невозможно:
Нет проверок
п. 2 — Оператор ИЛИ
Нет проверок
п. 2.1 — В основном условии ИЛИ допустим только для последнего (или единственного) поля индекса,
п. 2.2 — В дополнительном условии оператор ИЛИ можно использовать без ограничений
Нет проверок
п. 3 — Оператор ПОДОБНО
Нет проверок
п. 4 — Оператор МЕЖДУ
Нет проверок
п. 5 — Выражение ВЫБОР используйте только в дополнительных условиях
Нет проверок
п. 6 — Арифметические операции над полями выполняйте только в дополнительных условиях
Нет проверок
п. 7 — Если для одного объекта и одного права пользователю назначены несколько ролей
Нет проверок
#std659: Общие сведения об избыточных блокировках 0 проверок · 0 пунктов
#std660: Шрифт и цвет 0 проверок · 0 пунктов
#std661: Блокирующее чтение остатков в начале транзакции 0 проверок · 0 пунктов
#std662: Сдвиг границы последовательности документов 0 проверок · 0 пунктов
#std663: Режим разделения итогов для регистров бухгалтерии 0 проверок · 0 пунктов
#std664: Режим разделения итогов для регистров накопления 0 проверок · 0 пунктов
#std665: Горячие клавиши 0 проверок · 0 пунктов
#std667: Элементы стиля 10 проверок · 1 пункт
п. 1 — Элементы стиля нужно использовать всегда,
п. 2 — Не следует использовать элементы стиля,
Нет проверок
п. 3 — Каждый элемент стиля создавайте
Нет проверок
п. 4 — Название элемента стиля
Нет проверок
п. 5 — Если есть несколько элементов стиля
Нет проверок
Стандарт в целом
#std668: Разработка ролей в библиотеках 0 проверок · 0 пунктов
п. 1 — При проектировании ролей в библиотеках придерживайтесь общего подхода к границам функциональности библиотеки:
Нет проверок
п. 2 — В большинстве случаев библиотека должна поставлять готовый набор ролей для работы со своими данными (справочники, регистры и т.п.)
Нет проверок
п. 3 — В ролях допустимо задавать не только права к объектам, но и ограничения доступа на уровне записей (RLS)
Нет проверок
п. 4 — Если для библиотечных ролей используются правила поставки, для всех ролей задавайте правило Изменения разрешены
Нет проверок
#std669: Ограничение на выполнение внешнего кода 13 проверок · 5 пунктов
п. 1 — Запрещено выполнение на сервере в небезопасном режиме любого кода, который не является частью программы
п. 2 — По умолчанию требуется отключить интерактивное открытие внешних отчетов и обработок через меню Файл - Открыть
Нет проверок
п. 3 — Предупреждайте администратора об опасности подключения любого внешнего кода
Нет проверок
п. 3.1 — Предупреждение должно содержать:
Нет проверок
п. 3.2 — Подключенный администратором внешний код другие пользователи могут использовать без предупреждений
п. 4 — Средства обновления конфигурации (из файлов .cf или .cfu), средства восстановления из резервной копии или загрузки из dt-файла
Нет проверок
п. 5 — Произвольные файлы могут содержать вредоносный код
Нет проверок
п. 6 — Безопасность внешних компонент
Нет проверок
п. 6.1 — Внешние компоненты можно размещать:
п. 6.2 — Сторонние внешние компоненты должны храниться в специальном справочнике
Нет проверок
п. 6.3 — Внешние компоненты в составе конфигурации должны хранится в макетах типа "Внешняя компонента"
Нет проверок
п. 6.4 — Используйте БСП для подключение внешних компонент
п. 7 — Загружать код из внешнего удаленного источника следует:
п. 8 — Регламентные задания по-умолчанию запускаются под полными правами
Нет проверок
#std670: Содержание отчета 0 проверок · 0 пунктов
п. 1 — Показатели отчета
Нет проверок
п. 1.1 — Отчет может одновременно содержать несколько показателей:
Нет проверок
п. 1.2 — В отчет включаются только те показатели,
Нет проверок
п. 1.3 — В отчетах,
Нет проверок
п. 1.4 — Отчеты не должны содержать данные,
Нет проверок
п. 2 — Валюты
Нет проверок
п. 2.1 — При включении показателя в отчет учитывайте,
Нет проверок
п. 2.2 — Если назначение отчета предполагает анализ показателя
Нет проверок
п. 3 — Контекстные и неконтекстные отчеты
Нет проверок
п. 3.1 — Отчеты и варианты отчетов
Нет проверок
п. 3.2 — Если используются варианты отчетов,
Нет проверок
п. 3.3 — В контекстных отчетах
Нет проверок
п. 3.4 — При использовании СКД
Нет проверок
#std671: Варианты отчетов 0 проверок · 0 пунктов
п. 1 — Создавайте варианты отчета,
Нет проверок
п. 2 — Если вариант отчета является рабочим местом
Нет проверок
п. 3 — Если вариант отчета требуется включить
Нет проверок
п. 4 — При использовании в конфигурации
Нет проверок
#std672: Поля периодов 0 проверок · 0 пунктов
п. 1 — При настройке схемы компоновки данных
Нет проверок
п. 2 — При настройке схемы компоновки данных
Нет проверок
п. 3 — Для полей ПериодСекунда и Регистратор
Нет проверок
п. 3.1 — Для поля ПериодСекунда
Нет проверок
п. 3.2 — Для поля Регистратор
Нет проверок
п. 3.3 — Для поля Регистратор
Нет проверок
#std673: Пользовательские настройки 0 проверок · 0 пунктов
п. 1 — Общие рекомендации
Нет проверок
п. 1.1 — Избегайте наименований настроек,
Нет проверок
п. 1.2 — Для параметров,
Нет проверок
п. 1.3 — Обязательные параметры
Нет проверок
п. 2 — Быстрые пользовательские настройки
Нет проверок
п. 2.1 — Рекомендуется делать не более 5-7 быстрых настроек
Нет проверок
п. 2.2 — В состав быстрых пользовательских настроек
Нет проверок
п. 2.3 — Если в отчете несколько элементов
Нет проверок
п. 2.4 — В быстрые настройки контекстных отчетов
Нет проверок
п. 3 — Обычные пользовательские настройки
Нет проверок
п. 3.1 — Для нечастотных настроек
Нет проверок
п. 3.2 — В состав обычных пользовательских настроек
Нет проверок
#std674: Заголовок отчета 1 проверка · 1 пункт
п. 1 — Заголовок отчета
Нет проверок
п. 2 — Если используются варианты отчета,
Нет проверок
п. 3 — Если используются однотипные варианты отчета
Нет проверок
п. 4 — Запрещается использовать название Основной
п. 5 — Следует избегать слова отчет
Нет проверок
п. 6 — Если в отчете несколько элементов
Нет проверок
#std675: Отчеты вида "диаграмма" 0 проверок · 0 пунктов
п. 1 — Типы диаграмм
Нет проверок
п. 1.1 — Диаграммы в отчетах следует применять,
Нет проверок
п. 1.2 — Для разных целей поиска информации
Нет проверок
п. 1.3 — Следует избегать объемных диаграмм,
Нет проверок
п. 2 — Условное оформление
Нет проверок
п. 2.1 — Основной цвет для гистограмм
Нет проверок
п. 2.2 — Основной цвет для прогнозных значений
Нет проверок
п. 2.3 — Следует избегать использования
Нет проверок
#std676: Отчеты вида "таблица", "список" 0 проверок · 0 пунктов
п. 1 — Структура отчета
Нет проверок
п. 1.1 — Проектируйте отчет так,
Нет проверок
п. 1.2 — Вложенность группировок
Нет проверок
п. 1.3 — Группировку по периоду
Нет проверок
п. 1.4 — Дополнительную информацию по группировке
Нет проверок
п. 1.5 — Показатели отчета следует располагать:
Нет проверок
п. 1.6 — В отчетах,
Нет проверок
п. 1.7 — Если предполагается печать отчета,
Нет проверок
п. 2 — Сортировка данных
Нет проверок
п. 2.1 — Сортировку по умолчанию
Нет проверок
п. 2.2 — Сортировку по алфавиту (по возрастанию)
Нет проверок
п. 2.3 — Сортировку по периоду (по возрастанию)
Нет проверок
п. 2.4 — Сортировка должна применяться
Нет проверок
п. 3 — Условное оформление
Нет проверок
п. 3.1 — Негативные факты оформляются красным цветом
Нет проверок
п. 3.2 — Для фона ячеек
Нет проверок
п. 3.3 — Итоговая информация
Нет проверок
п. 3.4 — Для числовых полей
Нет проверок
п. 3.5 — Данные,
Нет проверок
п. 4 — Общие итоги
Нет проверок
#std677: Использование общих реквизитов 0 проверок · 0 пунктов
п. 1 — Общие реквизиты применяйте для двух задач:
Нет проверок
п. 2 — Общие реквизиты без разделения данных используйте только для инфраструктурных задач конфигурации, когда данные нужно хранить прямо в прикладных объектах
Нет проверок
п. 3 — Порядок общих реквизитов-разделителей в дереве метаданных выбирайте в соответствии с порядком установки связанных параметров сеанса
Нет проверок
#std678: Безопасность прикладного программного интерфейса сервера 1 проверка · 1 пункт
п. 1 — Злоумышленник может вызвать серверный код с клиента
Нет проверок
п. 1.1 — Все серверные функции, доступные для вызова с клиента представляют потенциальную угрозу
Нет проверок
п. 1.2 — При разработке формы исключите из кода ее модуля бизнес-логику
Нет проверок
п. 1.3 — Тщательно тестируйте код, в котором устанавливается привилегированный режим или который расположен в общих модулях с флажком Привилегированный
п. 2 — Любые возможности конфигурации исполнить "внешний" код или произвольные тексты запросов на сервере, не являющиеся частью программы, потенциально опасны
Нет проверок
п. 3 — Клиентское приложение (тонкий клиент, веб-браузер) не гарантирует безопасность данных, переданных на сторону клиента
Нет проверок
#std679: Ограничение на установку признака «Вызов сервера» у общих модулей 1 проверка · 1 пункт
п. 1 — Не устанавливайте признак Вызов сервера у всех серверных общих модулей «по умолчанию»
п. 2.1 — В управляемом приложении работа с экземплярами объектов (СправочникОбъект, ДокументОбъект и т.п.)
Нет проверок
п. 2.2 — Если конфигурация не рассчитана на работу в толстом клиенте (управляемое приложение, клиент-сервер),
Нет проверок
#std680: Поддержка толстого клиента, управляемое приложение, клиент-сервер 4 проверки · 2 пункта
п. 1 — В управляемом режиме иногда требуется поддержка запуска толстого клиента (режим управляемого приложения)
Нет проверок
п. 2 — В конфигурациях для управляемого приложения обычно предполагается, что в клиент-серверном режиме код модулей:
п. 3 — Если это ограничение нужно снять, обеспечьте работу на клиенте:
п. 4 — Для расстановки фрагментов кода с инструкциями препроцессора можно использовать обработку с ИТС
Нет проверок
#std681: Размеры 0 проверок · 0 пунктов
#std682: Порядок полей 0 проверок · 0 пунктов
#std683: Общие сведения об организации хранения данных 0 проверок · 0 пунктов
п. 1 — При проектировании системы
Нет проверок
п. 2 — При выборе типа объектов метаданных
Нет проверок
п. 2.1 — Упрощенно,
Нет проверок
п. 2.2 — После выбора блока
Нет проверок
п. 2.2.1 — Для хранения условно-постоянной информации:
Нет проверок
п. 2.2.2 — Для хранения событий процессов предметной области:
Нет проверок
п. 2.2.3 — Для хранения накопленных сведений
Нет проверок
п. 3 — Пример выбора типов объектов метаданных
Нет проверок
#std684: Список, открываемый из панели навигации формы объекта 0 проверок · 0 пунктов
п. 1 — Список,
Нет проверок
п. 2 — В списке не следует выводить название объекта
Нет проверок
п. 3 — В списке не следует выводить колонку
Нет проверок
п. 4 — В названии команды,
Нет проверок
#std686: Работа с параметром "Отказ" в обработчиках событий 3 проверки · 1 пункт
#std687: Шрифты 0 проверок · 0 пунктов
#std689: Настройка ролей и прав доступа 35 проверок · 14 пунктов
п. 1 — Общие положения
Нет проверок
п. 1.1 — Стройте роли атомарно: одна роль должна покрывать одну элементарную функцию
Нет проверок
п. 1.2 — Роли ПолныеПрава и АдминистраторСистемы обеспечивают максимальный доступ
п. 1.3 — Ни одна роль, включая ПолныеПрава и АдминистраторСистемы, не должна давать интерактивное удаление ссылочных объектов
Нет проверок
п. 1.4 — Права на удаление ссылочных объектов должны быть только у ролей ПолныеПрава и АдминистраторСистемы
Нет проверок
п. 1.5 — Флаг «Устанавливать права для новых объектов» оставляйте только у роли ПолныеПрава
Нет проверок
п. 1.6 — Если право нужно только администратору (например, запуск служебной обработки), отдельную роль создавать не нужно
Нет проверок
п. 1.7 — Для документов с проведением обычно включайте привилегированный режим проведения и отмены проведения
п. 1.8 — Для функциональных опций обычно включайте привилегированный режим получения
п. 1.9 — Кроме стандартных ролей БСП не создавайте роли, дающие общие системные права (Администрирование, ТонкийКлиент и т.п.)
Нет проверок
п. 1.10 — Для неконфиденциальных и общедоступных данных права чтения включайте в:
п. 1.11 — Одна роль не должна объединять права на объекты разных библиотек и разных подсистем
п. 2 — Правила создания ролей к элементарным функциям
Нет проверок
п. 2.1 — При проектировании доступа сначала объединяйте объекты в элементарные функции
Нет проверок
п. 2.2 — Если есть сомнение, относятся ли два объекта к одной функции, разделяйте их
Нет проверок
п. 2.3 — Каждый объект должен быть отнесен ровно к одной элементарной функции
Нет проверок
п. 2.4 — Объекты разных библиотек не объединяйте в одну элементарную функцию
Нет проверок
п. 3 — Ссылочные объекты и регистры
Нет проверок
п. 3.1 — Для функций со ссылочными объектами и независимыми регистрами сведений обычно создавайте две роли:
п. 3.2 — Для регистров, подчиненных регистратору, права изменения обычно не назначают (см
Нет проверок
п. 4 — Журналы документов
п. 4.1 — Если все документы журнала относятся к одной элементарной функции, права чтения и просмотра журнала включайте в роли этой функции
Нет проверок
п. 4.2 — Отдельная роль только для журнала в большинстве случаев бесполезна
Нет проверок
п. 5 — Константы
Нет проверок
п. 5.1 — Если константу должен менять только администратор, права изменения должны быть только у ПолныеПрава и/или АдминистраторСистемы
п. 5.2 — Если константу может менять пользователь, добавляйте права в существующую настроечную роль или создавайте отдельную роль Изменение<ИмяКонстанты>
п. 5.3 — Для большинства неконфиденциальных констант права чтения и просмотра назначайте базовым ролям библиотеки
Нет проверок
п. 5.4 — Для конфиденциальных констант создавайте отдельную роль чтения, если это действительно нужно
п. 6 — Подсистемы, отображаемые в главном командном интерфейсе
Нет проверок
п. 6.1 — Для каждой подсистемы верхнего уровня создавайте роль Подсистема<ИмяПодсистемы> (Subsystem<SubsystemName>) с правом просмотра
п. 6.2 — Если часть функций подсистемы вынесена в отдельную форму (например, «Настройки и справочники»), роль подсистемы должна включать права просмотра этой формы
Нет проверок
п. 7 — Отчеты
Нет проверок
п. 7.1 — Если отчет построен на данных одной элементарной функции, права на отчет можно включать в роли этой функции
Нет проверок
п. 7.2 — Если на внедрении может понадобиться отдельная настройка доступа к отчету, создавайте отдельную роль ПросмотрОтчета<ИмяОтчета>
Нет проверок
п. 7.3 — Если отчет использует данные из нескольких элементарных функций, создавайте отдельную роль ПросмотрОтчета<ИмяОтчета>
Нет проверок
п. 7.4 — Однотипные отчеты можно объединять в одну элементарную функцию, если:
Нет проверок
п. 8 — Обработки и общие формы
Нет проверок
п. 8.1 — Для каждой обработки-рабочего места (есть отдельная команда в интерфейсе) создавайте роль ИспользованиеОбработки<ИмяОбработки> (UseDataProcessor<DataProcessorName>)
Нет проверок
п. 8.2 — Права на вспомогательные обработки и обработки с общим служебным кодом назначайте в роли БазовыеПрава<ИмяБиблиотеки>
п. 8.3 — Права к обработкам только для администратора назначайте только через ПолныеПрава и/или АдминистраторСистемы
Нет проверок
п. 8.4 — Те же правила применяются к общим формам
Нет проверок
п. 8.5 — Исключения из этого подхода допустимы только в явно обоснованных сценариях проектирования интерфейса (см
Нет проверок
п. 9 — Команды
Нет проверок
п. 9.1 — Для команды без изменения данных назначайте право просмотра тем же ролям, которые дают чтение соответствующего объекта
п. 9.2 — Для команды, которая изменяет данные, право просмотра назначайте роли, дающей право изменения соответствующих объектов
Нет проверок
п. 10 — Права, не связанные с доступом к объектам
Нет проверок
п. 10.1 — Если нужно выдать дополнительное прикладное право, создавайте отдельную роль <НаименованиеПрава>, которая не дает доступ к объектам метаданных
Нет проверок
п. 10.2 — В коде проверяйте наличие такой роли
Нет проверок
п. 10.3 — Не используйте альтернативные механизмы (настройки, константы, служебные флаги) вместо проверки ролей для реализации дополнительных прав
Нет проверок
п. 11 — Права для внешних пользователей
Нет проверок
п. 12 — Права к устаревшим объектам
Стандарт в целом
#std690: Обработчики обновления информационной базы 2 проверки · 2 пункта
п. 1 — Основные сведения о библиотеке (основной конфигурации)
Нет проверок
п. 1.1 — При разработке конфигураций на базе библиотек каждая библиотека должна сообщать сведения, необходимые для корректного обновления информационной базы:
Нет проверок
п. 1.2 — Обработчики обновления данных ИБ предназначены для дополнительной обработки данных после реструктуризации базы:
Нет проверок
п. 1.3 — Обработчик обновления состоит из двух частей:
п. 2 — Расположение обработчиков обновления
Нет проверок
п. 2.1 — Процедура-обработчик должна быть экспортной
Нет проверок
п. 2.2 — Если обработчик нельзя однозначно связать с конкретным объектом метаданных, допускается размещение в серверном общем модуле, тематически связанном с обработкой
Нет проверок
п. 3 — Реализация обработчиков обновления
Нет проверок
п. 3.1 — К процедуре-обработчику предъявляются требования:
Нет проверок
п. 3.2 — Обработчик обновления не должен содержать лишних действий с данными
Нет проверок
п. 3.2.1 — Отключайте бизнес-логику при обработке данных
Нет проверок
п. 3.2.2 — Для большинства данных отключайте регистрацию изменений на узлах планов обмена, чтобы не отправлять весь объем обработанных данных во все узлы
Нет проверок
п. 3.2.3 — Вместо простого вызова:
п. 3.3 — Перед процедурой-обработчиком должен быть комментарий
Нет проверок
п. 4 — Переход на новые версии библиотек
Нет проверок
п. 4.1 — При постановке конфигурации на поддержку новой версии библиотеки увеличивайте номер версии конфигурации
Нет проверок
#std693: Использование объектов типа Структура 10 проверок · 3 пункта
п. 1 — Не передавайте в конструктор структуры более 3 значений
п. 2 — Не используйте в конструкторе структуры конструкторы других объектов, если они принимают параметры
п. 3 — Не вызывайте в конструкторе структуры функции с большим числом параметров (более 3)
Нет проверок
п. 4.1 — Не добавляйте свойства структуры в разных местах кода с последующей проверкой их наличия
п. 4.2 — Исключение — структуры с нефиксированным форматом:
Нет проверок
#std694: Подменю 0 проверок · 0 пунктов
п. 1 — При формировании командных панелей
Нет проверок
п. 2 — Если в подменю есть команды,
Нет проверок
п. 3 — Подменю не должно содержать
Нет проверок
#std695: Командные панели табличных частей 0 проверок · 0 пунктов
п. 1 — Команды, применяемые к табличной части в целом и к отдельным строкам табличной части
Нет проверок
п. 1.1 — Команды,
Нет проверок
п. 1.2 — Если добавляется команда,
Нет проверок
п. 1.3 — Допускается добавлять команды,
Нет проверок
п. 1.4 — Если в одной командной панели
Нет проверок
#std696: Формы пошаговых помощников (мастеров) 0 проверок · 0 пунктов
п. 1 — Расположение и оформление кнопок
Нет проверок
п. 1.1 — Кнопки формы пошагового помощника
Нет проверок
п. 1.2 — На каждом этапе помощника
Нет проверок
п. 2 — Состав кнопок
Нет проверок
п. 2.1 — Состав кнопок определяется
Нет проверок
п. 2.2 — Кнопка "Далее"
Нет проверок
п. 2.3 — Кнопка "Назад" (при наличии)
Нет проверок
п. 2.4 — Кнопка, подтверждающая ввод данных
Нет проверок
п. 2.5 — Кнопка "Закрыть"
Нет проверок
п. 2.6 — Кнопка "Отмена" (при наличии)
Нет проверок
п. 2.7 — Кнопка "Справка" (при наличии)
Нет проверок
#std697: Использование предопределенных элементов 7 проверок · 2 пункта
п. 1.1 — В справочниках, планах счетов, планах видов характеристик и планах видов расчета предопределенные элементы можно создавать автоматически или программно
Нет проверок
п. 1.2 — В большинстве случаев создавайте предопределенные элементы автоматически
п. 1.3 — Уточнение действует для управляемого и обычного приложения
Нет проверок
п. 1.4 — Для таблиц с предопределенными элементами, которые:
п. 2 — Если наличие предопределенного элемента зависит от условий (функциональные опции, режим работы и т
Нет проверок
#std700: Установка внешних компонент и расширений платформы 2 проверки · 2 пункта
п. 1.1 — Установка внешних компонент и расширений должна быть интерактивной
п. 1.2 — Предлагайте установку в момент, когда пользователь запускает конкретное прикладное действие, зависящее от компоненты
Нет проверок
п. 1.3 — Если используется БСП, для сценариев работы с файлами применяйте API ФайловаяСистемаКлиент
п. 2 — В конфигурации должна быть отдельная функция, позволяющая установить компоненты и расширения в любой момент работы (например, из персональных или административных настроек)
Нет проверок
#std701: Разработка планов обмена с отборами 0 проверок · 0 пунктов
п. 1.1 — Для синхронизации между конфигурациями и для РИБ обычно используют планы обмена
Нет проверок
п. 1.2 — При проектировании логики регистрации учитывайте особенности:
Нет проверок
п. 2 — С учетом этих особенностей придерживайтесь следующих правил
Нет проверок
п. 2.1 — Обеспечивайте самодостаточность данных, участвующих в обмене
Нет проверок
п. 2.2 — Исключайте из обмена вторичные данные
Нет проверок
п. 2.3 — Регистрируйте изменения связанных данных
Нет проверок
#std702: Реквизит Ссылка и признак "Использовать всегда" в динамических списках объектов 6 проверок · 2 пункта
#std703: Ограничение на использование модальных окон и синхронных вызовов 3 проверки · 2 пункта
п. 1 — В конфигурациях, работающих в веб-клиенте, не используйте модальные формы и диалоги
п. 2 — Свойство конфигурации Режим использования модальности должно быть установлено в Не использовать
Нет проверок
п. 3 — В ПриЗавершенииРаботыСистемы модуля управляемого приложения нельзя использовать асинхронные вызовы
Нет проверок
п. 4 — Если в ПередЗавершениемРаботыСистемы используются асинхронные вызовы:
Нет проверок
п. 5 — При переходе на асинхронные аналоги включайте проверку Поиск использования синхронных вызовов в конфигураторе
#std704: Использование определяемых типов 0 проверок · 0 пунктов
п. 1 — Определяемые типы используйте для данных, которые:
Нет проверок
п. 2 — Определяемые типы рекомендуется использовать в следующих случаях
Нет проверок
п. 2.1 — Для определения простого типа и его квалификаторов, если тип имеет прикладной смысл и используется в разных реквизитах, ресурсах, реквизитах форм, макетах и т.д
Нет проверок
п. 2.2 — Для определения #std728: составного типа, который массово используется в объектах подсистемы или во всем прикладном решении
Нет проверок
п. 2.3 — При разработке внедряемой подсистемы: когда прикладной тип будет уточняться при внедрении
Нет проверок
п. 3 — Не используйте определяемые типы:
Нет проверок
#std705: Отнесение объектов библиотек к подсистемам 1 проверка · 1 пункт
#std706: Ограничения на переименование объектов метаданных 0 проверок · 0 пунктов
п. 1 — Не переименовывайте общий модуль с последующим созданием нового модуля с тем же именем
Нет проверок
п. 2 — Если при изменении структуры метаданных нужно удалить объект и создать новый объект с тем же именем, сначала переименуйте устаревший объект, добавив префикс Удалить
Нет проверок
п. 3 — Если в конфигурации нужно хранить ссылки на объекты метаданных, применяйте правила ниже
Нет проверок
п. 3.1 — Если БСП не используется, храните полные имена объектов метаданных в строковых реквизитах (Строка, 255)
Нет проверок
п. 3.2 — Если используется БСП, храните ссылки на объекты метаданных через справочник ИдентификаторыОбъектовМетаданных
Нет проверок
п. 3.3 — Справочник ИдентификаторыОбъектовМетаданных не предназначен для ссылок на объекты метаданных других конфигураций
Нет проверок
п. 3.4 — Если ведется две и более параллельных ветки разработки (например, 2.0 и 3.0):
Нет проверок
#std708: Разрешение итогов для периодических регистров сведений 0 проверок · 0 пунктов
п. 1.1 — Для периодических регистров сведений рекомендуется разрешать итоги, если одновременно выполняются все условия:
Нет проверок
п. 1.2 — Также следует рассматривать пересмотр запросов к регистру, чтобы условия для использования итогов выполнялись
Нет проверок
п. 2 — Во всех остальных случаях итоги для периодических регистров сведений разрешать не следует
Нет проверок
п. 3 — Отдельный механизм пересчета итогов в конфигурации обычно не требуется: таблицы итогов актуализируются автоматически при каждой записи набора записей в регистр
Нет проверок
#std709: Технология разветвленной разработки конфигураций 2 проверки · 1 пункт
п. 1 — Определения
Нет проверок
п. 2 — Разработка исправительных версий
Нет проверок
п. 2.1 — Для выпуска каждой исправительной версии
Нет проверок
п. 2.2 — В исправительной версии
Нет проверок
п. 2.3 — Все закладки в хранилище исправительной версии
Нет проверок
п. 2.4 — Все изменения,
Нет проверок
п. 2.5 — При сборке исправительной версии
Нет проверок
п. 3 — Разработка плановой версии
Нет проверок
п. 3.1 — Плановые версии
Нет проверок
п. 3.2 — Закладки в основное хранилище
Нет проверок
п. 3.3 — В основном хранилище
Нет проверок
п. 3.4 — Все закладки в основное хранилище
Нет проверок
п. 3.5 — Все изменения по техническому проекту
Нет проверок
п. 3.6 — После переноса изменений
Нет проверок
п. 3.7 — При сборке плановой версии
Нет проверок
п. 4 — Разработка технических проектов
Нет проверок
п. 4.1 — Каждый технический проект
Нет проверок
п. 4.2 — При постановке хранилища технического проекта
Нет проверок
п. 4.3 — Ответственный за технический проект
Нет проверок
п. 4.4 — После окончания разработки
Нет проверок
п. 4.5 — Вносите проект
Нет проверок
п. 4.6 — Внесение наработок технического проекта
Нет проверок
п. 4.7 — Ответственный за технический проект
Нет проверок
п. 4.8 — После проверки переноса изменений
Нет проверок
п. 4.9 — После переноса изменений
Нет проверок
п. 5 — Нумерация сборок
Нет проверок
п. 5.1 — Номер сборки
Нет проверок
п. 5.2.1 — При добавлении в хранилище
Нет проверок
п. 5.2.2 — Обработчик и изменение номера сборки
Нет проверок
п. 5.2.3 — Если в одной конфигурации
Нет проверок
п. 5.3 — Номер сборки
#std710: Условное оформление в формах 3 проверки · 1 пункт
п. 1 — Для настройки части свойств элементов управления
Нет проверок
п. 1.1 — Не используйте условное оформление,
Нет проверок
п. 1.2 — Если задачу можно решить и через условное оформление динамического списка,
Нет проверок
п. 2 — Настройку условного оформления форм и динамических списков
Нет проверок
п. 2.1 — Подход с настройкой в коде дает преимущества:
п. 2.2 — Все настройки условного оформления выполняйте при создании формы
Нет проверок
п. 2.3 — В коде установки условного оформления
Нет проверок
#std711: Общие принципы построения командного интерфейса 0 проверок · 0 пунктов
п. 1 — Количество элементов в панелях и меню должно быть таким, чтобы при стандартном разрешении экрана они помещались без прокрутки
Нет проверок
п. 2 — Элементы внутри панелей и меню располагайте по убыванию важности и частоты использования
Нет проверок
п. 3 — Не располагайте рядом команды и пункты меню, в названиях которых совпадают первые символы
Нет проверок
п. 4 — Проектируйте командный интерфейс так, чтобы он повышал эффективность повседневной работы и ускорял освоение программы
Нет проверок
#std712: Панель разделов 2 проверки · 1 пункт
п. 1 — Состав панели
Нет проверок
п. 1.1 — Раздел Главное по умолчанию есть во всех конфигурациях и располагается первым
Нет проверок
п. 1.2 — Списки с условно-постоянной информацией (справочники, регистры сведений, перечисления и др.) в командном интерфейсе можно размещать:
Нет проверок
п. 1.3 — Разделы для настройки, администрирования и сервисных действий располагайте в конце панели
Нет проверок
п. 2 — Названия разделов
Нет проверок
п. 2.1 — Общая длина названия раздела не должна превышать 35 символов с учетом пробелов
п. 2.2 — Названия разделов должны быть конкретными и запоминающимися
Нет проверок
п. 2.3 — По возможности не используйте длинные слова
Нет проверок
п. 2.4 — Используйте в названиях только общеупотребительные и подходящие целевой аудитории сокращения и аббревиатуры
Нет проверок
п. 2.5 — Не рекомендуется делать раздел с названием Сервис
Нет проверок
п. 3 — Картинки разделов
Нет проверок
п. 3.1 — Названия разделов рекомендуется выводить в режиме Картинка и текст
Нет проверок
п. 3.2 — Картинки делайте разными по начертанию и ведущим цветам для лучшей запоминаемости
Нет проверок
#std714: Навигация внутри раздела 1 проверка · 1 пункт
п. 1.1 — В раздел рекомендуется помещать команды перехода к:
Нет проверок
п. 1.2 — Второстепенные и подчиненные объекты можно не выносить в командный интерфейс
Нет проверок
п. 2.1 — Чтобы при стандартном разрешении не появлялась прокрутка, следите, чтобы название команды не превышало 38 символов, а лучше укладывалось в 30
п. 3.1 — Область команд включает блок навигации и блок действий, но для пользователя выглядит как единый список
Нет проверок
п. 3.2 — В одну группу рекомендуется включать не более 7 команд
Нет проверок
п. 3.3 — Не рекомендуется делать группы, содержащие только одну команду
Нет проверок
п. 3.4 — Группам рекомендуется добавлять название
Нет проверок
#std715: Как вместить большое количество команд 0 проверок · 0 пунктов
#std716: Командная панель документа 0 проверок · 0 пунктов
п. 1 — Кнопка по умолчанию должна быть самой левой в командной панели
Нет проверок
п. 2 — Порядок команд должен быть одинаковым во всех документах
Нет проверок
п. 3 — Не рекомендуется менять состав системных кнопок командной панели,
Нет проверок
п. 4 — Командная панель должна позволять пользователю при стандартных настройках экрана
Нет проверок
п. 5 — При стандартных настройках экрана пользователю должны быть сразу видны важные команды:
Нет проверок
п. 6 — Если в командной панели много команд,
Нет проверок
#std717: Табличные части. Оформление списка 0 проверок · 0 пунктов
#std718: Итоги в документах 0 проверок · 0 пунктов
п. 1 — Итоги в виде отдельных полей ввода
Нет проверок
п. 1.1 — Итоги размещайте сразу под таблицей (или несколькими таблицами),
Нет проверок
п. 1.2 — В области итогов размещайте только элементы,
Нет проверок
п. 1.3 — Область с итогами выравнивайте по правому краю формы
Нет проверок
п. 1.4 — Итоги выделяйте серым фоном
Нет проверок
п. 1.5 — Итоги оформляйте отдельными полями ввода
Нет проверок
п. 1.6 — В заголовках итоговых полей не используйте слово итог
Нет проверок
п. 1.7 — Если требуется вывод валюты,
Нет проверок
п. 2 — Итоги в подвалах таблиц
Нет проверок
п. 2.1 — Итоги в подвалах таблиц используйте,
Нет проверок
#std719: Поля «Ответственный» и «Комментарий» 0 проверок · 0 пунктов
п. 1 — Поле Комментарий в форме документа можно выводить в двух вариантах:
Нет проверок
п. 1.1 — Однострочное поле Комментарий оформляйте так:
Нет проверок
п. 1.2 — Многострочное поле Комментарий оформляйте так:
Нет проверок
п. 2 — Поле Ответственный выводите в нижней части формы документа
Нет проверок
п. 3 — Если в форме документа одновременно есть поле Ответственный и однострочное поле Комментарий, объединяйте их в группу:
Нет проверок
#std720: Тумблер 0 проверок · 0 пунктов
п. 1 — Тумблер используйте, когда выбор значения меняет состав
Нет проверок
п. 2 — Количество кнопок в тумблере должно быть небольшим,
Нет проверок
п. 3 — Добавляйте заголовок тумблера, если:
Нет проверок
#std721: Подсказки на форме 0 проверок · 0 пунктов
п. 1 — Текстовые подсказки к полям
Нет проверок
п. 1.1 — Текстовые подсказки к полям рекомендуется прятать в ссылке
Нет проверок
п. 1.2 — Если в подсказке нужны ссылки, иконки или форматированный текст, используйте расширенную подсказку
Нет проверок
п. 1.3 — Не выводите в подсказке много текста
Нет проверок
п. 2 — Текстовые подсказки к настройкам
Нет проверок
п. 2.1 — Подсказки к настройкам выводите снизу, под самой настройкой
Нет проверок
п. 2.2 — В конфигураторе оформляйте такие подсказки через свойство Подсказка в режиме Отображать снизу
Нет проверок
#std722: Компоновка форм 0 проверок · 0 пунктов
п. 1 — Общие принципы
Нет проверок
п. 1.1 — Внутри одной формы все заголовки для однострочных полей ввода, переключателей и тумблеров располагайте одинаково: либо слева, либо сверху
Нет проверок
п. 1.1.1 — Если в группе однострочных полей заголовок одного поля заметно длиннее остальных, сокращайте его или переносите часть заголовка на следующую строку
Нет проверок
п. 1.1.2 — Поля взаимосвязанных реквизитов в одной группе выравнивайте по опорной линии
Нет проверок
п. 1.2 — Элементы, которые в разных формах выполняют одну и ту же функцию, называйте одинаково и размещайте примерно в одном и том же месте
Нет проверок
п. 1.3 — Если элемент интерфейса влияет на другие элементы, располагайте его раньше зависимых элементов (выше или левее)
Нет проверок
п. 1.3.1 — Использование вертикальной зеленой черты для выделенных отдельных элементов и групп взаимосвязанных реквизитов не допускается
Нет проверок
п. 1.4 — Внутри формы документа группируйте элементы по смыслу
Нет проверок
п. 1.4.1 — При компоновке документов с табличной частью ориентируйтесь на видимое количество строк:
Нет проверок
п. 1.4.2 — Если на форме есть несколько невзаимосвязанных табличных частей, размещайте их на отдельных вкладках
Нет проверок
п. 1.5 — Формы проектируйте так, чтобы они не были перегружены функциями, реквизитами и элементами
Нет проверок
п. 2 — Вкладки
Нет проверок
п. 2.1 — Название вкладки должно отражать ее содержание
Нет проверок
п. 2.2 — Поля, обязательные для заполнения, располагайте на вкладке, активной в момент открытия формы
Нет проверок
п. 2.3 — Не рекомендуется делать вкладки с небольшим числом элементов (1-2), если эти элементы не занимают все пространство вкладки
Нет проверок
п. 3 — Вспомогательные формы
Нет проверок
п. 3.1 — При размещении элементов во вспомогательных формах действуйте так:
Нет проверок
п. 3.2 — Для открытия вспомогательной формы используйте гиперссылку в основной форме
Нет проверок
п. 3.3 — Текст гиперссылки может формироваться двумя способами
Нет проверок
п. 3.4 — Если во вспомогательной форме есть обязательные, но незаполненные реквизиты, для гиперссылки используйте красный цвет (НезаполненныйРеквизит, RGB 178,34,34)
Нет проверок
п. 3.5 — Командная панель во вспомогательной форме должна содержать две кнопки: ОК и Отмена
Нет проверок
п. 4 — Свертываемые группы
Нет проверок
п. 4.1 — Свертываемые группы это разделы реквизитов или настроек, логически связанных и объединенных общим заголовком
Нет проверок
п. 4.2 — Для форм, где вся информация размещена в свертываемых группах, используйте режимы открытия, обеспечивающие быстрый доступ к содержимому:
Нет проверок
#std723: Особенности разработки конфигураций для ОС Linux и macOS 2 проверки · 1 пункт
п. 1 — В большинстве случаев платформа сама обеспечивает кроссплатформенную работу клиентского и серверного кода
Нет проверок
п. 2 — Для ключевых функций прикладного решения используйте кроссплатформенные механизмы платформы
Нет проверок
п. 2.1 — Вместо Windows-технологии COM (COMОбъект) используйте кроссплатформенные механизмы
Нет проверок
п. 2.2 — Внешние компоненты, поставляемые с конфигурацией, разрабатывайте на технологии Native API
Нет проверок
п. 2.3 — Для механизмов, использующих объект Почта, рассмотрите переход на ИнтернетПочта или внешнюю компоненту с поддержкой почтовых клиентов Linux/macOS
Нет проверок
п. 2.4 — Если в составе конфигурации есть изображения WMF/EMF, замените их на PNG/JPG
Нет проверок
п. 2.5 — Используйте кроссплатформенные средства платформы для работы с файловой системой
Нет проверок
п. 2.5.1 — В Linux имена файлов регистрозависимы
Нет проверок
п. 2.5.2 — Не формируйте вручную разделители пути и маску всех файлов
п. 3 — Для второстепенных сервисных функций допустимо отключать функциональность в Linux/macOS
Нет проверок
#std724: Использование модулей с повторным использованием возвращаемых значений 6 проверок · 2 пункта
п. 1 — Общие модули с повторным использованием возвращаемых значений (кеш) применяйте для кеширования результатов функций:
Нет проверок
п. 2 — Чрезмерное применение модулей с повторным использованием возвращаемых значений
Нет проверок
п. 2.1 — Не кешируйте данные, которые вычисляются быстрее, чем извлекаются из кеша
п. 2.2 — Помещайте в кеш только данные, к которым будут часто обращаться
Нет проверок
п. 2.3 — Не делайте слишком широкий диапазон входных параметров у кешируемых функций
Нет проверок
п. 3 — Не изменяйте данные, полученные из кеша
Нет проверок
п. 4 — Если в модуле с повторным использованием экспортные функции вызывают друг друга,
п. 5 — Если у общего модуля свойство Повторное использование возвращаемых значений
Нет проверок
#std725: Оптимизация использования оперативной памяти 0 проверок · 0 пунктов
п. 1 — Неэффективное использование памяти в многопользовательских системах быстро снижает стабильность работы
Нет проверок
п. 2 — При потенциально неограниченных выборках из ИБ получайте данные порциями фиксированного размера
Нет проверок
п. 3 — Не обрабатывайте большие XML/HTML/текстовые файлы объектами,
Нет проверок
п. 4 — Избегайте утечек памяти из-за циклических ссылок
Нет проверок
п. 5 — Чрезмерное применение общих модулей с повторным использованием возвращаемых значений
Нет проверок
#std726: Особенности использования в запросах оператора ПОДОБНО 2 проверки · 1 пункт
п. 1 — Оператор ПОДОБНО в тексте запроса используйте только
п. 2 — Используйте такие шаблоны оператора ПОДОБНО, которые работают одинаково на всех поддерживаемых СУБД
Нет проверок
п. 3 — В шаблонах подобия используются спецсимволы %[]^
Нет проверок
п. 4 — Сравнение выполняется без учета регистра символов
Нет проверок
#std727: Размеры экрана 0 проверок · 0 пунктов
п. 1 — 1280х768 типовое разрешение экрана
Нет проверок
п. 2 — Типовое расположение окна программы:
Нет проверок
п. 3 — 1280х668 рабочая область
Нет проверок
п. 4 — Элементы форм должны помещаться без вертикальной и горизонтальной полос прокрутки
Нет проверок
#std728: Ограничения на использование реквизитов составного типа 4 проверки · 2 пункта
п. 1.1 — Если реквизит составного типа используется в соединениях, отборах или сортировке, оставляйте в его составе только ссылочные типы:
п. 1.2 — Если требуется совместить ссылку и произвольный ввод, используйте отдельный справочник вместо примитивного типа
Нет проверок
п. 1.3 — Исключение могут составлять таблицы, в которых заведомо мало данных (до 1000 записей)
Нет проверок
п. 2.1 — Для типизированных объектов метаданных, которые хранятся в ИБ, не используйте составные типы ЛюбаяСсылка, СправочникСсылка, ДокументСсылка и аналогичные
п. 2.2 — Если составной тип массово используется в объектах подсистемы или всей конфигурации, применяйте #std704: определяемые типы
Нет проверок
#std729: Общие требования по разработке оптимальных запросов 0 проверок · 0 пунктов
п. 1.1 — Минимизируйте объем выборки: выбирайте только данные, необходимые для решения задачи
Нет проверок
п. 1.2 — В большинстве случаев следует минимизировать и общее количество запросов к СУБД
Нет проверок
п. 2 — Не следует любой ценой переносить выполнение задачи в СУБД: простые запросы СУБД обычно выполняет эффективнее, чем избыточно сложные универсальные
Нет проверок
п. 2.1 — Рассматривайте альтернативы:
Нет проверок
п. 2.2 — Для сложных запросов проверяйте, что СУБД выбирает эффективный план выполнения
Нет проверок
#std730: Ограничение использования поля HTML документа 0 проверок · 0 пунктов
п. 1 — Не используйте поле HTML-документа
Нет проверок
п. 2 — Допустимый сценарий использования поля HTML-документа:
Нет проверок
#std731: Требования к установке и обновлению прикладных решений 0 проверок · 0 пунктов
п. 1 — Подготовка дистрибутивов установки и обновления прикладных решений (конфигураций) системы 1С:Предприятие 8 должна выполняться в соответствии с рекомендациями, изложенными в главе 30 «Поставка и поддержка конфигурации» Руководства разработчика из комплекта документации к программным продуктам системы 1С:Предприятие 8
Нет проверок
п. 2 — Исходя из данных требований, полный путь к каталогу поставляемых разработчиком шаблонов конфигурации (информационных баз), в общем случае, имеет вид:
Нет проверок
п. 3 — В каталоге версии должен быть расположен файл-манифест 1cv8.mft, в котором описываются установленные шаблоны конфигурации (.cf) и демонстрационные информационные базы (.dt)
Нет проверок
п. 4.1 — В целях исключения совпадения названий конфигураций и возможных в таком случае коллизий при отображении шаблонов информационных баз в диалоге создания ИБ, рекомендуется
Нет проверок
п. 4.2 — Для исключения повторений названия разработчиков – поставщиков прикладных решений (конфигураций) должны быть глобально уникальными: название для использования в наименованиях шаблонов конфигураций и название для использования в именах файловых каталогов
Нет проверок
п. 5 — Для обновления версий прикладных решений (конфигураций) выпускаются отдельные дистрибутивы обновлений, которые включают в себя файл обновления конфигурации (.cfu)
Нет проверок
#std732: Запросы в динамических списках 0 проверок · 0 пунктов
п. 1 — Старайтесь делать запросы динамических списков максимально простыми
Нет проверок
п. 2 — Выберите один из трех режимов работы динамического списка:
Нет проверок
п. 3 — Фактический запрос к СУБД зависит
Нет проверок
п. 4 — Настоятельно не рекомендуется использовать конструкции,
Нет проверок
п. 5.1 — Соединяйте запрос только с небольшим количеством реальных таблиц
Нет проверок
п. 5.2 — Соединение с виртуальными таблицами допустимо только в отдельных случаях,
Нет проверок
п. 5.3 — Временные таблицы в динамических списках используйте
Нет проверок
п. 5.3.1 — Временные таблицы рекомендуется использовать только,
Нет проверок
п. 5.3.2 — Если запрос не удается переписать
Нет проверок
п. 5.3.3 — Если последний запрос динамического списка
Нет проверок
п. 5.4 — Учитывайте,
Нет проверок
п. 5.5 — При работе под неполными правами,
Нет проверок
п. 6 — Предусматривайте оптимизацию при работе
Нет проверок
п. 7 — Если возможно,
Нет проверок
п. 8 — Если рекомендации выше неприменимы
Нет проверок
п. 8.1 — Откажитесь от части возможностей динамического списка
Нет проверок
п. 8.2 — Выводите данные не в динамический список,
Нет проверок
п. 9 — Если в динамическом списке нужны вспомогательные колонки,
Нет проверок
#std733: Эффективное обращение к виртуальной таблице «Остатки» 0 проверок · 0 пунктов
#std734: Использование режима вертикальной прокрутки форм 0 проверок · 0 пунктов
п. 1 — Для конфигураций с режимом совместимости Версия 8.3.3 и выше
Нет проверок
п. 2 — Исключение:
Нет проверок
#std737: Проверка прав доступа 14 проверок · 5 пунктов
п. 1 — Если в конфигурации много ролей (от нескольких десятков), не используйте ролевую настройку видимости в элементах форм:
п. 2 — Не используйте ролевую настройку видимости в командном интерфейсе конфигурации, интерфейсе основного раздела и рабочей области начальной страницы
п. 3 — Для проверки прав в коде используйте метод ПравоДоступа
п. 4.1 — Если роль не дает прав на объекты метаданных и служит только маркером дополнительного права, используйте РольДоступна
п. 4.2 — Проектируйте роли с учетом влияния на командный интерфейс
#std739: Размещение сведений о настройках подсистемы 0 проверок · 0 пунктов
п. 1 — Общие настройки подсистемы задавайте в переопределяемом модуле
Нет проверок
п. 1.1 — Для определения списка объектов, с которыми работает подсистема, не используйте перебор метаданных с конструкцией #std499: Попытка
Нет проверок
п. 1.2 — Процедуры, которые переопределяют бизнес-логику сразу для всех объектов подсистемы, также размещайте в переопределяемом модуле
Нет проверок
п. 2 — Настройки и обработчики, специфичные для отдельного объекта, размещайте в модуле менеджера этого объекта
Нет проверок
#std740: Безопасное хранение паролей 6 проверок · 3 пункта
п. 1 — При разработке подсистем, которые работают с внешними ресурсами (почта, веб-сервисы, FTP и т
Нет проверок
п. 2 — Чтобы минимизировать риск перехвата, не храните пароли и другую конфиденциальную информацию в информационной базе
п. 3 — Иногда это неудобно или невозможно:
Нет проверок
п. 3.1 — Не храните пароли и другие конфиденциальные данные в реквизитах тех же объектов метаданных, с которыми ведется повседневная работа
Нет проверок
п. 3.2 — Если используется БСП, применяйте безопасное хранилище паролей
п. 3.3 — Не храните пароль в реквизитах формы
#std741: Открытие параметризированных форм 3 проверки · 1 пункт
п. 1 — Если форма требует параметров при открытии и предназначена только для программного открытия, не назначайте ее основной формой объекта
Нет проверок
п. 2 — Если у объекта нет других форм, назначайте основной параметризированную форму
Нет проверок
п. 3 — Объявляйте параметры формы на закладке «Параметры» редактора формы
Стандарт в целом
#std742: Блокирующее или независимое открытие форм объектов 0 проверок · 0 пунктов
п. 1 — По умолчанию для форм некоторых типов объектов
Нет проверок
п. 2 — Это поведение рекомендуется менять,
Нет проверок
п. 3 — Для конфигураций на платформе 1С:Предприятие 8.3.9 и ниже
Нет проверок
#std744: История выбора при вводе 3 проверки · 3 пункта
#std745: Поле "Дата" в списках 0 проверок · 0 пунктов
#std746: Обработчики событий ОбработкаПолученияПредставления и ОбработкаПолученияПолейПредставления 0 проверок · 0 пунктов
п. 1 — С помощью данных обработчиков модуля менеджера объекта можно переопределить представление объекта информационной базы, которое выводится в полях форм и в списках
Нет проверок
п. 2 — Обработчики вызываются при любой необходимости получения представления какого-либо объекта информационной базы
Нет проверок
п. 3 — Обработчики могут быть также вызваны, в том числе, при записи и удалении объекта в режиме обмена данными
Нет проверок
п. 4 — При реализации обработчиков следует также учитывать требования о поддержке #std680: толстого клиента, управляемое приложение, клиент-сервер
Нет проверок
#std748: Таймауты при работе с внешними ресурсами 3 проверки · 2 пункта
п. 1 — При работе с внешними ресурсами через объекты WSОпределения, WSПрокси, HTTPСоединение, FTPСоединение, ИнтернетПочтовыйПрофиль обязательно задавайте таймаут, то есть предельное время ожидания операции
п. 2 — Время операции с внешним ресурсом обычно состоит из шести этапов:
п. 3 — Чтобы снизить таймауты и повысить отзывчивость, используйте рекомендации ниже
Нет проверок
п. 3.1 — Для веб-сервисов с операциями дольше 20 секунд рекомендуется:
Нет проверок
п. 3.2 — Для невеб-сервисных ресурсов используйте аналоги Ping:
Нет проверок
п. 3.3 — Если веб-сервис объективно долго работает на этапе Wait и ускорить это нельзя, переводите взаимодействие в асинхронный режим:
Нет проверок
п. 4 — Рекомендуемые значения таймаутов:
Нет проверок
#std752: Обработчик события ПередУдалением 3 проверки · 1 пункт
#std753: Оформление групп разделов с настройками и справочниками 0 проверок · 0 пунктов
п. 1 — Группа раздела может включать:
Нет проверок
п. 1.1 — Типовое разрешение экрана 1280x768 px
Нет проверок
п. 2 — Разделы, состоящие из нескольких групп, реализуйте как свертываемые группы
Нет проверок
п. 2.1 — Группы раздела формируйте так, чтобы при разрешении 1280x768 все группы умещались на экране
Нет проверок
п. 2.2 — Допустимо оставлять первую группу развернутой, если форма не выходит за пределы экрана 1280x768
Нет проверок
п. 3 — Если раздел состоит из одной группы, она должна быть развернута и иметь параметр Поведение: Обычное
Нет проверок
#std755: Длительные операции на клиенте 0 проверок · 0 пунктов
п. 1 — Избегайте длительного выполнения клиентского кода
Нет проверок
п. 1.1 — В обработчике ожидания обращаться к веб-сервису для получения информации об обновлениях
Нет проверок
п. 1.2 — Проверять доступность сетевого ресурса в обработчике события ПриИзменении поля формы, в котором вводится путь к этому ресурсу
Нет проверок
#std758: Псевдонимы источников данных в запросах 1 проверка · 1 пункт
#std759: Несущественные предупреждения проверки конфигурации 21 проверка · 1 пункт
#std760: Ограничения на регламентные задания при работе в модели сервиса 3 проверки · 2 пункта
п. 1 — В прикладных решениях, ориентированных на работу в модели сервиса по Технологии 1cFresh, не должно быть регламентных заданий, включенных в состав любого из разделителей
п. 2 — Если нужно регулярно выполнять программный код в приложениях пользователя в разделенной ИБ, используйте подсистему БТС Очередь заданий или аналогичный механизм очереди
п. 2.1 — Пример № 1
Нет проверок
п. 2.2 — Пример № 2
Нет проверок
п. 2.3 — Пример № 3
Нет проверок
п. 3 — В прикладных решениях, ориентированных на режим сервиса по Технологии 1cFresh, не должно быть участков кода с прямым управлением регламентными заданиями
Нет проверок
п. 4 — Подсистема Очередь заданий не гарантирует выполнение задания строго по расписанию
Нет проверок
п. 4.1 — Обычно в режиме сервиса не следует давать пользователям настройку расписания регламентных заданий
Нет проверок
п. 4.2 — Если по сценарию нужна оперативная реакция системы (обновление информации), а очередь регламентных заданий ее не обеспечивает, рассмотрите другие решения
Нет проверок
#std761: Интерфейсные тексты в коде: требования по локализации 18 проверок · 8 пунктов
п. 1 — Если в модулях конфигурации есть строки для интерфейса пользователя (сообщения, надписи на формах, тексты команд, выражения в настройках СКД и т.п.), обеспечивайте их локализацию
п. 2 — Для составных строк, где части зависят от условий, используйте логически завершенные фразы и подстановку параметров через СтрШаблон
п. 3 — Если в конфигурации используется БСП, для составных форматированных строк вместо объекта ФорматированнаяСтрока применяйте функцию ФорматированнаяСтрока модулей СтроковыеФункции или СтроковыеФункцииКлиент
п. 4 — В НСтр строку ограничивайте одинарными кавычками
п. 5 — Не выводите пользователю имена объектов метаданных и внутренние идентификаторы из кода
п. 5.1 — Исключение: сообщения для разработчиков и интерфейсы инструментов разработчика/внедренца
Нет проверок
п. 6 — При использовании функций ЧислоПрописью, ПредставлениеПериода, СтрокаСЧислом не указывайте параметр Л= (L=) в строке форматирования
п. 7 — Не вызывайте функцию ПолучитьСклоненияСтрокиПоЧислу, так как она предназначена только для русскоязычного интерфейса
п. 8 — В редких случаях (например, длинный лог действий пользователя) допустимо собирать сообщение конкатенацией, а не шаблоном
п. 9 — При вызове ПоказатьВопрос с указанием кнопок в параметре Кнопки:
Нет проверок
Стандарт в целом
#std762: Запросы, динамические списки и отчеты на СКД: требования по локализации 10 проверок · 3 пункта
п. 1 — Если строковые литералы из текста запроса выводятся пользователю, не оставляйте их в тексте #!sdbl
п. 2 — Те же требования применяйте к выражениям СКД и запросам наборов данных СКД, если они формируют интерфейсный текст
п. 3 — Для поля выборки отчета СКД, полученного вычислением с псевдонимом, задавайте синоним явно
п. 4 — В заголовках отчетов СКД, полей, вычисляемых полей и параметров допускаются параметры подстановки СтрШаблон:
Нет проверок
Стандарт в целом
#std763: Форматирование даты, числа, Булево: требования по локализации 4 проверки · 4 пункта
п. 1 — При использовании функции Формат в ряде случаев применяйте НСтр для форматной строки
п. 1.1 — При выводе дат учитывайте, что в разных странах различаются порядок и разделители компонентов даты
п. 1.2 — Для чисел применяйте НСтр к форматной строке, когда:
п. 1.3 — Для вывода пользователю значений Булево всегда применяйте НСтр к форматной строке
п. 1.4 — Не переопределяйте локализацию отображения данных по умолчанию (формат ОС)
Нет проверок
п. 2 — При задании формата в полях ввода форм и полях отчетов на СКД также предпочитайте локальный формат даты
Нет проверок
п. 3 — При переопределении стандартных представлений полей в отчетах на СКД соблюдайте те же правила, что и в модульном коде
Нет проверок
п. 4 — Если значение нужно передать в машиночитаемом виде независимо от настроек локализации, вместо локализации выполняйте сериализацию
Нет проверок
п. 4.1 — Для собственных форматов обмена рекомендуется сериализация дат в формате ISO ГГГГ-ММ-ДДTЧЧ:ММ:ССZ (тип dateTime XML Schema): http://www.w3.org/TR/xmlschema-2/#dateTime
Нет проверок
п. 4.2 — Для чисел:
Нет проверок
п. 4.3 — Для Булево:
Нет проверок
#std764: Строковые константные выражения в коде: требования по локализации 9 проверок · 2 пункта
п. 1 — Не локализуйте строковые константы с внутренними идентификаторами, которые не выводятся пользователю
п. 2 — Не используйте в алгоритмах строковые представления объектов и типов
п. 2.1 — Чтобы получить предопределенное значение на клиенте, указывайте его строковое имя так, как оно задано в конфигураторе
Нет проверок
Стандарт в целом
#std765: Элементы форм: требования по локализации 8 проверок · 5 пунктов
п. 1 — Не присваивайте реквизитам, которые используются в элементах формы, строковые значения без локализации
п. 2 — Для всех таблиц и групп на форме задавайте заголовки
п. 3 — Сокращайте количество незначащей информации, которая попадает в локализацию
Нет проверок
п. 3.1 — Удаляйте бессмысленные подсказки у групп форм
п. 3.2 — У реквизитов формы, которые не размещены на форме как элементы управления, очищайте заголовки
Нет проверок
п. 4 — Задавайте заголовок для колонок динамического списка, которые:
п. 5 — Для полей формы со списками выбора всегда устанавливайте свойство РежимВыбораИзСписка в значение Истина
Стандарт в целом
#std766: Макеты: требования по локализации и поддержке разных языков интерфейса 3 проверки · 2 пункта
п. 1 — Обычно перевод табличных, текстовых и HTML-макетов не требует специальных подготовительных действий
п. 2 — В многоязычной конфигурации может потребоваться в одном сеансе формировать печатные формы на языке, отличном от текущего языка интерфейса
Нет проверок
п. 3 — В многоязычной конфигурации может понадобиться формировать печатные формы строго на одном языке независимо от текущего языка интерфейса
Нет проверок
п. 4 — Если в текстах макетов используются именованные параметры подстановки, соблюдайте требования #std761: Интерфейсные тексты в коде: требования по локализации
Нет проверок
п. 5 — Используйте в макетах кодировку UTF-8
п. 6 — По возможности группируйте однотипные макеты: используйте один макет вместо нескольких
Нет проверок
п. 7 — Внешние компоненты размещайте в макетах с типом внешняя компонента
Нет проверок
#std767: Регламентные задания: требования по локализации 2 проверки · 1 пункт
#std768: Программное переопределение текстов запросов динамических списков 3 проверки · 3 пункта
п. 1 — Если текст запроса динамического списка переопределяется в коде,
Нет проверок
п. 1.1 — В редакторе запроса динамического списка
п. 1.2 — Псевдонимы таблиц должны заканчиваться постфиксом Переопределяемый,
п. 1.3 — Установку текста запроса и основной таблицы
п. 2 — Переопределяемые тексты запросов динамического списка
Нет проверок
#std769: Поставка международной версии конфигурации 4 проверки · 0 пунктов
п. 1 — Национальную (российскую) специфику в программном коде и формах выделяйте в отдельные объекты метаданных, которые отсутствуют в международной версии
Нет проверок
п. 1.1 — Реквизиты объектов, относящиеся к национальной специфике, можно оставлять в объектах, но конфигурация должна сохранять работоспособность при их удалении
Нет проверок
п. 1.2 — Если в форме к национальной специфике относится только часть элементов, выносите эти элементы в отдельную форму
Нет проверок
п. 1.3 — К национальной специфике могут относиться и алгоритмы (например, загрузка курсов валют)
Нет проверок
п. 1.4 — Если подсистема или объект в основном международные, но нужно добавить национальную специфику, создавайте общие модули с постфиксом Локализация
Нет проверок
п. 1.5 — Если национальная специфика занимает большую часть подсистемы, относите к национальной специфике всю подсистему
Нет проверок
п. 1.6 — Перечисляйте объекты метаданных с национальной спецификой в файле ЛокализуемыеОбъекты<...>.txt и включайте файл в дистрибутив типовой конфигурации
Нет проверок
п. 2 — Соблюдение требования п
Нет проверок
п. 3 — В процедурах переопределяемых модулей размещайте только вызовы процедур конфигурации, содержащих прикладной код
Нет проверок
п. 4 — Обеспечивайте работоспособность международной конфигурации
Нет проверок
п. 5 — Международную и российскую версии выпускайте синхронно
Нет проверок
Стандарт в целом
#std770: Ограничения на использование Выполнить и Вычислить на сервере 8 проверок · 3 пункта
п. 1 — Опасность представляет не только прямое выполнение кода пользователя, но и выполнение строк, собранных из параметров и переданных в серверные процедуры/функции
п. 2 — Перед вызовом Выполнить/Вычислить в серверном коде включайте безопасный режим
п. 3 — Если код нельзя выполнить в безопасном режиме (например, есть доступ к файлам), запускайте его только после аудита и только из контролируемого источника
п. 4 — Если конфигурация работает в модели сервиса и поддерживает перенос из локальной версии, отключайте пользовательские фрагменты кода и тексты запросов, пришедшие из локальной базы
Нет проверок
#std771: Интеграция прикладных решений через формат EnterpriseData 3 проверки · 1 пункт
п. 1 — Переходы с одной конфигурации на другую разрабатывайте на основе правил конвертации
Нет проверок
п. 2 — Актуальные версии EnterpriseData берите из последней опубликованной версии БСП
Нет проверок
п. 3 — При разработке новых версий прикладных решений стремитесь поддерживать в обменах все актуальные версии EnterpriseData
Нет проверок
п. 4 — Не поддерживайте в обмене версию EnterpriseData, если она не соответствует функциональным требованиям обмена
п. 5 — В редких случаях обмен между прикладными решениями невозможен из-за отсутствия совместно поддерживаемых версий EnterpriseData
Нет проверок
п. 6 — При разработке типовых обменов не используйте свойство объектов формата AdditionalInfo для передачи сведений между информационными базами
Нет проверок
#std773: Использование признака ОбменДанными.Загрузка в обработчиках событий объекта 3 проверки · 1 пункт
п. 1 — В обработчиках событий ПередЗаписью, ПриЗаписи, ПередУдалением сначала проверяйте признак ОбменДанными.Загрузка
п. 2 — Исключение: обмен, который при загрузке регистрирует изменения для выгрузки на другие узлы плана обмена
Нет проверок
п. 3 — Требования этого стандарта действуют и для обработчиков подписок на те же события
Нет проверок
п. 4 — Если вызывающий код устанавливает ОбменДанными.Загрузка = Истина, он берет на себя ответственность за целостность данных объекта
Нет проверок
#std774: Безопасность запуска приложений 3 проверки · 2 пункта
п. 1 — При запуске внешней программы из кода собирайте командную строку только из проверенных частей
п. 2 — При использовании БСП для запуска внешних программ применяйте профильный API
Нет проверок
п. 2.1 — Чтобы открыть проводник с фокусом на каталоге/файле, используйте ФайловаяСистемаКлиент.ОткрытьПроводник
Нет проверок
п. 2.2 — Чтобы открыть файл в ассоциированной программе, используйте ФайловаяСистемаКлиент.ОткрытьФайл()
Нет проверок
п. 2.3 — Чтобы открыть веб-страницу, вызвать программу по протоколу (mailto:, skype:, tel: и т.д.) или открыть навигационную ссылку ИБ, используйте ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку()
Нет проверок
п. 2.4 — Для запуска исполняемых файлов, системных команд и серверных команд, а также для получения stdout/stderr используйте:
п. 2.5 — Не формируйте динамически исполняемые файлы во временном каталоге (например, bat-файлы с последующим запуском)
Нет проверок
п. 3 — Если операция требует запуска внешней программы с повышением прав (например, UAC в Windows),
Нет проверок
#std775: Безопасность программного обеспечения, вызываемого через открытые интерфейсы 3 проверки · 2 пункта
п. 1 — При интеграции со сторонними приложениями через открытые интерфейсы (в частности, COM) отключайте исполнение произвольного кода средствами вызываемого приложения
п. 2 — Перед программным открытием документов Microsoft Word и Microsoft Excel через COM запрещайте исполнение макросов
п. 3 — Если по прикладной задаче требуется разрешать автозапуск макросов, реализуйте явные настройки безопасности
Нет проверок
п. 3.1 — Проверку подписи макросов в документах Microsoft Word можно реализовать так:
Нет проверок
п. 3.2 — Проверку подписи макросов в документах Microsoft Excel можно реализовать так:
Нет проверок
#std777: Использование временных таблиц 1 проверка · 1 пункт
п. 1 — В общем случае временные таблицы рекомендуется использовать для повышения производительности и стабильности запросов
Нет проверок
п. 2 — Есть ситуации, когда временные таблицы не следует создавать или их создание нужно минимизировать
Нет проверок
п. 2.1 — Не следует создавать временные таблицы с очень большим объемом данных (сотни тысяч записей)
Нет проверок
п. 2.2 — Максимально ограничивайте объем данных, выбираемых во временную таблицу: помещайте только то, что действительно нужно последующим запросам
Нет проверок
п. 2.3 — Не помещайте во временную таблицу поля, которые не используются в следующих запросах: это лишние затраты времени и места
Нет проверок
п. 2.4 — Не создавайте и не удаляйте временные таблицы в цикле, если можно создать одну таблицу до цикла
Нет проверок
п. 2.5 — Не копируйте одну временную таблицу в другую только ради переименования
Нет проверок
п. 3 — Временные таблицы следует индексировать, когда это дает прирост производительности
п. 3.1 — Индекс следует строить в случаях:
Нет проверок
п. 3.1.1 — Большая временная таблица участвует в соединении (с любой стороны)
Нет проверок
п. 3.1.2 — Есть обращение к временной таблице в подзапросе конструкции логического оператора В (...)
Нет проверок
п. 3.2 — Маленькие временные таблицы (менее 1000 записей) индексировать не нужно
Нет проверок
п. 3.3 — Если условий выборки/соединения с временной таблицей несколько, и часто проверяется только одно из них, индекс следует строить по наиболее часто проверяемому условию
Нет проверок
#std778: Денежные поля: требования по локализации 0 проверок · 0 пунктов
п. 1 — Чтобы конфигурация корректно работала в странах с низким курсом национальной валюты, увеличивайте разрядность целой части числовых полей с денежным эквивалентом
Нет проверок
п. 2 — Если используется БСП, не применяйте конструктор типа Число для описания типа денежного поля
Нет проверок
п. 3 — При #std535: использовании ВЫРАЗИТЬ в запросах для денежных полей применяйте приведение к типу ЧИСЛО(31,2)
Нет проверок
п. 4 — При использовании функции Формат, а также при задании формата в свойствах элементов формы, полей наборов СКД и т.п
Нет проверок
#std781: Особенности сортировки в таблице значений 0 проверок · 0 пунктов
#std782: Массовая конкатенация строк 0 проверок · 0 пунктов
#std783: Транзакции: правила использования 22 проверки · 3 пункта
п. 1 — Ошибка В этой транзакции уже происходили ошибки возникает из-за несоблюдения требований к написанию кода
Нет проверок
п. 1.1 — Исключение не отменяет транзакцию
п. 1.2 — Начало транзакции и ее завершение (фиксацию) выполняйте в одном методе
п. 1.3 — Используйте следующий паттерн для работы с транзакциями:
п. 1.4 — Если можно избежать использования вложенных транзакций - постарайтесь избежать
Нет проверок
п. 1.4.1 — Не вызывайте НачатьТранзакцию если кроме записи объекта других действий не требуется
Нет проверок
п. 1.4.2 — Если вы разрабатываете метод, который предназначен только для вызова из событий ПередЗаписью, ОбработкаПроведения и т.п., не открывайте внутри метода транзакций
Нет проверок
п. 1.4.3 — Для детализации сообщений об ошибках предусмотрите свою обработку исключений
Нет проверок
п. 1.4.4 — Не обращайтесь к базе данных, пока активна транзакция, в которой возникло исключение
Нет проверок
п. 2 — Не делайте транзакции длинными
Нет проверок
п. 2.1 — Выполняйте вместе только неделимые операции с точки зрения бизнес-логики
Нет проверок
п. 2.1.1 — Не объединяйте в одну транзакцию такие действия, которые с точки зрения бизнес-логики могут быть выполнены раздельно
Нет проверок
п. 2.1.2 — Исключения:
Нет проверок
п. 2.2 — Избегайте транзакций, которые выполняются долго
Нет проверок
п. 2.2.1 — Чем дольше выполняется транзакция, тем большее время будут заняты ресурсы сервера и СУБД
Нет проверок
п. 2.2.2 — Если транзакция пересеклась по блокировкам с другой транзакцией, она будет ждать возможности установить блокировку
Нет проверок
п. 2.3 — Выполняйте вместе только неделимые операции с точки зрения бизнес-логики
Нет проверок
п. 3 — Операции, в которых отключаются итоги регистра, выполняйте в транзакции
Нет проверок
п. 3.1 — Если для ускорения записи в регистр вы отключаете итоги, саму запись вместе с отключением и последующим включением итогов обязательно оборачивайте в транзакцию
Нет проверок
Стандарт в целом
#std784: Автогенерированные данные в информационной базе: требования по локализации 10 проверок · 2 пункта
п. 1 — Автогенерируемые строки, которые программно записываются в информационную базу и выводятся пользователям, формируйте не на языке текущего пользователя, а на языке информационной базы
п. 2 — Это же требование действует для обработчиков начального заполнения, которые заполняют строковые реквизиты предопределенных элементов справочников, ПВХ и т.п
#std785: Версия платформы 1С:Предприятие для разработки 0 проверок · 0 пунктов
п. 1 — Минимальная версия платформы, на которой обеспечивается работа прикладного решения, устанавливается:
Нет проверок
п. 1.1 — Если ошибку нельзя обойти на уровне прикладного решения, минимальную версию платформы можно увеличить
Нет проверок
п. 1.2 — В исправительных релизах библиотек нельзя увеличивать минимальную версию платформы
Нет проверок
п. 2 — Рекомендуемая версия платформы устанавливается:
Нет проверок
п. 3 — Запуск на платформе ниже минимальной версии блокируется средствами БСП
Нет проверок
#std787: Вычисление количества записей в запросах 1 проверка · 1 пункт
#std789: Разработка печатных форм с учетом возможного внесения изменений в макет пользователем 0 проверок · 0 пунктов
п. 1 — Если печатная форма строится средствами подсистемы Печать БСП
Нет проверок
п. 1.1 — Если в объекте уже есть макет ДанныеПечати,
Нет проверок
п. 1.2 — Если макета ДанныеПечати нет,
Нет проверок
п. 2 — При программной компоновке печатной формы
Нет проверок
п. 2.1 — Область макета может быть удалена пользователем,
Нет проверок
п. 2.2 — Избегайте явного присвоения параметров в областях печати
Нет проверок
п. 3 — Изменения макетов печати (в метаданных) бывают обязательные и необязательные
Нет проверок
#std790: Вызов исключений в коде 0 проверок · 0 пунктов
п. 1 — В общем случае исключения в коде вызывать не требуется
Нет проверок
п. 2 — Тем не менее, иногда исключение нужно вызывать программно
Нет проверок
п. 2.1 — Обычно для проверки прав доступа используйте ВыполнитьПроверкуПравДоступа
Нет проверок
п. 2.2 — Для диагностики программных ошибок (некорректные параметры, неверно встроенная подсистема и т.п.) используйте категорию ОшибкаКонфигурации
Нет проверок
п. 2.3 — Если анализ типа исключения критичен для бизнес-логики, используйте один из подходов:
Нет проверок
п. 2.3.1
Нет проверок
п. 2.3.2
Нет проверок
п. 2.3.3 — Для уникальности кода включайте префикс подсистемы, например:
Нет проверок
п. 3 — Не используйте исключения в обработчиках ОбработкаПроверкиЗаполнения, ОбработкаПроведения, ПередЗаписью, ПриЗаписи, ПередУдалением и т.п
Нет проверок
#std791: Дополнительные индексы 0 проверок · 0 пунктов
п. 1 — Дополнительные индексы доступны только для КОРП платформы
Нет проверок
п. 2 — При разработке надо тестировать производительность в двух случаях:
Нет проверок
п. 3 — Не используйте доп
Нет проверок
п. 4 — Не делайте несколько веток кода в зависимости от использования доп
Нет проверок
п. 4.1 — Все, что написано выше, можно игнорировать, потому что если очень хочется, то на небольшом объеме можно и доп
Нет проверок
п. 5 — Поле в доп
Нет проверок
#std792: Многократная запись регистров сведений и накопления 0 проверок · 0 пунктов
п. 1 — Не записывайте наборы записей регистров сведений и накопления в цикле по одной или нескольким записям
Нет проверок
п. 2 — Избегайте перезаписи большого набора, если меняется не более 30% записей
Нет проверок
п. 3 — Для оптимальной записи используйте режимы замещения вместе с вычислением измененных записей
Нет проверок
п. 4
Нет проверок
п. 4.1 — Состав добавляемых, обновляемых и удаляемых записей уже известен, и его нужно применить к базе
Нет проверок
п. 4.2 — Заполняется новый реквизит (или ресурс) регистра в отложенном обработчике обновления
Нет проверок
п. 4.3 — Обновление части записей в независимом регистре сведений при записи карточки объекта
Нет проверок
п. 4.4 — Обновление части записей в регистрах, подчиненных регистратору, при частичном изменении данных при перепроведении
Нет проверок
#std794: Ограничения на использование внешних ресурсов 0 проверок · 0 пунктов
#std798: Использование ботов системы взаимодействия 0 проверок · 0 пунктов
п. 1 — В конфигурации должно быть регламентное задание, которое вызывает СистемаВзаимодействия.ВыполнитьОбработкуБотов()
Нет проверок
п. 1.1 — Не создавайте предопределенных ботов
Нет проверок
п. 1.2 — Регламентное задание, вызывающее ВыполнитьОбработкуБотов():
Нет проверок
п. 2 — При создании бота указывайте пользователя системы взаимодействия, не связанного с пользователем информационной базы
Нет проверок
п. 3 — Если создаете несколько экземпляров ботов для одного объекта метаданных, связывайте их с разными пользователями системы взаимодействия
Нет проверок
п. 4 — Обработчик сообщений ботов должен работать без необработанных исключений (см #std499: Перехват исключений в коде)
Нет проверок