- Последний пост
- 14 авг.
- Последнее чтение
- 04:16
- Постов за неделю
- 3
- Всего постов
- 24
- Тип
- открытый
- Язык
- русский
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 817
- 1/48двое суток
- 936
- 1/72трое суток
- 1 009
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Запуск регламентных заданий 🟡 В этом случае рекомендуется создавать отдельное рабочее место для выполнения таких заданий. 🟡 Для администраторов информационных баз рекомендуется: на время обновления ИБ блокировать выполнение регламентных заданий. 🟡 Если в конфигурации используется Библиотека стандартных подсистем, первая рекомендация уже реализована в подсистеме Обновление версии ИБ. 🟡 Если в конфигурации используется Библиотека стандартных подсистем, такое рабочее место уже входит в подсистему Регламентные задания (форма Регламентные и фоновые задания). #std539 https://v8std.ru/std/539/
Режим разделения итогов для регистров бухгалтерии 🟡 Если при этом выполняется контроль остатков, эффект от разделения итогов ограничен. 🟡 Если движения по бухгалтерскому регистру записываются оперативно в многопользовательском режиме, рекомендуется включить разделение итогов. 🟡 Устройство и использование режима разделения итогов регистров (статья на ИТС). 🟡 В конфигурации есть регистр Хозрасчетный с измерениями Организация и Валюта. #std663 https://v8std.ru/std/663/
Использование ключевых слов "ОБЪЕДИНИТЬ" и "ОБЪЕДИНИТЬ ВСЕ" в запросах 🟡 В общем случае при объединении результатов нескольких запросов используйте ОБЪЕДИНИТЬ ВСЕ, а не ОБЪЕДИНИТЬ. 🟡 Исключение: ситуации, когда удаление дубликатов является обязательным условием корректного результата запроса. 🟡 Причина: ОБЪЕДИНИТЬ удаляет полностью одинаковые строки, и это требует дополнительного времени даже тогда, когда одинаковых строк заведомо быть не может. 🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза. #std434 https://v8std.ru/std/434/
Использование модуля объекта, модуля менеджера объекта и общих модулей 🟡 Для функций модуля менеджера не должен требоваться экземпляр объекта данных (СправочникОбъект, ДокументОбъект и т.п.). 🟡 Размещайте в нем процедуры и функции, которые работают с данными объекта (ЭтотОбъект и переменные модуля), в том числе когда объект еще не записан в базу. 🟡 Учитывайте, что для вызова экспортных процедур и функций из других модулей обычно нужно сначала получить экземпляр через ПолучитьОбъект(). 🟡 Если функциональность нельзя однозначно отнести к одному объекту метаданных, она считается общей для нескольких объектов. #std486 https://v8std.ru/std/486/
Июльское обновление стандартов 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
Эффективные условия запросов 🟡 В дополнительном условии оператор ИЛИ можно использовать без ограничений. 🟡 В основном условии МЕЖДУ можно использовать для последнего (или единственного) поля индекса. 🟡 В основном условии ПОДОБНО можно применять для последнего (или единственного) используемого поля индекса. 🟡 Арифметические операции над полями выполняйте только в дополнительных условиях. #std658 https://v8std.ru/std/658/
Общие сведения об организации хранения данных 🟡 Для хранения списка характеристик, когда состав списка, тип характеристик и их состав определяет пользователь, используйте «План видов характеристик». 🟡 Для хранения результатов расчета учета начислений и удержаний используйте «Регистр расчета». 🟡 Для хранения плана счетов по принципам двойной записи используйте объект метаданных «План счетов». 🟡 Для хранения данных учета с использованием принципа двойной записи используйте «Регистр бухгалтерии». #std683 https://v8std.ru/std/683/
Переопределяемые и поставляемые объекты библиотеки 🟡 Не вызывайте процедуры переопределяемых модулей напрямую из кода конфигурации-потребителя. 🟡 Такие объекты должны присутствовать во всех конфигурациях, использующих библиотеку. 🟡 Переопределяемые общие модули должны содержать только экспортные процедуры, которые вызываются из кода библиотеки. 🟡 Через них настраивают поведение библиотечных подсистем и подключают библиотечную функциональность к объектам конфигурации-потребителя. #std553 https://v8std.ru/std/553/
Ограничения на использование вложенных запросов в условии соединения 🟡 Рекомендуемый подход - вынести вычисления во временную таблицу и затем соединять уже готовый результат. 🟡 Типовой проблемный сценарий: в условии соединения используется вложенный запрос, чтобы получить «срез последних» на конец предыдущего периода, причем для каждой номенклатуры период может отличаться. 🟡 Это может существенно замедлить запрос и в ряде случаев сделать его неработоспособным на отдельных СУБД. 🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза. #std656 https://v8std.ru/std/656/
Обработчик события ПриЗаписи 🟡 К моменту вызова ПриЗаписи объект уже записан в базе данных. 🟡 Закрепите ключевые правила стандарта «Обработчик события ПриЗаписи» в code review и внутренних чек-листах. 🟡 Для спорных случаев фиксируйте выбранный подход в комментариях к коду и документации. 🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза. #std465 https://v8std.ru/std/465/
Переопределение общих модулей в условиях иерархии библиотек 🟡 В самом переопределяемом модуле размещайте не реализацию, а только вызов. 🟡 В библиотеках более высокого уровня реализацию процедур и функций базового переопределяемого модуля доопределяйте при необходимости. 🟡 В конечной конфигурации-потребителе реализация переопределяемого модуля строится как цепочка вызовов библиотек плюс прикладная часть. 🟡 Проверяйте соблюдение стандарта при доработках и перед выпуском релиза. #std554 https://v8std.ru/std/554/
Автоформатирование кода 1С Не все нарушения стандартов обязательно исправлять вручную. Обработка «Автоформатирование кода и локализация» умеет автоматически применять 34 преобразования: форматировать код, исправлять структуру модулей, комментарии, локализацию и другие элементы конфигурации. Мы сопоставили автозамены с конкретными пунктами стандартов. Теперь возле поддерживаемых пунктов отображается тег autoformat со ссылкой на инструкцию. В ней собраны: — получение обработки с ИТС; — пакетный запуск; — работа с файловой и серверной базой; — XML-выгрузка и проект EDT; — получение и фиксация изменений в хранилище; — настройка отбора стандартов и отдельных пунктов. Подробнее: https://v8std.ru/diagnostics/autoformat/
без подписи
Обновление оформления Реестр диагностик https://v8std.ru/diagnostics/ теперь отрисовывает диагностики по конкретным пунктам сводно по всем стандартам чтобы быстро изучить покрытие Сами диагностики теперь оформлены чипами и визуально смотрятся приятнее в том числе в тексте стандартов
Использование общих реквизитов 🟡 Не переносите в общие реквизиты обычные прикладные поля вроде Ответственный, Комментарий, Организация только ради удобства. 🟡 Учитывайте, что права на общие реквизиты настраиваются отдельно от прав на объекты, куда они добавлены. 🟡 Порядок общих реквизитов-разделителей в дереве метаданных выбирайте в соответствии с порядком установки связанных параметров сеанса. 🟡 Общие реквизиты без разделения данных используйте только для инфраструктурных задач конфигурации, когда данные нужно хранить прямо в прикладных объектах. #std677 https://v8std.ru/std/677/
Большое обновление v8std.ru: диагностики теперь связаны с конкретными пунктами стандартов Обновили сайт [v8std.ru](https://v8std.ru/) — теперь от сообщения диагностики можно перейти не просто к стандарту, а сразу к тому пункту, который объясняет проблему и требования к исправлению. Что появилось: • 691 диагностика АПК Описания и рекомендации извлечены непосредственно из АПК версии 1.2.9.80. • 186 диагностик BSL Language Server • 172 диагностики EDT v8-code-style Для каждой связи мы проверили, действительно ли диагностика соответствует указанному пункту стандарта. Устаревшие, неточные и ошибочные ссылки исправлены, а неподтверждённые связи исключены. Например, страница [АПК 384](https://v8std.ru/diagnostics/acc/384/) теперь ведёт на актуальный пункт 6 стандарта о формировании печатных форм. При этом отдельно отмечено, что в самой выгрузке АПК указан прежний номер пункта — 7. Что ещё сделано: • добавлены полноценные описания диагностик из первичных источников; • сформированы общие каталоги диагностик АПК, BSL LS и EDT; • добавлены обратные ссылки со стандартов на связанные диагностики; • обновлены поисковый индекс, LLMS-выгрузки и MCP-каталог; • сохранена совместимость со старыми идентификаторами диагностик; Каталог АПК: https://v8std.ru/diagnostics/acc/ Диагностики BSL Language Server: https://v8std.ru/diagnostics/bslls/ Диагностики EDT v8-code-style: https://v8std.ru/diagnostics/v8-code-style/
Разрешение итогов для периодических регистров сведений 🟡 Исключение: случаи, когда актуализация итогов при записи была отключена вызовом РегистрСведенийМенеджер.УстановитьИспользованиеИтогов(Ложь). 🟡 Если все условия выше выполняются, включение свойства Разрешить итоги: срез последних может существенно ускорить такие запросы: выборка идет из дополнительных таблиц с первыми/последними значениями. 🟡 Во всех остальных случаях итоги для периодических регистров сведений разрешать не следует. 🟡 Также следует рассматривать пересмотр запросов к регистру, чтобы условия для использования итогов выполнялись. #std708 https://v8std.ru/std/708/
Использование Журнала регистрации 🟡 Не используйте выборки из журнала регистрации там, где критична высокая скорость. 🟡 Текст типа события должен быть локализуемым и задаваться на основном языке конфигурации. 🟡 Журнал регистрации хранит события, которые возникают в работе пользователей с информационной базой. 🟡 Одна запись журнала должна соответствовать одному событию. #std498 https://v8std.ru/std/498/
без подписи
без подписи