Имя: Пароль:
1C
1С v8
Объясните, что значит такой код
,
0 Альбатрос
 
30.10.12
04:25
ЗначениеВыбора.Свойство("ВыборИзСправочника", ВыборИзСправочника);
   ВыборИзСправочника = ВыборИзСправочника = Истина;
1 Wobland
 
30.10.12
04:31
> ВыборИзСправочника = ВыборИзСправочника = Истина;
явный г-код
2 Альбатрос
 
30.10.12
04:34
(1) Типовой из ут 10.3, процедура ОбработкаПодбора()
=)
3 Альбатрос
 
30.10.12
04:35
в РТиУ
4 Wobland
 
30.10.12
04:36
(2) вот не аргумент, хотя УТ10 должна быть отлажена вся кругом ;)
(1) это я о свойстве не читал
вторая строка делает нам явную булеву ложь, если в структуре нет значения ВыборИзСправочника. нету - значит, ложь, есть - значит, истина или ложь;
5 Альбатрос
 
30.10.12
04:41
(4)хм... прикольно...
6 Cube
 
30.10.12
04:51
(1) Я тоже соглашусь, что это авнокод.
7 Wobland
 
30.10.12
04:57
(6) это приведение к булеву.
аналог: ВыборИзСправочника=?(ВыборИзСправочника=Неопределено, Ложь, ВыборИзСправочника);
или: ВыборИзСправочника=НЕ(ВыборИзСправочника=Неопределено) И ВыборИзСправочника;
8 Альбатрос
 
30.10.12
05:00
(7) Ну ведь тогда и не авнокод совсем? Просто новичкам типа меня не сразу понятен смысл, а так он короче, и даже более читаем, чем варианты из (7).
9 Cube
 
30.10.12
05:51
(7) Я знаю, что это приведение типа. Но я бы сделал так:
ЗначениеВыбора.Свойство("ВыборИзСправочника", ВыборИзСправочника);
ВыборИзСправочника = ?(ТипЗнч(ВыборИзСправочника) = Тип("Булево"), ВыборИзСправочника, Ложь);

Это как-то более читабельно...
10 Рэйв
 
30.10.12
06:02
так читабельней

ЗначениеВыбора.Свойство("ВыборИзСправочника", ВыборИзСправочника);

ВыборИзСправочника = НЕ ВыборИзСправочника = Неопределено;
11 Wobland
 
30.10.12
06:07
(10) представть, что в ВыборИзСправочника у тебя ложь
12 Рэйв
 
30.10.12
06:11
(11)тогда так :-)


ВыборИзСправочника = ?(ВыборИзСправочника=Ложь,ВыборИзСправочника,НЕ ВыборИзСправочника = Неопределено );
13 Wobland
 
30.10.12
06:13
ну и для полноты картины ещё один вариант ;)
ВыборИзСправочника = ?(ВыборИзСправочника, Истина, Ложь);
14 Рэйв
 
30.10.12
06:46
(13)Сдуется если Неопределено :-)
15 Wobland
 
30.10.12
06:51
(14) ага, думал, оно мне неявно преобразует
16 Нуф-Нуф
 
30.10.12
07:01
Нормальный код в сабже
17 Альбатрос
 
30.10.12
07:19
Мужики, чтоб не плодить новых тем:
Делаю свой документ, организую подбор в таб.часть. Дернул функционал с РТиУ, подбор открывается, все в поряде, но в док-те не срабатывает ОбработкаВыбора()
Вызываю подбор так: РаботаСДиалогами.ОткрытьПодборНоменклатуры(ЭтаФорма, СтруктураПараметровПодбора, Метаданные());
В подборе после выбора номенклатуры срабатывает: ОповеститьОВыборе(), но в документе в процедуру ОбработкаВыбора() не заходит. Что я упустил?
18 Рэйв
 
30.10.12
07:21
(17)Может ты ОбработкаВыбора() ручакми написал и забыл прописать в свойствах формы?
19 Альбатрос
 
30.10.12
07:26
(18) точно! Спасибо!
20 Wobland
 
30.10.12
07:27
(19) методический совет. не пиши руками, выбирай из имеющихся. и писанины меньше, и привязка сама встаёт
21 gae
 
30.10.12
07:28
Нормальный код. Я правда для читабельности в скобки включаю:
ВыборИзСправочника = (ВыборИзСправочника = Истина);
22 1Сергей
 
30.10.12
07:38
(20) когда что-то копипастишь, легче скопировать, а потом привязать... главное не забыть :)
23 AndyD
 
30.10.12
08:20
в (9),(10),(12) и (13) настоящий овнокод. а в (0) все понятно и кратко.

если бы все непонятное новичкам разжевывали и заменяли 1 на 5 строк кода - пришлось бы сервера в 2 раза дороже покупать
24 Альбатрос
 
02.11.12
04:34
Продолжу с непонятными примерами из типовых. Не вижу смысла вот в этом:


Если НЕ ВходитВХолдинг Тогда
       ТекущаяМодифицированность = Модифицированность;
       ГоловнойКонтрагент        = Ссылка;
       Модифицированность        = ТекущаяМодифицированность;
   КонецЕсли;


А если быть точнее:


ТекущаяМодифицированность = Модифицированность;
Модифицированность        = ТекущаяМодифицированность;

Грубо говоря А=Б, Б=А. Для чего?
25 Wobland
 
02.11.12
04:35
(24) это чтоб реквизит поменять, а модифицированность оставить прежней
26 Альбатрос
 
02.11.12
04:36
(25) Точно! =) я и не додумался )
27 Wobland
 
02.11.12
04:40
(26) >А=Б, Б=А
навеяло. поменяй местами значения двух переменных без использования третьей
28 Wobland
 
02.11.12
04:40
(27) *числовых переменных
29 Альбатрос
 
02.11.12
05:07
(27) Классика! =)
30 mehfk
 
02.11.12
06:18
31 0xFFFFFF
 
02.11.12
06:22
(1) И чем это гкод?
Истина остается истиной, все остальное - Ложь.
Компактней и не напишешь.
32 Wobland
 
02.11.12
06:28
(30) а что, было такое? а я ксорил, как дурак
33 cw014
 
02.11.12
06:51
Нормально читаемый компактный код. Конечно для более читабельности можно было в скобки выражение поместить, но по крайней мере лучше, чем (12)

А в (12) получается:
Если СтрДлина(Строка(ВыборИзСправочника))>6 тогда
ВыборИзСправочника = Ложь;
КонецЕсли;
34 mehfk
 
02.11.12
19:57
(32) Пока x86 не умерло такое даже есть :)
35 mehfk
 
02.11.12
20:01
(32) более того, xchg ax,ax используется для так называемого выравнивания (alignment).
36 Лефмихалыч
 
02.11.12
20:05
(0) значит, что иногда в свойстве ВыборИзСправочника может прийти не булево
37 Mort
 
02.11.12
20:14
Код в сабже неплох, а вот г*код находится где-то выше его, если пришлось так вы*ться.
38 hhhh
 
02.11.12
21:40
(33) лучше так

Если НЕ ЗначениеВыбора.Свойство("ВыборИзСправочника", ВыборИзСправочника) Тогда
  ВыборИзСправочника = Ложь;
КонецЕсли;

просто авторы УТ не догадываются, что метод Свойство() возвращает значение.
39 Шурик71
 
02.11.12
22:03
может просто (38) не догадывается, что метод Свойство() возвращает наличие соответствующего ключа? :)
40 Лефмихалыч
 
02.11.12
22:39
да нормальный абсолютно код, нашли до чего достебаться.
на свои поделия бы лучше смотрели внимательней...
41 Фокусник
 
02.11.12
23:41
(0) ИМХО, код сам по себе нормальный, но подход не правильный. Лучше сделать универсальную функцию, возвращающую либо значение из структуры, либо значение по-умолчанию, если этого значения в структуре нет.
42 hhhh
 
03.11.12
02:13
(39) нет это 39 не догадывается, что метод не может возвращать наличие и безналичие, а метод возвражает значение типа булево.
43 Torquader
 
03.11.12
02:18
(42) Как бы (39) намекает, что в структуре будет ключ, но значение может быть вовсе не булево.