| 
    
        
     
     | 
    
    
  | 
        Неподдельный гурутест для программиста 1С     ↓ (Волшебник 08.09.2022 09:08)  | 
☑ | ||
|---|---|---|---|---|
| 
    0
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    16:23 
 | 
         
        Предлагаю всем протестировать себя и, не выполняя следующий код, предсказать вычисленные значения переменных.
 
        АдминистрированиеСервера = Новый АдминистрированиеСервера = Новый АдминистрированиеСервера; КвалификаторыЧисла = Новый КвалификаторыЧисла = Новый КвалификаторыЧисла; ОбработкаКартинок = Новый ОбработкаКартинок = Новый ОбработкаКартинок; ОписаниеОповещения = Новый ОписаниеОповещения = Новый ОписаниеОповещения; ОписаниеТипов1 = Новый ОписаниеТипов("Число, Строка") = Новый ОписаниеТипов("Число, Строка"); ОписаниеТипов2 = Новый ОписаниеТипов("Строка, Число") = Новый ОписаниеТипов("Число, Строка"); ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML; ПолеКомпоновкиДанных = Новый ПолеКомпоновкиДанных("ы") = Новый ПолеКомпоновкиДанных("ы"); СжатиеДанных = Новый СжатиеДанных = Новый СжатиеДанных; СтандартныйПериод = Новый СтандартныйПериод = Новый СтандартныйПериод; Структура = Новый Структура("ы") = Новый Структура("ы"); ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура("ы") = Новый ФиксированнаяСтруктура("ы"); Я смог правильно предсказать НЕ все. При этом я пользовался синтакс-помощником и сайтом ИТС сначала чтобы предсказать, а потом чтобы объяснить результат. Но в ряде случаев не смог найти объяснение фактическим результатам. Попробуй теперь ты!  | 
|||
| 
    1
    
        trad    
     29.08.22 
            ✎
    16:29 
 | 
         
        СП можно пользоваться?     
         | 
|||
| 
    2
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    16:31 
 | 
         
        (1) Я же пользовался. Так что это не стыдно =)     
         | 
|||
| 
    3
    
        Ненавижу 1С    
     гуру 
    29.08.22 
            ✎
    16:32 
 | 
         
        Не со всеми типами я работал, но все-таки предположу, что если тип имеет только read-only свойства, или не имеет изменяемых (определяется свойствами полностью в конструкторе) - то значения объектов будут равны, например "Шрифт", иначе не равны (равенство ссылок)     
         | 
|||
| 
    4
    
        Fragster    
     гуру 
    29.08.22 
            ✎
    16:33 
 | 
         
        Могу предположить, что если есть методы, то <>, если нет, то зависит от реализации     
         | 
|||
| 
    5
    
        Fragster    
     гуру 
    29.08.22 
            ✎
    16:34 
 | 
         
        по хорошему, все, что создается с Новый не должно быть равно без использования магии типа сериализации или valueOf     
         | 
|||
| 
    6
    
        Галахад    
     гуру 
    29.08.22 
            ✎
    16:34 
 | 
         
        8 из 12. Не гуру.
 
        Кстати, почему в "консоли кода" ПараметрыЗаписиXML маскируется?  | 
|||
| 
    7
    
        Fragster    
     гуру 
    29.08.22 
            ✎
    16:34 
 | 
         
        проверять я это, конечно, не буду     
         | 
|||
| 
    8
    
        СеменовСемен    
     29.08.22 
            ✎
    16:35 
 | 
         
        бессмысленно сравнивать объекты по ссылке на них     
         | 
|||
| 
    9
    
        Asmody    
     29.08.22 
            ✎
    16:37 
 | 
         
        (0) Любая из 12 строк в живом коде => Вон из профессии!     
         | 
|||
| 
    10
    
        СеменовСемен    
     29.08.22 
            ✎
    16:38 
 | 
         
        я бы выбрал так 
        ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML; ПолеКомпоновкиДанных = Новый ПолеКомпоновкиДанных("ы") = Новый ПолеКомпоновкиДанных("ы"); СжатиеДанных = Новый СжатиеДанных = Новый СжатиеДанных; запускать влом  | 
|||
| 
    11
    
        trad    
     29.08.22 
            ✎
    16:40 
 | 
         
        ОбработкаКартинок, СжатиеДанных - истина
 
        остальные - ложь не проверял  | 
|||
| 
    12
    
        trad    
     29.08.22 
            ✎
    16:46 
 | 
         
        (11) +
 
        проверил, загрустил  | 
|||
| 
    13
    
        vde69    
     29.08.22 
            ✎
    16:52 
 | 
         
        я так вижу, тут вопрос в том как идет сравнение, по значению или по ссылке
 
        АдминистрированиеСервера = ложь КвалификаторыЧисла = Истина ОбработкаКартинок = ? не знаю что это ОписаниеОповещения = ложь ОписаниеТипов1 = истина ОписаниеТипов2 = истина ПараметрыЗаписиXML = ? ПолеКомпоновкиДанных = ложь СжатиеДанных = Истина СтандартныйПериод = ложь Структура = ? ФиксированнаяСтруктура = истина  | 
|||
| 
    14
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    16:56 
 | 
         
        (6) Возьми консоль кода ИР. Там не маскируется.     
         | 
|||
| 
    15
    
        Святофор    
     29.08.22 
            ✎
    16:57 
 | 
         
        (13) по ссылка или значению может идти передача
 
        сравнение это IComparable и реализация компоратора  | 
|||
| 
    16
    
        СеменовСемен    
     29.08.22 
            ✎
    16:58 
 | 
         
        (15) скорее всего там синглтон в основе равных     
         | 
|||
| 
    17
    
        Святофор    
     29.08.22 
            ✎
    16:59 
 | 
         
        (16) это как?     
         | 
|||
| 
    18
    
        trad    
     29.08.22 
            ✎
    16:59 
 | 
         
        (15) оператор сравнения реализуется для типа     
         | 
|||
| 
    19
    
        Галахад    
     гуру 
    29.08.22 
            ✎
    17:02 
 | 
         
        (14) Как раз в ней и смотрю. Может версия старая. 6_6.27.1
 
        Такой код не показывает результата: ПараметрыЗаписиXML = 1;  | 
|||
| 
    20
    
        СеменовСемен    
     29.08.22 
            ✎
    17:03 
 | 
         
        (17) не знаешь что такое синглтон? 
        это когда объект всегда один  | 
|||
| 
    21
    
        Святофор    
     29.08.22 
            ✎
    17:03 
 | 
         
        (18) а какой смысл сравнивать два типа?
 
        два объекта одного класса надо сравнивать - чтобы сортировать или эквивалентность проверить...  | 
|||
| 
    22
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    17:04 
 | 
         
        (19) Так много лет пользуешься и даже не научился версию ИР получать =) 
 
        У меня работает https://i.imgur.com/HkAEGEB.png  | 
|||
| 
    23
    
        Святофор    
     29.08.22 
            ✎
    17:04 
 | 
         
        (20) я знаю, только это здесь причем? я не понял     
         | 
|||
| 
    24
    
        vde69    
     29.08.22 
            ✎
    17:05 
 | 
         
        (20) типа как в php можно создавать объекты класса а можно использовать класс как сингл объект...     
         | 
|||
| 
    25
    
        СеменовСемен    
     29.08.22 
            ✎
    17:05 
 | 
         
        (23) ну так значения равны ибо по факту это один и тот же объект     
         | 
|||
| 
    26
    
        trad    
     29.08.22 
            ✎
    17:06 
 | 
         
        (21) ок, оператор сравнения реализуется для класса     
         | 
|||
| 
    27
    
        Галахад    
     гуру 
    29.08.22 
            ✎
    17:07 
 | 
         
        (22) Зачем мне? Хорошо работает, зачем что-то менять. :-)     
         | 
|||
| 
    28
    
        free dude    
     29.08.22 
            ✎
    17:07 
 | 
         
        (0) why?     
         | 
|||
| 
    29
    
        Святофор    
     29.08.22 
            ✎
    17:08 
 | 
         
        (25) т.е. не смотря на Новый - там синглтон? накрутили...     
         | 
|||
| 
    30
    
        СеменовСемен    
     29.08.22 
            ✎
    17:08 
 | 
         
        (28) а зачем задачки про шарики решают?     
         | 
|||
| 
    31
    
        СеменовСемен    
     29.08.22 
            ✎
    17:09 
 | 
         
        (29) синглтон - он всегда Новый ... 
        Там не совсем синглтоны, а синглтоны с параметрами. Это правильнее называть мемоизацией  | 
|||
| 
    32
    
        free dude    
     29.08.22 
            ✎
    17:10 
 | 
         
        (30) Коты задачки про шарики решают, потому что им делать нечего. А вы зачем?     
         | 
|||
| 
    33
    
        СеменовСемен    
     29.08.22 
            ✎
    17:11 
 | 
         
        (32) а зачем ты сюда пришел? 
        ответ на все эти вопросы - одинаковый  | 
|||
| 
    34
    
        free dude    
     29.08.22 
            ✎
    17:12 
 | 
         
        (33) Посмотреть на тест гуру 1С, а это херня какая то на постном масле.     
         | 
|||
| 
    35
    
        Святофор    
     29.08.22 
            ✎
    17:12 
 | 
         
        (31) синглтон - он всегда Новый ...
 
        он один раз Новый да и получение через Новый скрывают. Экземпляр синглтона предоставляет статической метод класса  | 
|||
| 
    36
    
        Lama12    
     29.08.22 
            ✎
    17:33 
 | 
         
        Не удивлюсь, если от версии к версии платформы, результаты будут разные.     
         | 
|||
| 
    37
    
        Fragster    
     гуру 
    29.08.22 
            ✎
    17:36 
 | 
         
        Вообще в работе часто приходится сравнивать поля компоновки, периоды и описания типов (включая внутренности) и там сравнение работает. С остальными сказать ничего не могу     
         | 
|||
| 
    38
    
        СеменовСемен    
     29.08.22 
            ✎
    17:45 
 | 
         
        (37) ну чтож победителю - медаль     
         | 
|||
| 
    39
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    17:51 
 | 
         
        (36) Ну это ты прям сильно предъявил платформе. Я проверял выборочно разные версии - везде одинаковые результаты.     
         | 
|||
| 
    40
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    17:53 
 | 
         
        (34) Возможно у каждого гуру свой тест и этот тест не для тебя?     
         | 
|||
| 
    41
    
        Конструктор1С    
     29.08.22 
            ✎
    18:00 
 | 
         
        (0) зачем так извращаться?     
         | 
|||
| 
    42
    
        free dude    
     29.08.22 
            ✎
    18:07 
 | 
         
        (40) а что дает этот тест? В чем его суть? в 90% случаев он бесполезный и как правильно заметили в разных платформах может давать разные результаты.     
         | 
|||
| 
    43
    
        Святофор    
     29.08.22 
            ✎
    18:11 
 | 
         
        (42) раз до этого добрался значит уже остальное все охвачено. и начались изыски в стиле "Веселый 1С". Или "CLR via C#"     
         | 
|||
| 
    44
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    19:21 
 | 
         
        (41) В чем смысл жизни?     
         | 
|||
| 
    45
    
        Smit1C    
     29.08.22 
            ✎
    19:37 
 | 
         
        (41) просто у кого-то  слишком много свободного времени... ))     
         | 
|||
| 
    46
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    19:38 
 | 
         
        В итоге как то более менее нашел объяснения всем случаям кроме СжатиеДанных. Его результат не укладывается. Вроде он - очень простой немутабельный объект, но почему то он уникальные экземпляры имеет. Возможно его проектировали с прицелом на какую то мутабельность, но сложилось. В итоге так и оставили.     
         | 
|||
| 
    47
    
        TormozIT    
     гуру 
    29.08.22 
            ✎
    19:42 
 | 
         
        (46) [поправка] НЕ сложилось     
         | 
|||
| 
    48
    
        Кирпич    
     29.08.22 
            ✎
    20:48 
 | 
         
        Знание бесполезной ерунды не делает никого гуру. Это тест для задротов, а не для гуру. Никто в реальной жизни такое не сравнивает.     
         | 
|||
| 
    49
    
        Святой Нос    
     29.08.22 
            ✎
    21:33 
 | 
         
        (44) > В чем смысл жизни?
 
        42  | 
|||
| 
    50
    
        senior_pomidor    
     30.08.22 
            ✎
    06:36 
 | 
         
        (48) это даже не тест .не о чем хрень     
         | 
|||
| 
    51
    
        Irbis    
     30.08.22 
            ✎
    06:47 
 | 
         
        (45) Так много, что даже отдохнуть некогда. Отдых — это моё самое занятое время, не могу отвлечься ни на мгновение.     
         | 
|||
| 
    52
    
        Fragster    
     гуру 
    01.09.22 
            ✎
    12:10 
 | 
         
        (48) см (37)     
         | 
|||
| 
    53
    
        Ботаник Гарден Меран    
     01.09.22 
            ✎
    12:30 
 | 
         
        У сжатия данных есть [разная] степень, в конструкторе она по умолчанию.
 
        Не тяну на гуру совсем, 4 из 12.  | 
|||
| 
    54
    
        TormozIT    
     гуру 
    01.09.22 
            ✎
    16:49 
 | 
         
        (53) В чем принципиальное отличие СжатиеДанных от КвалификаторыЧисла, которое не размножается?     
         | 
|||
| 
    55
    
        Ботаник Гарден Меран    
     01.09.22 
            ✎
    16:59 
 | 
         
        (54)
 
        Ну я же не гуру. Вообще, половина пунктов зависит от того, с какой ноги платформописатели встали утром. Мне тоже странно, что Новый ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML а СжатиеДанных(-1) <> СжатиеДанных(-1) "Так получилось".  | 
|||
| 
    56
    
        Ботаник Гарден Меран    
     01.09.22 
            ✎
    17:03 
 | 
         
        Плюс на партнерке добавил, но бесполезное это дело.
 
        Оно и практически не особо нужно, а по давней традиции тем более делать не будут.  | 
|||
| 
    57
    
        TormozIT    
     гуру 
    08.09.22 
            ✎
    09:00 
 | 
         
        Экспериментально полученный список кэшируемых (для которых сравнение даст Истина) объектов:
 
        ВыражениеКомпоновкиДанных ВыражениеСхемыЗапроса Граница Действие ИдентификаторВыгрузкиДанныхСистемыВзаимодействия ИдентификаторОбсужденияСистемыВзаимодействия ИдентификаторПользователяСистемыВзаимодействия ИдентификаторПриложенияСистемыВзаимодействия ИдентификаторСообщенияСистемыВзаимодействия ИспользованиеСобытияЖурналаРегистрации Картинка КвалификаторыДаты КвалификаторыДвоичныхДанных КвалификаторыСтроки КвалификаторыЧисла КонтекстОбсужденияСистемыВзаимодействия МоментВремени МоментВремениСУточнениемПериода НастройкиСериализацииJSON ОписаниеИспользованияСобытияДоступЖурналаРегистрации ОписаниеИспользованияСобытияОтказВДоступеЖурналаРегистрации ОписаниеТипов ПараметрКомпоновкиДанных ПараметрыЗаписиJSON ПараметрыЗаписиXML ПараметрыЧтенияXML ПолеКомпоновкиДанных СвязьПоТипу СвязьПоТипуКомпоновкиДанных СтандартнаяДатаНачала СтандартныйПериод Стиль УникальныйИдентификатор ФорматированнаяСтрока Цвет Шрифт  | 
|||
| 
    58
    
        DTX 4th    
     08.09.22 
            ✎
    09:44 
 | 
         
        Бесполезная хрень. Абсолютно не применимо на практике. Достаточно знать чем передача по ссылке отличается от передачи по значению.     
         | 
|||
| 
    59
    
        TormozIT    
     гуру 
    08.09.22 
            ✎
    20:01 
 | 
         
        Продолжаем разговор. Нужно снова предсказать результаты
 
        Ф1 = Метаданные = Метаданные; Ф2 = Метаданные.Справочники = Метаданные.Справочники; Ф3 = Метаданные.Справочники.Валюты = Метаданные.Справочники.Валюты; Ф4 = Метаданные.Справочники.Валюты = Метаданные.Справочники.Валюты.Реквизиты.НаименованиеПолное.Родитель(); Ну тут я уже сталкивался, т.к. метаданные часто использую. Поэтому я угадал все.  | 
|||
| 
    60
    
        xkanix    
     09.09.22 
            ✎
    08:02 
 | 
         
        (57) 
 
        + ключ записи регистров + строка группировки и ключ строки дин. списка + всякие данные формы + "очевидные" ссылки + совсем очевидные числа, строки и пр. ну и наверное ещё куча их P.S. "кеширование" тут ну прямо вот вообще не при чём, хотя местами и правда в некотором виде присутствует.  | 
|||
| 
    61
    
        TormozIT    
     гуру 
    09.10.22 
            ✎
    11:59 
 | 
         
        (60) Согласен. "Кэширование" применяет лишь в некоторых случаях. А в большинстве случаев все таки сравнение через сериализацию.
 
        Еще нашел интересную реализацию оператора сравнения для объекта ОбластьЯчеекТабличногоДокумента. Эти объекты размножаются и не равны всегд, кроме копирования ссылки. Например выражение Элемент.Область(Y, X) = Элемент.Область(Y, X) дает Ложь для любых разрешенных параметров.  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |