Здравствуйте!
Платформа 1С:Предприятие 8.3 (8.3.17.1549)
Конфигурация самописная
Возможно ли программно установить свойство конфигурации Основной стиль так, чтобы если это мобильный клиент, то устанавливался один стиль, а во всех остальных случаях - другой?
Цитата из My Webpage
Кроме непосредственного указания основного стиля в Конфигураторе, вы можете сделать это и с помощью встроенного языка. В контекст управляемого приложения мы вернули свойство глобального контекста ГлавныйСтиль. Устанавливать это свойство вам нужно в обработчике события УстановкаПараметровСеанса()
В моей конфигурации это не работает
Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
//ГлавныйСтиль = БиблиотекаСтилей["zmed_Основной"];
#Если МобильныйАвтономныйСервер Тогда
ГлавныйСтиль = БиблиотекаСтилей["zmed_СтильМобКлиент"];
#КонецЕсли
// СтандартныеПодсистемы
СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса);
// Конец СтандартныеПодсистемы
// ПодключаемоеОборудование
УстановленныеПараметры=Новый Массив;
МенеджерОборудованияВызовСервера.УстановитьПараметрыСеансаПодключаемогоОборудования("РабочееМестоКлиента", УстановленныеПараметры);
// Конец ПодключаемоеОборудование
КонецПроцедуры
Показать
Текст ошибки -
Свойство не может быть изменено после вызова 'УстановкаПараметровСеанса'
При запуске конфигурации процедура УстановкаПараметровСеанса вызывается неоднократно, а установить ГлавныйСтиль можно только один раз.
При первом вызове этой процедуры её параметр = Неопределено, от этого и нужно оттолкнуться.
Если ИменаПараметровСеанса = Неопределено Тогда
#Если МобильныйАвтономныйСервер Тогда
ГлавныйСтиль = БиблиотекаСтилей["zmed_СтильМобКлиент"];
#КонецЕсли
КонецЕсли;
(1) а в модуле приложения если попробовать, то что выйдет ? Может быть другой символ должен быть "МобильноеПриложениеСервер" ? или может от обратного, "Если не Сервер Тогда"
При запуске конфигурации процедура УстановкаПараметровСеанса вызывается неоднократно, а установить ГлавныйСтиль можно только один раз.
При первом вызове этой процедуры её параметр = Неопределено, от этого и нужно оттолкнуться.
Если ИменаПараметровСеанса = Неопределено Тогда
#Если МобильныйАвтономныйСервер Тогда
ГлавныйСтиль = БиблиотекаСтилей["zmed_СтильМобКлиент"];
#КонецЕсли
КонецЕсли;
(5)Да это понятно, и на форуме поиском я нашла похожую ситуацию и такой же ответ, и попробовала это написать в своем коде. Вчера в другой базе ругалось на саму эту строчку
Если ИменаПараметровСеанса = Неопределено Тогда
Сегодня сделала в другой базе - все ок. Но проблема еще в другом - нельзя использовать само это условие
#Если МобильныйАвтономныйСервер Тогда
потому что в начале модуля написано
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Можно конечно, туда дописать еще
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение или МобильныйАвтономныйСервер Тогда
но не факт, что в мобильном клиенте при запуске сервер будет автономный. В общем, пока как условие использовала признак роли пользователя моильного клиента. Временное быстрое решение. Как будет время, подумаю, как это грамотнее и красивее сделать. Спасибо!
А что именно было написано? Потому что в разных версиях платформы само имя параметра у процедуры УстановкаПараметровСеанса меняется, и если не глядя скопипастить, можно получить ошибку о неизвестной переменной.
(7)нет, я не копипастила, я писала то имя, которое было у меня. И это было еще до того, как искала здесь, так что и копипастить было нечего. А что писало, уже не помню.
(6) Если я правильно понимаю, то МобильныйАвтономныйСервер - это в том числе и Сервер, так что конструкцию "#Если МобильныйАвтономныйСервер Тогда" можно вложить внутрь "#Если Сервер ...Тогда"