TGViewer
Channel Public Channel
Стандарты 1С v8std

Стандарты 1С v8std

@v8std

v8std.ru

Автор @radio_ingvar
Subscribers
2.58K
Photos
22
Videos
6
Links
150

Showing posts older than #170 · Back to latest

Older Posts 19 shown
Post #169 1.87K
Определение типа значения переменной

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

🟡 Закрепите ключевые правила стандарта «Определение типа значения переменной» в code review и внутренних чек-листах.

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

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

#std442
https://v8std.ru/std/442/
Стандарты разработки 1С Определение типа значения переменной #std442 Определяйте тип значения сравнением с типом, а не косвенными проверками.
  • 🔥 4
  • ❤‍🔥 3
Post #168 1.86K
Несущественные предупреждения проверки конфигурации

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

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

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

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

#std759
https://v8std.ru/std/759/
Стандарты разработки 1С Несущественные предупреждения проверки конфигурации #std759 Следующие предупреждения проверки конфигурации обычно не являются критичными для работоспособности и не требуют обязательного исправления:
  • ❤ 3
  • 👍 3
Post #167 1.9K
Поставка международной версии конфигурации

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

🟡 В алгоритмах, где нужно дополнить или переопределить поведение, делайте вызов в эти модули.

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

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

#std769
https://v8std.ru/std/769/
Стандарты разработки 1С Поставка международной версии конфигурации #std769 Стандарт применим к локализуемым конфигурациям (и входящим в них библиотекам), на базе которых выпускаются национальные решения для разных стран или регионов.
  • 👍 3
Post #166 1.85K
Доступ к файловой системе из кода конфигурации

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

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

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

🟡 Если конфигурация использует БСП, для транслитерации имен файлов применяйте СтроковыеФункцииКлиентСервер.СтрокаЛатиницей().

#std542
https://v8std.ru/std/542/
Стандарты разработки 1С Доступ к файловой системе из кода конфигурации #std542 При работе с временными файлами и каталогами соблюдайте правила ниже.
  • 👍 10
Post #165 1.86K
Округление результатов арифметических операций в запросах

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

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

🟡 Но из-за особенностей разных СУБД реальная точность может отличаться.

🟡 ВЫРАЗИТЬ применяйте к операндам, если на какой-то СУБД точность недостаточна.

#std535
https://v8std.ru/std/535/
Стандарты разработки 1С Округление результатов арифметических операций в запросах #std535 Если в операции деления заранее известны порядки числителя и знаменателя, по возможности избегайте деления заведомо маленького числа на заведомо большое.
  • 👍 6
Post #164 1.77K
Поиск в коллекциях значений

🟡 Для НайтиСтроки() список полей индекса должен точно совпадать со списком полей в структуре поиска (порядок полей не важен).

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

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

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

#std452
https://v8std.ru/std/452/
Стандарты разработки 1С Поиск в коллекциях значений #std452 При двух и более операциях поиска в объекте ТаблицаЗначений с большим количеством строк рекомендуется:
  • 👍 9
Post #163 2.07K
Запуск регламентных заданий

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

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

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

🟡 Если в конфигурации используется Библиотека стандартных подсистем, такое рабочее место уже входит в подсистему Регламентные задания (форма Регламентные и фоновые задания).

#std539
https://v8std.ru/std/539/
Стандарты разработки 1С Запуск регламентных заданий #std539 Рекомендуется давать пользователю альтернативную возможность выполнять регламентные задания вручную.
  • 😁 3
Post #162 1.92K
Режим разделения итогов для регистров бухгалтерии

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

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

🟡 Устройство и использование режима разделения итогов регистров (статья на ИТС).

🟡 В конфигурации есть регистр Хозрасчетный с измерениями Организация и Валюта.

#std663
https://v8std.ru/std/663/
Стандарты разработки 1С Режим разделения итогов для регистров бухгалтерии #std663 Если движения по бухгалтерскому регистру записываются оперативно в многопользовательском режиме, рекомендуется включить разделение итогов.
  • 👍 5
Post #161 2.68K
Использование ключевых слов "ОБЪЕДИНИТЬ" и "ОБЪЕДИНИТЬ ВСЕ" в запросах

🟡 В общем случае при объединении результатов нескольких запросов используйте ОБЪЕДИНИТЬ ВСЕ, а не ОБЪЕДИНИТЬ.

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

🟡 Причина: ОБЪЕДИНИТЬ удаляет полностью одинаковые строки, и это требует дополнительного времени даже тогда, когда одинаковых строк заведомо быть не может.

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

#std434
https://v8std.ru/std/434/
Стандарты разработки 1С Использование ключевых слов "ОБЪЕДИНИТЬ" и "ОБЪЕДИНИТЬ ВСЕ" в запросах #std434 В общем случае при объединении результатов нескольких запросов используйте ОБЪЕДИНИТЬ ВСЕ, а не ОБЪЕДИНИТЬ.
  • 👍 10
  • 😁 2
Post #160 2.04K
Использование модуля объекта, модуля менеджера объекта и общих модулей

🟡 Для функций модуля менеджера не должен требоваться экземпляр объекта данных (СправочникОбъект, ДокументОбъект и т.п.).

🟡 Размещайте в нем процедуры и функции, которые работают с данными объекта (ЭтотОбъект и переменные модуля), в том числе когда объект еще не записан в базу.

🟡 Учитывайте, что для вызова экспортных процедур и функций из других модулей обычно нужно сначала получить экземпляр через ПолучитьОбъект().

🟡 Если функциональность нельзя однозначно отнести к одному объекту метаданных, она считается общей для нескольких объектов.

#std486
https://v8std.ru/std/486/
Стандарты разработки 1С Использование модуля объекта, модуля менеджера объекта и общих модулей #std486 Модуль объекта отвечает за поведение конкретного экземпляра объекта (СправочникОбъект, ДокументОбъект и т.п.).
  • 🔥 10
  • 👍 2
Post #159 2.02K
Июльское обновление стандартов 1С: один новый, два переписаны

1С обновила систему стандартов разработки. Коротко о том, что поменялось и что стоит проверить в своём коде.

Новый стандарт: Разработка правил регистраций (#std799)

Правила регистрации — алгоритмы проверок, фильтров и отборов данных, которые участвуют в обменах. Обычно их хранят в макете плана обмена: так их выгружает Конвертация данных. Теперь стандарт требует размещать правила в модулях конфигурации, например отдельным общим модулем — менеджером регистрации.

Зачем: код в модуле попадает в синтаксическую проверку платформы и в остальные проверки конфигурации, его проще отлаживать без внешних обработок и дешевле переводить при выпуске WE-версий.

Ещё два требования:
— в правилах регистрации запрещено переключать привилегированный и безопасный режимы;
— исправления ошибок в правилах обмена поставлять расширениями (патчами).

#std411: параметры выбора — три новых пункта

Самое заметное: не задавайте Режим изменения связанного значения = Очищать. Безусловная очистка ломает два сценария:
— повторный выбор того же ведущего значения обнуляет зависимый реквизит, хотя ничего не изменилось;
— если зависимое значение допустимо для нескольких ведущих, оно очистится, оставаясь корректным.

Вместо этого — код условной очистки. В стандарте есть готовый пример: запрос выбирает первые две подходящие характеристики и возвращает текущее значение, если оно всё ещё годится.

Исключение (п. 4.1): если повторно выбрать то же ведущее значение технически невозможно (например, это флажок) и связь строго один-к-одному — Очищать допустимо.

Ещё два пункта:
— параметры выбора стоит задавать и для объектов, которые не редактируются интерактивно: они работают в отборах отчётов и динамических списков;
— префикс Отбор. в имени параметра выбора — тогда значения приедут в ДанныеЗаполнения обработчика ОбработкаЗаполнения и новый объект создастся уже заполненным.

#std542: доступ к файловой системе — переписан целиком

Стандарт переструктурирован: шесть разделов вместо прежних пяти, два из них новые.

«Работа с двоичными данными и потоками». Не гоняйте данные через временные файлы, если хватит ПотокВПамяти. Классический антипаттерн: записать ТекстовыйДокумент во временный файл, прочитать из него ДвоичныеДанные, удалить файл — хотя данные и так были в памяти. И закрывайте потоки после чтения, иначе течёт память.

«Безопасность файловой системы» — восемь пунктов, которые полезно прогнать по своему коду:
— нельзя хранить путь или имя файла в реквизитах формы: на клиенте их подменят сторонними средствами, и серверный код полезет в произвольный файл;
— нельзя передавать путь к файлу в параметры серверных процедур форм и экспортных методов серверных общих модулей — их тоже можно вызвать с клиента;
— расширение файла, пришедшее с клиента, проверять по белому списку;
— перед работой с файлом на сервере убеждаться, что он лежит во временном каталоге или другом специально предусмотренном месте.

Плюс актуализированы методы передачи файлов: ПоместитьФайлНаСерверАсинх, НачатьПомещениеФайлаНаСервер и парные для скачивания вместо старых ПоместитьФайл и НачатьПомещениеФайла.

Разборы с примерами кода и скриншотами:
https://v8std.ru/std/799/
https://v8std.ru/std/411/
https://v8std.ru/std/542/

#std799 #std411 #std542
  • 🔥 8
  • ❤ 3
  • 👍 3
  • 🥰 1
  • 🙏 1
Post #158 1.6K
Эффективные условия запросов

🟡 В дополнительном условии оператор ИЛИ можно использовать без ограничений.

🟡 В основном условии МЕЖДУ можно использовать для последнего (или единственного) поля индекса.

🟡 В основном условии ПОДОБНО можно применять для последнего (или единственного) используемого поля индекса.

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

#std658
https://v8std.ru/std/658/
Стандарты разработки 1С Эффективные условия запросов #std658 Условия запросов пишите с учетом производительности. Цель: не допускать существенного роста времени выполнения при увеличении объема данных.
  • 👍 11
  • ❤ 4
Post #157 1.82K
Общие сведения об организации хранения данных

🟡 Для хранения списка характеристик, когда состав списка, тип характеристик и их состав определяет пользователь, используйте «План видов характеристик».

🟡 Для хранения результатов расчета учета начислений и удержаний используйте «Регистр расчета».

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

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

#std683
https://v8std.ru/std/683/
Стандарты разработки 1С Общие сведения об организации хранения данных #std683 При проектировании системы одна из ключевых задач - выбрать типы объектов метаданных для хранения сущностей предметной области.
  • 👍 6
  • 💯 2
  • ❤ 1
  • 🔥 1
Post #156 2.05K
Переопределяемые и поставляемые объекты библиотеки

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

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

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

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

#std553
https://v8std.ru/std/553/
Стандарты разработки 1С Переопределяемые и поставляемые объекты библиотеки #std553 Для настройки библиотеки в конфигурации-потребителе делите объекты на три категории:
  • 🔥 4
Post #155 2.87K
Ограничения на использование вложенных запросов в условии соединения

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

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

🟡 Это может существенно замедлить запрос и в ряде случаев сделать его неработоспособным на отдельных СУБД.

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

#std656
https://v8std.ru/std/656/
Стандарты разработки 1С Ограничения на использование вложенных запросов в условии соединения #std656 Не используйте вложенные запросы в условии соединения. Это может существенно замедлить запрос и в ряде случаев сделать его неработоспособным на отдельных СУБД.
  • 🔥 5
  • 👍 1
Post #154 2.11K
Обработчик события ПриЗаписи

🟡 К моменту вызова ПриЗаписи объект уже записан в базе данных.

🟡 Закрепите ключевые правила стандарта «Обработчик события ПриЗаписи» в code review и внутренних чек-листах.

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

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

#std465
https://v8std.ru/std/465/
Стандарты разработки 1С Обработчик события ПриЗаписи #std465 В обработчике ПриЗаписи модуля объекта (набора записей, значения константы) выполняйте действия, связанные с уже записанным объектом:
  • 🔥 7
  • 👍 3
Post #153 2.14K
Переопределение общих модулей в условиях иерархии библиотек

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

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

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

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

#std554
https://v8std.ru/std/554/
Стандарты разработки 1С Переопределение общих модулей в условиях иерархии библиотек #std554 При разработке нескольких библиотек, стоящих на поддержке друг у друга, снижайте трудоемкость обновления #std553: переопределяемых общих модулей.
  • 🔥 7
Post #152 3.64K
Автоформатирование кода 1С

Не все нарушения стандартов обязательно исправлять вручную. Обработка «Автоформатирование кода и локализация» умеет автоматически применять 34 преобразования: форматировать код, исправлять структуру модулей, комментарии, локализацию и другие элементы конфигурации.

Мы сопоставили автозамены с конкретными пунктами стандартов. Теперь возле поддерживаемых пунктов отображается тег autoformat со ссылкой на инструкцию.

В ней собраны:

— получение обработки с ИТС;
— пакетный запуск;
— работа с файловой и серверной базой;
— XML-выгрузка и проект EDT;
— получение и фиксация изменений в хранилище;
— настройка отбора стандартов и отдельных пунктов.

Подробнее: https://v8std.ru/diagnostics/autoformat/
  • 🔥 18
  • 👍 8
  • ❤ 3
Post #150 1.64K
Обновление оформления

Реестр диагностик https://v8std.ru/diagnostics/ теперь отрисовывает диагностики по конкретным пунктам сводно по всем стандартам чтобы быстро изучить покрытие

Сами диагностики теперь оформлены чипами и визуально смотрятся приятнее в том числе в тексте стандартов
  • 🔥 9
  • 🥰 6
  • 🎉 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →