Стандарты 1С v8std
2.27K subscribers
16 photos
6 videos
1 file
96 links
Download Telegram
Обработчик события ОбработкаПроверкиЗаполнения

🟡 В обработчике ОбработкаПроверкиЗаполнения проверяйте корректность заполнения реквизитов шапки, табличных частей и других данных до записи.

🟡 Если проверка заполнения условная, в коде удаляйте такие реквизиты из массива ПроверяемыеРеквизиты.

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

🟡 Учитывайте, что обработчик вызывается не при каждой записи; при обмене данными анализируйте ДополнительныеСвойства.ОтложенноеПроведение.

#std463
https://v8std.ru/std/463/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍13👌3🔥1
🔖ЧёПоСтандартам: инструкция, которую никто не читает, а потом страдает

Стандарты 1С часто воспринимают как “про оформление кода”: отступы, скобки, переносы.

Но в какой-то момент выясняется: в стандартах уже есть ответы на кучу типовых рабочих ситуаций, из-за которых мы спорим в ревью, ломаем архитектуру и тратим часы на “ну я так привык”.

На стриме разберем:
➡️ Стандарты глазами новичка: что я думал о них в начале и почему это было наивно.
➡️ Почему в вакансиях требуют, но на собеседованиях редко спрашивают.
➡️ Страх опозориться: как он мешает и как превращается в мотивацию (в том числе через блогинг).
➡️ Открытие “в стандартах ответы”: как быстро находить нужные места и применять их к задачам, а не к “красоте кода”.
➡️ Главный вывод: стандарты нужно периодически перечитывать, потому что память и реальность расходятся.

Приглашенный гость:
😶‍🌫️Роман Чумадин, автор блога «Е.БУДНИ программиста 1С» и рубрики «ЧёПоСтандартам».

Формат: разговор + разбор примеров + вопросы из чата.

😉 Ссылка на стрим
😄 Запись после стрима
🥰 Запись после стрима

🗓 Дата: 3 марта в 19:00
🧩 Кидайте заранее кейсы из практики: “как правильно по стандартам вот это сделать?” и “почему у нас в команде вечная война на эту тему”.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥29👍74
Правила создания общих модулей

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

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

🟡 Серверные общие модули используйте для внутренней серверной бизнес-логики.

🟡 Именуйте по общим правилам именования.

#std469
https://v8std.ru/std/469/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13👌102🤔1
Сегодня доделаны все стандарты с v8std

Сайт в десктопе улучшен

Добавлены диагностики от bslls, АПК и EDT с перекрестными ссылками на стандарты
3🔥77👏15👍11🥰4🏆31🥴1
Имена объектов метаданных в конфигурациях

🟡 Именуйте объекты метаданных по общим правилам именования, без лишних технических слов в названиях.

🟡 Для ролей разделяйте схему именования: прикладные роли называйте по должности, технические — по разрешаемому действию.

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

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

#std550
https://v8std.ru/std/550/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍8🔥3👌31🤯1
Использование функциональных опций

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

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

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

🟡 Не перегружайте систему параметрами опций: исключайте дубли и не параметризуйте по данным с очень большим числом значений.

#std470
https://v8std.ru/std/470/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10👌4🔥31❤‍🔥1🥰1🙏1
Использование параметров сеанса

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

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

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

🟡 Инициализируйте параметры сеанса по требованию в обработчике УстановкаПараметровСеанса, а не массово при старте программы.

#std413
https://v8std.ru/std/413/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12👌42🔥2
Использование подсистем

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

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

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

🟡 Команды администрирования выносите в раздел «Настройка и администрирование», сохраняя логическую группировку объектов по функциональному назначению.

#std543
https://v8std.ru/std/543/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍9👌5🔥3
Ограничения на использование Выполнить и Вычислить на сервере

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

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

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

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

#std770
https://v8std.ru/std/770/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12🔥5👌3
Транзакции: правила использования

🟡 Начинайте и завершайте транзакцию в одном методе: пары НачатьТранзакцию и ЗафиксироватьТранзакцию`/`ОтменитьТранзакцию не разносите по разным функциям.

🟡 Размещайте ЗафиксироватьТранзакцию последней операцией в блоке Попытка, чтобы после фиксации не возникали новые исключения.

🟡 В блоке Исключение сначала вызывайте ОтменитьТранзакцию, затем выполняйте логирование и завершайте обработку оператором ВызватьИсключение.

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

#std783
https://v8std.ru/std/783/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍16🔥9👌43💯3🤨1
Новая главная страница и новый раздел!

https://v8std.ru/patterns/

Встречайте Паттерны на v8std
4🔥55❤‍🔥16👍12🏆4
Работа с пользовательскими настройками

🟡 Для каждой настройки в хранилище общих настроек используйте уникальный строковый ключ.

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

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

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

#std557
https://v8std.ru/std/557/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥14👌1
Версия платформы 1С:Предприятие для разработки

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

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

🟡 В этом случае пользователи могут продолжать работу на текущем сертифицированном релизе и одновременно получают рекомендацию по обновлению.

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

#std785
https://v8std.ru/std/785/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔166
Начальные действия при работе конфигурации

🟡 Для подробного протокола выполненных операций и ошибок используйте журнал регистрации.

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

🟡 Ситуации, когда обработка выполнена не полностью, должны контролироваться конфигурацией.

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

#std556
https://v8std.ru/std/556/
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥91👌1
Поддержка толстого клиента, управляемое приложение, клиент-сервер

🟡 Не устанавливайте признак Вызов сервера всем модулям с признаком Сервер.

🟡 Для расстановки фрагментов кода с инструкциями препроцессора можно использовать обработку с ИТС.

🟡 Обработчики ОбработкаПолученияДанныхВыбора и ОбработкаПолученияФормы вызываются только на сервере, и это ограничение на них не распространяется.

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

#std680
https://v8std.ru/std/680/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥11👌1
Технология разветвленной разработки конфигураций

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

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

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

🟡 Все изменения по техническому проекту переносите в основное хранилище за одну закладку.

#std709
https://v8std.ru/std/709/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥8👍2👌1
Особенности разработки конфигураций для ОС Linux и macOS

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

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

🟡 Если применяется БСП, используйте функции модулей ОбщегоНазначения и ОбщегоНазначенияКлиент.

🟡 В большинстве случаев платформа сама обеспечивает кроссплатформенную работу клиентского и серверного кода.

#std723
https://v8std.ru/std/723/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍11👌1
Использование значений, влияющих на поведение клиентского приложения

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

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

🟡 Такой подход применяйте, когда изменение этих значений в течение сеанса некритично, и в рамках сеанса можно использовать один раз полученное значение.

🟡 Ограничивайте применение клиентских модулей с повторным использованием возвращаемых значений.

#std459
https://v8std.ru/std/459/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥81
Несоответствие индексов и условий запроса

🟡 Проверяйте, что для всех условий запроса есть подходящие индексы.

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

🟡 Реквизиты справочников и документов рекомендуется индексировать с дополнительным упорядочиванием.

#std652
https://v8std.ru/std/652/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔52👍2🔥2👌1