8.2 Проверить значение перечисления в УФ #520508


#0 by Garkin
Подскажите будет ли вариант политически корректным? или все таки
#1 by mikecool
или все атки
#2 by Garkin
я подозреваю это, хотелось бы точно знать почему?
#3 by igork1966
а че, в 8.2 вот так не катит: Если ВидДвижения = Перечисления.ВидДвижения.Расход Тогда
#4 by Garkin
На тонком клиенте - нет
#5 by Abs4
Вызов метода ПредопределенноеЗначение выполняет обращение к серверу. Поэтому, если этот код выполняется на клиенте, то получается внеочередной вызов сервера.
#6 by Garkin
т.е. второй вариант предпочтительней?
#7 by Нефига не 1С
1. Создай реквизит формы с типом Перечисление.ВидДвижения 2. При создании на сервере присвой реквизиту значение Перечисления.ВидДвижения.Расход 3. Сравнивай ВидДвижения с реквизитом с нужным местом.
#8 by Нефига не 1С
* 3. Сравнивай ВидДвижения с реквизитом в нужном месте.
#9 by acsent
на тонком клиенте можно сделать Строка(ВидДвижения) ??
#10 by also
ага, можно..И сервер не вызывается. В связи с этим первый способ предпочтительней в плане производительности. Второй более красивый с точки зрения оформления кода. Но на сколько я понял позицию 1с в подобных случаях: нужно искать золотую середину. Если ты уверен, что те 200 байт, которые будут получены с сервера в результате вызова ПредопределенноеЗначение не сыграют ключевой роли в производительности, то делай вторым способом, иначе первым.
#11 by Нефига не 1С
любое обращение к серверу, даже за 200ми байтами может растянуться на 1.5 - 2 сек при плохом пинге. Поэтому вариант в всегда предпочтительней, а Строка(ВидДвижения)="Расход" - некошерный.
#12 by acsent
А зачем на клиенте проверять виддвижения?
#13 by also
а если пункт 2) из не возможен?
#14 by Нефига не 1С
проверить значение перечисления может потребоваться для какой угодно задачи.
#15 by torrensen
создайте реквизит формы тип произвольный в ПриСозданииНаСервере переопределите реквизит как структуру и на клиенте если ВидДвижения = ВидДвиженияПриходРасход.Приход(Расход)
#16 by also
ну мало ли
#17 by Нефига не 1С
по какой причине он может быть невозможен??? если это клиент, то у формы есть обработчик ПриСозданииНаСервере!
#18 by torrensen
обращение к перечислению требует вызов сервера
#19 by torrensen
ПриСозданииНаСервере серверный метод
#20 by also
ну например после создания на сервере, при каких то условиях оно могло поменяться...Но это так - философия.. Соглашусь, что в самый предпочтительный вариант
#21 by Нефига не 1С
это не метод! это обработчик события, который всегда выполняется при открытии формы!
#22 by also
ты его не понял
#23 by Нефига не 1С
Оо! Как перечисление может поменяться при каких то там условиях?
#24 by also
фигню сморозил...я про реквизит подумал
#25 by acsent
Кстати в английском языке будет Строка(ВидДвижения)="Expense"
#26 by torrensen
(210 Да обработчик события, но контекст вызова - &НаСервере
#27 by Нефига не 1С
для таких меняющихся можно использовать вызов функции из общего модуля с включенным повторным использованием значений. Например для получения курса валюты.
#28 by Нефига не 1С
учите матчасть...
#29 by Нефига не 1С
у Вас походу каша в голове по вопросу архитектуры платформы
#30 by Mort
Для всех кто боится "вызовов сервера" при чтении значения перечисления: 1. Делаем обработку с кнопкой 2. По кнопке код: Х = ПредопределенноеЗначение(".... и т.д. 3. Запускаем отладчиком жмакаем много раз по кнопке и считаем количество вызовов.
#31 by Нефига не 1С
Вызов этого метода выполняет обращение к серверу.
#32 by Mort
+ Финт 2: Добавляем в форму обработки в приСозданииНаСервере: Х = ПредопределенноеЗначение(".... и т.д. и снова запускаем. Жмем на кнопку и считаем вызовы ))
#33 by Mort
А ты не поленись и проверь как в
#34 by Mort
Если бы 1С не сделали кэширование предопределенных значений по мере их чтения, то рукоблудие в может бы и спасало.
#35 by Нефига не 1С
А ты не поленись и почитай синтакс-помощник.
#36 by Нефига не 1С
+ да и в типовых, например УНФ, используется подход из
#37 by Нефига не 1С
++ при том для того, чтобы закешировать какое-либо значение с сервера, надо хотябы раз на него сходить.
#38 by Mort
В при создании например. Блин, обработка пишется за две минуты, неужели самому неинтересно проверить?
#39 by Нефига не 1С
1. Количество серверных вызовов – 2 2. Количество серверных вызовов - 0 3. Количество серверных вызовов - 0 4. Количество серверных вызовов - 0 5. Количество серверных вызовов - 0 ... Цифру 2 в 1. хорошо видно? Как думаешь когда очищается кеш и снова будет 2?
#40 by Нефига не 1С
В моем варианте количество серверных вызовов будет 1. Количество серверных вызовов – 0 2. Количество серверных вызовов - 0 3. Количество серверных вызовов - 0 4. Количество серверных вызовов - 0 5. Количество серверных вызовов - 0
#41 by Mort
У пользователя борода расти начнет когда снова будет, по сравнению с временем вызова. В одной форме столько не сидят, за редким исключением, и за это время на сервер сбегаем по другим делам ещё не раз (или раз в 20 минут на клиенте "Внезапно" появляется переменная типа перечисления?) А по поводу первого вызова я в написал.
#42 by Нефига не 1С
Вам нельзя доверять оптимизацию клиент серверного взаимодействия. Тут КАЖДЫЙ лишний вызов на счету!
#43 by Mort
За исключение гипотетического вызова платить реквизитом формы это не оптимизация. это ловля негра в темной комнате, в которой его нет.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С