В типовой конфигурации 1С:Управление нашей фирмой (УНФ) редакции 3.0 в заголовке главного окна программы по умолчанию отображаются текущие курсы основных валют. Часто это выглядит как строка: Управление нашей фирмой, редакция 3.0 / CNY 13,37 / EUR+5% 110,33 / (1С:Предприятие). Для многих компаний такой формат избыточен или вводит сотрудников в заблуждение (особенно если используются расчетные курсы с наценкой). В этой статье мы подробно разберем, как управлять этим поведением системы — от простых настроек до программной корректировки через расширение.
Прежде чем переходить к программированию, рассмотрим, что предлагает нам стандартный функционал. Разберем по шагам путь к настройке заголовка:
Проанализируем ситуацию: если мы введем в это поле название своей организации, например, ООО "Ромашка", то заголовок примет вид: ООО "Ромашка" / Управление нашей фирмой, редакция 3.0 / [Курсы валют]. Как мы видим, стандартная настройка лишь добавляет текст в начало строки, но не скрывает системную информацию о конфигурации и курсах валют. Если поле оставить пустым, программа выводит значения по умолчанию.
Выясним причину появления странных обозначений типа +5% или +10% рядом с валютой. Это не ошибка программы, а результат настройки справочника Валюты. Рассмотрим механизм их формирования:
Если в справочнике для конкретной валюты установлен способ установки курса Рассчитывать по формуле (например, EUR * 1.05), система автоматически интерпретирует это как наценку и выводит пояснение в заголовок. Чтобы изменить это отображение, необходимо зайти в карточку валюты и проверить формулу или изменить наименование/код валюты, так как алгоритм выбора валют для заголовка опирается на приоритет их кодов.
Если нам необходимо полностью убрать курсы или радикально изменить логику их вывода, нам придется обратиться к программному коду конфигурации. Проанализируем, где именно формируются эти данные. Ключевая логика сосредоточена в общем модуле, отвечающем за работу с валютами в УНФ.
Рассмотрим процедуру ПриДобавленииПараметровРаботыКлиентаПриЗапуске, которая находится в модуле ВалютыУНФ. Именно здесь система выполняет запрос к базе данных для получения курсов. Разберем фрагмент логики, который обнаружил автор темы:
// Внутри общего модуля ВалютыУНФ
Процедура ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры) Экспорт
// ... логика формирования структуры параметров ...
// Система делает запрос:
// ВЫБРАТЬ ПЕРВЫЕ 3 КурсыВалютСрезПоследних
// ГДЕ Валюта <> &НациональнаяВалюта
// ...
КонецПроцедуры
Программа выбирает первые три активные валюты (кроме валюты учета, обычно рубля) и помещает их в параметры клиента. Затем клиентское приложение при запуске вызывает метод ПриУстановкеЗаголовкаКлиентскогоПриложения в модуле ОбщегоНазначенияКлиентПереопределяемый, где эта строка окончательно собирается и выводится на экран.
Чтобы не снимать конфигурацию с поддержки и обеспечить легкость обновлений, мы будем использовать механизм расширений. Рассмотрим, как полностью очистить строку курсов валют в заголовке.
Создадим расширение и добавим в него процедуру-перехватчик. Нам нужно воздействовать на результат формирования заголовка. Оптимальнее всего использовать аннотацию &После для процедуры в переопределяемом модуле:
&После("ПриУстановкеЗаголовкаКлиентскогоПриложения")
Процедура Расш1_ПриУстановкеЗаголовкаКлиентскогоПриложения(ЗаголовокПлатформы)
// Переменная ЗаголовокПлатформы уже содержит сформированную строку
// Мы можем принудительно изменить её на ту, которую хотят пользователи
УстановитьУстановитьЗаголовокКлиентскогоПриложения("Моя компания: Учет ведется успешно!");
КонецПроцедуры
Если же ваша задача — оставить стандартный заголовок «УНФ», но убрать только хвост с валютами, можно воспользоваться строковыми функциями для поиска разделителя / и обрезки лишнего текста. Однако помните, что структура заголовка может меняться в разных релизах платформы 1С:Предприятие.
Посмотрим на ситуацию под другим углом. Поскольку система выбирает ПЕРВЫЕ 3 валюты, мы можем повлиять на результат, не меняя код. В справочнике Валюты порядок выборки часто зависит от кода валюты (цифрового или символьного).
Если вы хотите, чтобы определенная валюта (например, тот самый EUR+10%) не попадала в заголовок, попробуйте изменить её код таким образом, чтобы она оказалась в конце списка (например, заменив код на яяя). В этом случае в заголовок попадут другие, более «приоритетные» по алфавиту валюты, у которых нет наценок в формулах.
Существует еще один способ, предложенный участниками сообщества, который не требует программирования, но является скорее хитростью. Если в поле Заголовок программы (в общих настройках) ввести очень длинную строку, состоящую из названия компании и огромного количества пробелов или невидимых символов, то блок с курсами валют просто «вытеснится» за пределы видимости окна или будет скрыт платформой из-за превышения длины заголовка.
Однако мы не рекомендуем этот метод для постоянного использования, так как в веб-клиенте или на мониторах с низким разрешением это может привести к непредсказуемому отображению интерфейса и неудобству навигации между окнами в панели задач Windows.
Подведем итоги нашего разбора. Для изменения заголовка в УНФ 3.0 у нас есть три основных пути:
Валюты, чтобы «вытеснить» ненужные записи из первой тройки выборки.ПриУстановкеЗаголовкаКлиентскогоПриложения. Это самый гибкий метод, позволяющий установить любой текст заголовка или полностью скрыть блок валют, сохранив при этом возможность ведения учета в нескольких валютах.Рекомендуется использовать именно расширение, так как это позволяет точечно решить задачу, не нарушая логику расчета самих курсов, которые могут быть необходимы для работы документов (заказов поставщикам, прайс-листов и т.д.), даже если они раздражают пользователей своим присутствием в заголовке окна.