Простите, но, не смог удержаться...

  1. 3 мес. назад

    Пусть я сейчас в 1с заглядываю очень изредка и 1 глазом, но вот мимо этого пройти не смог...

    Есть объект - Контрагент, у него есть поле - Партнер. Задача - указать в в поле документа "Партнер" партнера из контрагента.

    Решение нормального человека:

    документОбъект.партнер = контрагент.партнер;

    Решение в типовой 1с:

    Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Объект.Контрагент);
    Функция ПолучитьПартнераПоКонтрагенту(Контрагент) Экспорт
    	
    	Запрос = Новый Запрос("
    	|ВЫБРАТЬ
    	|	Контрагенты.Партнер КАК Партнер
    	|ИЗ
    	|	Справочник.Контрагенты КАК Контрагенты
    	|ГДЕ
    	|	Контрагенты.Ссылка = &Контрагент
    	|");
    	
    	Запрос.УстановитьПараметр("Контрагент", Контрагент);
    	РезультатЗапроса = Запрос.Выполнить();
    	Выборка = РезультатЗапроса.Выбрать();
    	Если Выборка.Следующий() Тогда
    		Партнер = Выборка.Партнер;
    	Иначе
    		Партнер = Неопределено;
    	КонецЕсли;
    	
    	Возврат Партнер;
    
    КонецФункции

    кто там п*здел про "пояснения разработчиков" и т.п., я не помню уже, давай, профэссор, что скажешь по этому поводу? Это в соответствии с какой парадигмой сделано? [smile=:D] В рамках какой концепции? [smile=:D] По каким стандартам? [smile=:D]

    Ответы: (3) (6) (7) (8) (16) (19) (41) (89)
  2. как может документ называться "Партнер"? кто у вас архитектор?

    Ответы: (106)
  3. это явный бред ! Спасет вас тока сотрудничество с ИП "Годунов В.Б."

  4. (0) Все правильно сделано в типовой. Объектное чтение - зло.

  5. 12.07.2019 17:57:44 отредактировано Robin Union

    тут дело не только в объектном чтении собственно даже
    даже при наличии у контрагента партнера возможен возврат Неопределено, если партнер не соответствует отбору
    релиз конфы какой?

  6. в свежей ут сигнатура у функции отличается и тело тоже
    наверно, оставили пока так, чтобы потом дописать

  7. (0) Если мы читаем через точку то считываем весь объект со всеми его табличными частями, а там уже выбираем один из реквизитов.

    Только не спрашивайте почему

    Ответы: (7) (14) (17) (25)
  8. MIK (0) Если мы читаем через точку то считываем весь объект со всеми его табличными частями, а там уже выбираем один из реквизитов.

    Только не спрашивайте почему

    а как в типовой, запросом разве не все реквизиты получаются?!

    Ответы: (8) (9) (12)
  9. (7) см запрос (0)

    Ответы: (14)
  10. (7) В БСП есть специально обученная функция для кошерного получения реквизитов запросом вместо чтения через точку.

    Ответы: (10) (12)
  11. (9) угу. поэтому тут скорее большее значение имеет дальнейшей развитие функции в последующих релизах

    Ответы: (11)
  12. (10) Я не вижу ни одной причины сейчас писать код подобный

    документОбъект.партнер = контрагент.партнер;

    Одновременно неэффективно и небезопасно.

    Ответы: (14) (19) (44)
  13. ТеньД (7) В БСП есть специально обученная функция для кошерного получения реквизитов запросом вместо чтения через точку.

    пилять откуда вы все это знаете!!!!!!!!!!

    Ответы: (13) (15)
  14. (12) За знание подобных вещей мне платят деньги.

    Ответы: (15)
  15. 12.07.2019 18:36:49 отредактировано Рупор Галактики

    (11) ну ладно большинство этих, они конченые (не касается авторов (8), (6) и Теслы)... но ты то вроде на c++ писал, или на чем еще... к чужому мнению прислушиваться вроде в состоянии, что для 1совца крайне нехарактерно... ты хоть понимаешь, какую ахинею ты сейчас порешь?)) у тебя тоже "отравление головного мозга выделениями 1с"?

    Ответы: (25) (46)
  16. ТеньД (12) За знание подобных вещей мне платят деньги.

    мне тоже! Но я то не знаю этого! Как узнать?

  17. Рупор Галактики Решение нормального человека:

    нонче времена немного ушли вперёд по сравнению с 1с 7.7

  18. MIK Только не спрашивайте почему

    потому, что доступно и всерьёз!

  19. 12.07.2019 18:43:14 отредактировано NewTesla

    Вообще присмотревшись такое ощущение что смысловая нагрузка у кодов разная

    документОбъект.партнер = контрагент.партнер;

    Зачем получаем объект? Если мы находимся в модуле документа то можно писать Партнер =
    в этой трансрипции

    Партнер = Контрагент.Партнер;

    Код Идеален!!!!!

    Решение в типовой 1с:

    Это шляпа полная
    тк судя по первому коду в модуле документа у нас уже есть ссылка на справочник контрагента

    Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Объект.Контрагент);
    Функция ПолучитьПартнераПоКонтрагенту(Контрагент) Экспорт

    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    | Контрагенты.Партнер КАК Партнер
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    | Контрагенты.Ссылка = &Контрагент
    |");

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

    Возврат Партнер;

    КонецФункции

    Ответы: (21)
  20. 12.07.2019 18:46:06 отредактировано Рупор Галактики

    (11)Раз это по твоему правильно, может быть ты из какого-нибудь нормально ЯП и среды разработки пример говна и некомпетентности не то что в программировании, а в школьном курсе информатики, как в (0) приведешь? Всерьез думаешь, что найдется такой (у адекватных людей, естественно)?

    Ответы: (24)
  21. предлагаю не спортить а замерить мое решение с решением получения реквизита через запрос

    Ответы: (22)
  22. NewTesla тк судя по первому коду в модуле документа у нас уже есть ссылка на справочник контрагента

    но нам-то нужна ссылка на партнера, которая лежит в некоторой записи в таблице БД, которая относится к нашей ссылке Контрагент

    Ответы: (26)
  23. NewTesla предлагаю не спортить а замерить

  24. у кого больше, тот и прав!

  25. (19) то, что код красивый и в одну строчку, вовсе не означает, что выполняться он будет также легко и красиво

  26. (14) Твое непонимание простительно, в отличие от категоричности высказываний. Ты же 1с знаешь поверхностно, откуда такой апломб и самоуверенность, что правильно, а что нет?

    Во-первых, как правильно написано в (6) чтение через точку транслируется в чтение всего объекта контрагент, со всеми потрохами. Т. е. выбрать * из Справочники.Контрагенты как контрагент где контрагент. ссылка = &ВыбранныйКонтрагент + аналогичные запросы по всем табличным частям справочника. Как несложно догадаться, такой код не очень эффективен.

    Во-вторых, чтение через точку игнорирует права доступа. Если код документОбъект.партнер = контрагент.партнер; будет выполнен под юзером с урезанными правами, у которого нет права на чтение данного партнера, код свалится с ошибкой. Читая запросом можно использовать предикат РАЗРЕШЕННЫЕ или поместить ПолучитьПартнераПоКонтрагенту в привеллегированный модуль.

    Ответы: (70)
  27. andrewks но нам-то нужна ссылка на партнера, которая лежит в некоторой записи в таблице БД, которая относится к нашей ссылке Контрагент

    ну я так понимаю, мы имеем ссылку на контрагента

    неужто получение партнера запросом

    Выбрать
    СпрКонтрагент.Партнер
    из Справочник.Контрагент как СпрКонтрагент
    где
    СпрКОнтрагент.Ссылка = &Контрагент

    быстрее

    чем Контрагент.Партнер?

    Ответы: (27) (29) (33)
  28. NewTesla неужто получение партнера запросом

    не партнера, а ссылки на партнера

    NewTesla быстрее

    да

    Ответы: (32)
  29. Интересно!

    Век диви век учись!) щас гляну)

  30. 12.07.2019 19:07:52 отредактировано Рупор Галактики

    (26) конечно не быстрее, Тесла, ты прав, ибо помимо запроса создается еще куча абсолютно ненужных объектов типа самого запроса, результата запроса, выборки, делаются лишние операции с выборкой (типа выборка.следующий()), вызов самой процедуры стороннего модуля и возврат из нее значения. Плюс к тому пишется туча абсолютно лишнего и ненужного кода. Сам запрос на встроенном языке никаким образом не выполнится и не вернет значение быстрее, чем чтение через точку. Я не знаю, насколько нужно не разбираться в вопросе, чтобы утверждать обратное.

    Ответы: (30) (31) (33)
  31. (29) типовой изобретатель велосипеда ты ж не знаешь матчасти, представляю что ты там на ваяешь в своей ЕРП ...

    Ответы: (31)
  32. Fynjy (29) типовой изобретатель велосипеда ты ж не знаешь матчасти, представляю что ты там на ваяешь в своей ЕРП ...

    где почитать подобное? про матчать? тк скоро я получаю КМС и мне нао готовиться уже к мастеру и мсмк

    Ответы: (33)
  33. (27) Скажи мне, раз, по твоему запросом получать значение лучше, чем через точку, а через точку неэффективно и медленно, зачем вообще тогда существует обращение к чему либо через свойства (через точку), раз это такой отстой? почему все обращаются, даже в 1с?

    и как тогда ты объяснишь вот такой код из той же типовой УТ, при изменении партнера:

    Объект.Менеджер = Объект.Партнер.ОсновнойМенеджер;

    Это что же получается, тут неэффективно, а тут эффективно? И от чего же оно зависит, эффективно или нет? От текущей фазы луны? [smile=:D] От текущей доминирующей парадигмы? [smile=:D] От "пояснений разработчиков"? [smile=:D]

    Ответы: (34)
  34. 12.07.2019 19:18:33 отредактировано Рупор Галактики

    (31) Тесла, не слушай ты их, ты все правильно в (26) написал, я тебе в (29) объяснил, почему ты прав, читай. Ты лучше вместо 1с javascript выучи, будешь делать красивые сайты для иностранных заказчиков, получать много бабла в валюте, телочки по всему миру будут знать твое имя.

  35. (32) программисты в фирме 1С часто не действуют согласно требований самой фирмы 1С. Я тоже пишу через точку когда не нужно парится с производительностью. Но когда возникает необходимость в оптимизации - тогда имеет смысл переделать на получение данных запросом.

  36. запросом примерно в 2 раза быстрей вышло через замер производительности

    Ответы: (38)
  37. Рупор, тебе не код надо ругать, а платформу. Типа [...] нужно это [...] кэширование.

  38. Однако запрос будет выполнять считывание из базы данных при каждом вызове. Соответственно, при многократном обращении к одним и тем же данным будет выполняться многократное считывание. Этого можно избежать, обращаясь к свойствам ссылки. В этом случае используется кэширование объектов и в определенном интервале времени при повторном обращении к данным объекта не будет выполняться повторное считывание. Но следует учитывать, что обращение к любому полю через ссылку приведет к полному считыванию объекта (включая все поля и все табличные части).

    https://its.1c.ru/db/metod8dev/content/2717/hdoc

  39. (35) даже если ты ничего не напутал и не придумал (в чем я, прости, сомневаюсь), и у тебя и правда как-то получилось запросом на встроенном языке получить и присвоить ссылочное значение свойству объекта быстрее в 2 раза, чем просто через свойство, это лишь говорит о том, что величина степени ущербности 1с высока настолько, насколько даже я никогда не предполагал, но никогда, ни при каких обстоятельствах ни дин вменяемый человек не будет воротить кучу говнокода, когда можно просто присвоить через свойство. Также, как никогда нормальный адекватный человек не поедет за 1 батоном в Ашан за 10 км, когда можно купить его в булочной за углом. Это называется адекватность.

    Ответы: (74)
  40. 12.07.2019 19:48:14 отредактировано Robin Union

    ты не забывай, что ссылка это не полный экземпляр класса в оперативной памяти, а адрес на запись таблицы где-то в [...] зарослях базы данных

  41. и это тебе блять не браузерный DOM, [...]

  42. 12.07.2019 20:12:30 отредактировано Рупор Галактики

    (0) Также стоит понимать, что все приведенные мной примеры из типовой выполняются полностью на стороне сервера, с сервера на клиент там ничего не передается [smile=:D]

    Ответы: (42)
  43. (41) причём тут это? и так ясно, что в любом случае код будет выполнен на сервере

  44. 12.07.2019 21:14:10 отредактировано tsr

    Соглашусь с автором топика. Говнокода в 1С более чем. И получение всего объекта через точку это именно 1совская фича. Сделали как проще и всего делов. Если уж на то пошло, могли бы в своем компиляторе преобразовать этот вызов. Чесслово уже достало это ОбщийМодуль.ПолучитьЗначениеОбъекта(Ссылка,"Наименование");

    Ответы: (45)
  45. ТеньД Одновременно неэффективно и небезопасно.

    почему?

    Ответы: (46)
  46. tsr Чесслово уже достало это ОбщийМодуль.ПолучитьЗначениеОбъекта(Ссылка,"Наименование");

    это best practive что ли?

    Ответы: (48)
  47. 12.07.2019 21:28:51 отредактировано Рупор Галактики

    (44) Потому что

    Рупор Галактики "отравление головного мозга выделениями 1с"

    Тень, возвращайся в c++, или откуда ты... Пока у тебя еще есть шанс излечиться от этой желто-красной заразы.
    Тесла, а ты давай за javascript садись, пока не стал таким же как Маратыч и ему подобные. Телочки со всех концов света ждут красивых сайтов от тебя.

    Ответы: (49) (50)
  48. а, я дальше по контексу понял что читать запросом надёжнее потому что таким образом не игнорируются(sic!) права доступа

  49. (45) Это конфигурация Управление холдингом. А процедура из БСП

  50. 12.07.2019 21:36:16 отредактировано Robin Union

    (46) ты лучше приведи примеры использования последних фреймворков при работе с базой данных, той же mysql, и чтобы без селектов всяких

    Ответы: (50)
  51. Robin Union (46) ты лучше приведи примеры использования последних фреймворков при работе с базой данных, той же mysql, и чтобы без селектов всяких

    все селекты в отдельный слой интеграции с базой данных

    Ответы: (52)
  52. не надо бизнес логику с селектами мешать

  53. (50) ты путаешь мягкое с тёплым. ничто не мешает в 1с писать через точку или получать объект записи таблицы в оперативную память и там уже обращаться через точку

  54. 12.07.2019 21:42:04 отредактировано Robin Union

    скажем так, интерфейс работы с базой данных у 1с на высоте. можно запросом, можно через точку, можно получать объект, можно использовать менеджер класса..
    да [...], чо только нельзя

    Ответы: (54)
  55. Robin Union да [...], чо только нельзя

    это всё мелочи так то...

    Ответы: (55) (57)
  56. (54) ты хоть понял суть претензий Рупора?

    Ответы: (57)
  57. блять, ну как можно не понимать очевидные вещи

    Ответы: (58)
  58. Robin Union (54) ты хоть понял суть претензий Рупора?

    я прекрасно понял суть его претензий
    это ж безумие какое то - вместо доступа через точку запросы городить.

    Ответы: (59) (65) (73)
  59. Robin Union блять, ну как можно не понимать очевидные вещи

    это вот сейчас прям гуком пахнуло

    Ответы: (59) (61)
  60. (57) да [...] ты не понял.
    (58) о чём тебе и говорю, что [...] не понял
    тот же DataSet ADO.NET кэширует сука данные в оперативной памяти

    Ответы: (61)
  61. т.е. претензия в том, что 1с помимо того, что можно обратиться через точку к ссылке или к объекту, извлечённому в оперативную память, ещё блять предоставляет возможность сделать запрос
    как так?!

    Ответы: (62)
  62. Robin Union (58) о чём тебе и говорю, что [...] не понял

    я готов выслушать вашу версию его претензий

  63. (60) Ты не понял ничего.

    Ответы: (63)
  64. (62) потому что у тебя в голове каша

    Ответы: (64) (65)
  65. (63) Вещества употреблял, алкоголь? Признавайся.

  66. (63)Тебе в (57) правильно все сказали, городить запросы вместо простого обращения через свойства - это безумие какое-то, еще безумнее оттого, что его пытаются как-то всерьез оправдать и продвинуть в массы.

    Ответы: (67)
  67. 12.07.2019 22:05:24 отредактировано Рупор Галактики

    Эдрик, ты мне вот что скажи, ты же из Дойчланд, правильно? Ты вот тут случайно не бывал - https://zen.yandex.ru/media/id/5abb622b8139baba31d2513e/samyi-bolshoi-bordel-v-evrope-5b159847bce67e49e004ad86
    как там? Правду про него пишут? Я вот думаю в Европку может съездить, заехать хочу... Стоит оно того, нет?

    Ответы: (68) (71)
  68. Рупор Галактики городить запросы вместо простого обращения через свойства - это безумие какое-то

    обращайся через точку, получай объектные модели, в чём проблема? ну будет у тебя потрачено лишние тысячные доли секунды, как и во всех "правильных" фреймворках, в чём проблема?

  69. (66) не бывал. вот тут менее рекламное фото
    wiki:Pascha_(brothel)

  70. я не знаток борделей - не могу ничего посоветовать, извините

  71. ТеньД код свалится с ошибкой

    Не Объект не найден будет?

    Ответы: (72) (78)
  72. Рупор Галактики Я вот думаю в Европку может съездить, заехать хочу...

    -image-

    Ответы: (203)
  73. (70) Юзер увидит диалог "Нарушение прав доступа" с кнопкой ОК. Обожаю их за высочайшую информативность.

    Ответы: (78)
  74. (57)

    я прекрасно понял суть его претензий
    это ж безумие какое то - вместо доступа через точку запросы городить.

    Это не безумие, а legacy. В былинные времена "доступно и всерьез" такое решение было сочтено удовлетворительным. Особенно после предыдущего "тащим все на клиент, а там разберемся". Когда 1с от автоматизации ларьков попыталась уйти на уровень выше, внезапно оказалось что такой простой подход не очень кошерен. По уму конечно такие вещи надо переписывать на уровне платформы, а не городить пугающие Рупора портянки.

  75. (38)

    ни дин вменяемый человек не будет воротить кучу говнокода, когда можно просто присвоить через свойство.

    Один вменяемый (надеюсь) человек совсем недавно переписывал за подчиненным некий важный для бизнеса АРМ. Самым эффективным трюком стала замена строчки:

    НовСтр.ЕдИзмБ = новСтр.Номенклатура.БазоваяЕдиницаИзмерения;

    на:

    НовСтр.ЕдИзмБ = НайтиБазовуюЕдиницуИзмерения(НовСтр.Номенклатура);
    
    Функция НайтиБазовуюЕдиницуИзмерения(Номенклатура)
    	
    	Результат = СоответствиеНоменклатурыЕдиницыИзмерения.Получить(Номенклатура);
    	Если ЗначениеЗаполнено(Результат) Тогда
    		
    		Возврат Результат;
    		
    	КонецЕсли;
    	ЗапросПоискаСоответствияНоменклатурыЕдиницыИзмерения.УстановитьПараметр("Номенклатура", Номенклатура);
    	Выборка = ЗапросПоискаСоответствияНоменклатурыЕдиницыИзмерения.Выполнить().Выбрать();
    	Если Выборка.Следующий() Тогда
    		
    		СоответствиеНоменклатурыЕдиницыИзмерения.Вставить(Номенклатура, Выборка.БазоваяЕдиницаИзмерения);
    		Возврат Выборка.БазоваяЕдиницаИзмерения;
    		
    	КонецЕсли;
    	Возврат Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка();
    	
    КонецФункции
    
    Ответы: (77)
  76. и что показывают тесты производительности такого творчества?...

    Ответы: (76)
  77. Guk и что показывают тесты производительности такого творчества?...

    Тесты показывают что скоро я буду между двух лесбиянок!!!!!!!!!!!!!!!!!!!!!

    УРА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    УРА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    УРА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Да здравствуйте первая индустриальная революция ТЛМС и Владимир Ильич Ленин, который вдохновляет меня на часть перемен!

  78. 13.07.2019 14:19:14 отредактировано Рупор Галактики

    (74) Я очень сильно сомневаюсь, что эта махина действительно быстрее присваивания через свойства, мне кажется ты что-то путаешь. Но, даже если батон в Ашане был бы дешевле, чем в булочной, даже в 2 раза, ездить за 1 батоном за 10 км в Ашан, когда его можно купить в булочной за углом, это безумие. Подумай об этом.

    Ответы: (79) (93) (99)
  79. ТеньД (70) Юзер увидит диалог "Нарушение прав доступа" с кнопкой ОК. Обожаю их за высочайшую информативность.

    проверил - объект не найден (на примере реквизита таб. части)

    Ответы: (82)
  80. Рупор Галактики Но, даже если батон в Ашане был бы дешевле, чем в булочной, даже в 2 раза, ездить за 1 батоном за 10 км в Ашан, когда его можно купить в булочной за углом, это безумие. Подумай об этом.

    ещё раз, пиши через точку, кто запрещает?

  81. у меня такое ощущение, что в одну кучу сваливаются такие типы как ДанныеФормыСтруктура, СправочникОбъект и СправочникСсылка

  82. резюмируя, 1с предоставляет полные возможности "бизнес-логики". правильно и нужно обращаться к свойствам объектов, размещенных в оперативной памяти, через точку, можно обращаться через точку к объектам, которых нет в оперативной памяти, но также возможно писать произвольный запрос к базе данных, чтобы вытащить какие-то данные (хотя ничто не мешает обратиться через точку, выполнив при этом кэширование в оперативную память)

  83. 13.07.2019 17:56:44 отредактировано Robin Union

    Robin Union проверил - объект не найден (на примере реквизита таб. части)

    во-вторых, ограничение идёт на запись таблицы
    если пользователю доступна запись справочника контрагенты (если происходит обращение через точку), то разрешенные в запросе должно выдать объект не найден (партнер контрагента)

    Ответы: (94)
  84. конечно, в текущих конфигурациях для обоих справочников используется однотипное ограничение по группам доступа
    короче, если доступна ссылка контрагента, а партнер запрещен, то и в коде и в запросе со словом разрешенные будет объект не найден

    Ответы: (84)
  85. Robin Union конечно, в текущих конфигурациях для обоих справочников используется однотипное ограничение по группам доступа
    короче, если доступна ссылка контрагента, а партнер запрещен, то и в коде и в запросе со словом разрешенные будет объект не найден

    а не проще поставить проверку на права перед кодом

    пп.партнер = контрагент. партнер?

    все равно не понятно

    есл в модуле есть уже ссылка на контрагента, то почему через контрагент. партнер мы получаем таблицчные части контрагента?

    Ответы: (86)
  86. Если ссылка = это строка , то то почему ссылка. реквизит читает всю строку в таблице * контрагенты, это ж бред)

    Ответы: (110)
  87. NewTesla почему через контрагент. партнер мы получаем таблицчные части контрагента?

    мы получаем ссылку на партнера, больше ничего
    вот смотри
    предположим, у нас есть кусок кода, где происходит частое обращение к реквизитам контрагента (ссылки на справочник)
    Контрагент.Партнер, Контрагент.ИНН, Контрагент.КПП и проч.
    тут 2 варианта: либо платформа будет каждый раз совершать запрос в бд, либо она выгрузит данные контрагента в память, чтобы последующие обращения к реквизитам не требовали запроса в бд
    программист может об этом вообще не знать. платформа как бы сама тут суетится

  88. 13.07.2019 18:59:21 отредактировано Robin Union

    поэтому если ты, имея ссылку, обращаешься к ее реквизитам, это и нормально и платформа даже сама для тебя готовит данные
    и, опять же, не надо путать типы данных... ссылка на объект это просто ссылка на объект
    явная манипуляция данными сущности необходимо и очевидно происходит при работе с типами ДанныеФормыСтруктура, СправочникОбъект, как пример

    Ответы: (89)
  89. ну.. разумеется, когда ты [...] серьёзный код и манипулируешь большими объёмами данных, часто в циклах, ты должен понимать как правильно использовать различные способы чтения данных

  90. Robin Union поэтому если ты, имея ссылку, обращаешься к ее реквизитам, это и нормально и платформа даже сама для тебя готовит данные
    и, опять же, не надо путать типы данных... ссылка на объект это просто ссылка на объект
    явная манипуляция данными сущности необходимо и очевидно происходит при работе с типами ДанныеФормыСтруктура, СправочникОбъект, как пример

    ну так следуююя логике ТЗ из (0) и следует что ссылка тот у нас есть! и в запросе мы эту ссылку подставляем

    а почему бы, имеся ссылку, имея уже ыгруженные данные в оперативную не счатть ркавик

  91. Эта как я щас чищу кондер , [...] [...] мастера один не пришол когда нао , другой цены заряжает от 2 тр до 6 тр

    я спрашиваю от чего цена зависит? тут блять он начинает возмущатться что [...] я его отвлекаю

    третьего спрашиваю как вы чистить будете? он = садовым кешером польем внешний блок а внутренни блять щеточкой помоем и все!

    окуеть ! Разбирать они его не будут и 2 тр!

    Я разбрал заняло около 1,5 часа и то из за того что [...] инженеры кондера болт один под трубой спрятали

  92. все долно быть просто и понятно! как кондер = разобрал, в ванной почистил и норм! [...] болт под трубой прятать?

  93. Щас надо посмотреть как холодильник фреоном заправлять и утечку фреона найти)

    [...] мастера [...] [...] какието цены заряжают и не приходят

  94. (77) Основной ресурс, требующий оптимизации в разработке на 1с (как и в подобных ей бизнес приложениях) - минимизация обращения к БД. Стоимость выполнения "простыни" кода, формирующей текст запроса, ничтожно мала по сравнению с чтением из БД. Насколько критично переписывать подобный код ИМХО зависит от ситуации. Для разовой операции лично я бы заморачиваться не стал. Хотя я знаком с настоящими пуристами от 1с, которые за объектное чтение сходу бы определели написавшего в ламеры. Работа с терабайтными базами не проходит бесследно для психики. Там "простой" код элементарно приводит к непростым последствиям.

    В моем примере "горячая" строчка была внутри цикла, заполняющего таблицу. Оптимизация дала заметный без измерений эффект даже при первом прогоне функции. Последующие прогоны были еще быстрее, кэширование рулит.

    Ответы: (99) (100) (105)
  95. 13.07.2019 19:26:34 отредактировано Robin Union

    (82) проверил щас (не с контрагентами):
    ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, ИмяПоля, Истина - выбрать разрешенные);
    выдаёт Объект не найден

    Ответы: (96)
  96. [...] соседи на первом этаже говорю я вам плитку куплю и положу, выберите в магазине они куй забили говорят сам выбирай

  97. (94) А ты хотел так просто уронить бсп-ный код? В запросе обращение к запрещенному объекту обрабатывается корректно. При обращении через точку будет ошибка.

    Впрочем, они могли поменять поведение в последних релизах платформы.

    Ответы: (97)
  98. ТеньД При обращении через точку будет ошибка.

    написал же выше, что нет её - тоже объект не найден

  99. Наверное пофиксили. И это хорошо.

  100. ТеньД (77) Основной ресурс, требующий оптимизации в разработке на 1с (как и в подобных ей бизнес приложениях) - минимизация обращения к БД. Стоимость выполнения "простыни" кода, формирующей текст запроса, ничтожно мала по сравнению с чтением из БД. Насколько критично переписывать подобный код ИМХО зависит от ситуации. Для разовой операции лично я бы заморачиваться не стал. Хотя я знаком с настоящими пуристами от 1с, которые за объектное чтение сходу бы определели написавшего в ламеры. Работа с терабайтными базами не проходит бесследно для психики. Там "простой" код элементарно приводит к непростым последствиям.

    В моем примере "горячая" строчка была внутри цикла, заполняющего таблицу. Оптимизация дала заметный без измерений эффект даже при первом прогоне функции. Последующие прогоны были еще быстрее, кэширование рулит.

    это какя тока начинал ИП нанял чела , главного разработчика Беккера = это крупная фирма у нас

    так он когда со мной общался насмехался, при мне другу звонит = говорит я тут с человеком хочешь поработать на него?

    я подумал окуенный чел разраб! А он блять запись движений в цикле сделал [...] дебил! И код на 70 процентов медленнее стал! Это как Ержан тот с отчетом [...]! Тоже главный раработчик! Сделал мне отчет, который не формируется вообще если его не за день формировать а зависает! А я сделал и все довольны)

  101. Новее ›

или зарегистрируйтесь чтобы ответить!