Узнать имя формы в режиме Предприятие
В новых версиях платформы появились новые команды форм для удобства анализа и разработки.
Информация для технического специалиста - показывает полное имя открытой формы.
Открыть в Конфигураторе - открывает текущую форму в Конфигураторе.
Программная доработка форм типовых конфигураций
В типовых конфигурациях в формах ПриСозданииНаСервере вызывается метод общего модуля СобытияФорм (см. скрин 1). Если расширить только этот модуль, то можно в одном модуле собрать все программные модификации форм (см. скрин 2).
Получается удобная универсальная оснастка, которую можно тиражировать во все свои проекты.
Кеширование предопределенных значений на клиенте
При использовании функции глобального контекста ПредопределенноеЗначение
нет необходимости реализовывать механизмы кеширования на клиенте, т.к. результаты этой функции автоматически кешируются платформой.
ЮрФизЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо");
При использовании БСП вместо ПредопределенноеЗначение
можно использовать ОбщегоНазначения.ПредопределенныйЭлемент
или ОбщегоНазначенияКлиент.ПредопределенныйЭлемент
. Это то же самое, только не падает с ошибкой, если получать несуществующее значение.
Порядок вызова подписок на событие
Известно, что подписки на событие вызываются в последнюю очередь: сперва обработчик события в модуле объекта, затем или перед ним код из расширений этого метода (если есть), после - подписки на событие.
Это можно прочитать на ИТС, там же указано, что подписки вызываются в произвольном порядке.
На практике же замечено, что подписки вызываются в том порядке, в котором они идут в ветке метаданных. При этом подписки с источником общего типа (например, ДокументОбъект) выполняются позже, чем с источником конкретного типа. Это приходится учитывать при разработке, и не забывать, что фича не документирована и может зависеть от версии платформы.
Когда важна очередность выполнения, надёжнее всего реализовать очередность в коде, а количество подписок сократить.
Кеширование данных ИБ
Раньше, для ускорения 1С и сокращения обращений к СУБД, данные кешировали в параметрах сеанса. Затем в платформу добавили общие модули с повторным использованием возвращаемых значений (читай "кеш").
В ССиМ есть статья с рекомендациями по использованию общих модулей с повторным использованием. Из интересного:
🔸 Закешированное значение будет удалено из кэша через 20 минут после вычисления или через 6 минут после последнего использования
🔸 Нельзя менять данные, полученные из кэша
🔸 Внутренние вызовы модулей с повторным использованием не кэшируются
🔸 При кэшировании на время сеанса нельзя использовать значения типа Запрос и объекты базы данных
🔸 Метод глобального контекста ОбновитьПовторноИспользуемыеЗначения()
удаляет все повторно используемые значения
Простая печать комплектов
Для вывода на печать нескольких форм и нескольких экземпляров можно не писать свой обработчик печати. БСП позволяет добавить команду печати, указав формы через запятую в поле Идентификатор:
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "Счет,ТОРГ12,ТОРГ12";
КомандаПечати.Представление = "Комплект (счет и 2 торг12)";
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
Конечно, вывод форм, входящих в комплект, должен быть заранее реализован (каждой отдельной формы).