|   |   | 
| 
 | По какому принципу происходит ПоискПоНаименованию() у пользователей | ☑ | ||
|---|---|---|---|---|
| 0
    
        Kigo_Kigo 16.02.22✎ 11:02 | 
        Есть 2 внешние обработки с наименованиями
 1) "Расчет базы распределения косвенных расходов" и 2) "Расчет базы распределения косвенных расходов + НДС ставка 0" Есть поиск ВнешниеОбработки.НайтиПоНаименованию("Расчет базы распределения косвенных расходов") Без точного поиска, то есть второй параметр "Ложь" У всех пользователей находит №1, у одного №2, ставлю второй параметр "Истина", находит №1 Судя по кодуСправочника №2 введен раньше №1 Платформа 20-я, ОФ, почему так? кеш пользователя прибивал и проверял со своего компа с загрузкой со своего конфигуратора, путем подмены пользователя в параметрах, то есть кеш отметается(вроде бы как, ИМХО) ПыСы холивар разводить, что ПоискПоНаименованию() - дичь, не стоит, я знаю, имею что дали | |||
| 1
    
        OldCondom 16.02.22✎ 11:10 | 
        Просто ПоискПоНаименованию() - дичь, не стоит. Переделай, быстрее будет, чем на форуме глупости обсуждать, дел то на 2 минуты.     | |||
| 2
    
        Dmitrii гуру 16.02.22✎ 11:11 | 
        (0) Ответ на этот вопрос никакого практического смысла не имеет.
 1С всегда и везде писала, что результат поиска по наименованию предсказать точно невозможно. Даже если кто-то тебе сейчас выдаст какое-то обоснованное объяснение, ты не сможешь никак применить его на практике. Бессмысленная трата времени. Единственное что ты можешь - сделать по-человечески. А уж тут вариантов масса. Начиная с того, чтобы объединить обработки в одну, работающую в двух режимах (для основной ставки НДС и ставки 0%). И заканчивая переносом обработок в расширение и использование вместо поиска по наименованию обращение по именам. | |||
| 3
    
        ДенисЧ 16.02.22✎ 11:12 | 
        Ставь всегда истину. И задавай точное наименование     | |||
| 4
    
        timurhv 16.02.22✎ 11:13 | 
        (0) Скорее всего, файловый режим?     | |||
| 5
    
        Dmitrii гуру 16.02.22✎ 11:15 | 
        >> У всех пользователей находит №1, у одного №2.
 Придётся теперь этого пользователя увольнять. 1С не для него. | |||
| 6
    
        Kigo_Kigo 16.02.22✎ 11:15 | 
        (1) (2) (3) Это понятно, в данной ситуации, быстро решить эту проблему - это переименовать №2, это я знаю
 как в принципе все что удалось накопать с просторов , что поиск по наименованию зависит от температуры теплого океана и фазы луны (4)К-С, МС Скуль | |||
| 7
    
        Kigo_Kigo 16.02.22✎ 11:23 | 
        Еще промелькнуло мнение, что МенеджерСправочников зафиксировало "частое" обращение этого пользователя с поиском по наименованию этой обработки и закешировало себе, и после обращения НайтиПоНаименованию, не лезет в БД, а выдает сразу кешированный результат (ну так на детском языке если)     | |||
| 8
    
        Dmitrii гуру 16.02.22✎ 11:34 | 
        (7) Как-то сомнительно. При таком варианте менеджеру справочника пришлось бы отслеживать изменение состава элементов (добавление/удаление) и их наименований. Чтобы актуализировать этот кэш. Да ещё и в разрезе каждого пользователя. Не слишком ли сложно.     | |||
| 9
    
        Масянька 16.02.22✎ 11:37 | 
        (6) Сортировка по какому реквизиту?     | |||
| 10
    
        Kigo_Kigo 16.02.22✎ 11:39 | 
        (9) какая сортировка, я где то про сортировку что то говорил?     | |||
| 11
    
        Галахад гуру 16.02.22✎ 11:41 | 
        Гуру подтянулись. :-)     | |||
| 12
    
        Dmitrii гуру 16.02.22✎ 11:46 | 
        Может там вообще у пользователя какие-то особенные права. И в текст непосредственного запроса к БД добавляются RLS. Потому и результат запроса отличается.     | |||
| 13
    
        OldCondom 16.02.22✎ 11:50 | 
        все же работает правильно, согласно описанию. Находит? Находит.     | |||
| 14
    
        Kigo_Kigo 16.02.22✎ 11:58 | 
        (12) Ник4аких особенных, рядом такой же бух сидит с полностью идентичными правами, находит №1, ц второго 2, но у кого находит не правильно - работала до этого с обработкой №2, потом ее, №2 переделали и залили как новую, но находит старую, при переименовании старой, или при параметре Истина, то находит и использует новую без проблем, отсюда и появилась версия из (7)     | |||
| 15
    
        Масянька 16.02.22✎ 12:02 | 
        (10) Не говорил. И что?
 Во всех нормальных языках поиск (не важно, какое поле) происходит в индексированной таблице. Думаю, что и 1С не исключение. А по теме - к гадалке. | |||
| 16
    
        Kigo_Kigo 16.02.22✎ 12:08 | 
        (15) Если и есть индексированная таблица(а она есть), да даже кластерная индексация, то она как бы должна для всех выполнятся одинаково и от сортировок пользователя это уж никак не зависит     | |||
| 17
    
        pechkin 16.02.22✎ 12:13 | 
        если сортировка не указана (а она не указана), то найтись может любой. Приучайся делать запросами | |||
| 18
    
        Масянька 16.02.22✎ 12:16 | 
        (17) Быть тебе главой Почты России! 😀😀😀
 А если не запросами, то указывай сортировку. | |||
| 19
    
        Kigo_Kigo 16.02.22✎ 12:16 | 
        (17) не ясен принцип, при одних и тех же параметрах- результат разный, при чем к результату №1 вроде как выдача ближе , чем ко второму     | |||
| 20
    
        pechkin 16.02.22✎ 12:18 | 
        (18) без запроса нельзя сортировку указать     | |||
| 21
    
        pechkin 16.02.22✎ 12:19 | 
        (19) это тебе нужно понимать внутреннее устройство файлового движка     | |||
| 22
    
        Bigbro 16.02.22✎ 12:21 | 
        ищи по коду, делов то)     | |||
| 23
    
        Dmitrii гуру 16.02.22✎ 12:22 | 
        (16) >> должна для всех выполнятся одинаково и от сортировок пользователя это уж никак не зависит.
 Чистой воды домыслы и попытка выдать желаемое за какое-то правило. Причем в условиях, когда вендор явно указывает, что никаких правил нет, и никому 1С в этом вопросе ничего не должна. А у тебя "должна" и всё тут. | |||
| 24
    
        Kigo_Kigo 16.02.22✎ 12:24 | 
        (23) У вас тоже чистой воды домыслы исходя из- "и никому 1С в этом вопросе ничего не должна"     | |||
| 25
    
        Kigo_Kigo 16.02.22✎ 12:27 | 
        (24) + Из за таких же суждений, завтра 1С при одинаковых входных параметрах будет выдавать разный результат расчетов из регистров, к примеру, то тоже "и никому 1С в этом вопросе ничего не должна", а что удобненько так то...     | |||
| 26
    
        pechkin 16.02.22✎ 12:38 | 
        (25) поэтому см (17)     | |||
| 27
    
        mistеr 16.02.22✎ 12:39 | 
        (0) Ты на других языках программировал? Знаешь, что такое undefined behaviour? Вот это оно. Попытки выяснить причину смысла не имеют. Причина разумеется есть, посмотрев исходники платформы, можно ее найти, а толку? Косяк данного решения НайтиПоНаименованию на 1С не спишешь, как ни крути.     | |||
| 28
    
        mistеr 16.02.22✎ 12:42 | 
        Это примерно как знакомая продавщица в магазине все время давала в долг, а сегодня бац — за прилавком другая и посылает нах. А ты, весь такой в праведном гневе, идешь жаловаться директору.     | |||
| 29
    
        Kigo_Kigo 16.02.22✎ 12:47 | 
        (27) (28) Какие то нелепые примеры и оправдания, извини не впечатлило...
 и что то мне думается на других языках за подобное разрабов бы по голове не погладили бы, особенно в более серьезных системах... | |||
| 30
    
        Галахад гуру 16.02.22✎ 12:49 | 
        (29) "разрабов бы по голове не погладили бы" это вы про коллег, которые код (0) написали? :-)     | |||
| 31
    
        Bigbro 16.02.22✎ 12:51 | 
        использование недокументированных возможностей непредусмотренным разработчиком образом - это конечно личное дело и риск каждого.
 находятся индивидуумы например которые пытаются документы в рамках одной миллисекунды получать и ожидают определенного порядка. хотя 1с честно говорит что порядка не будет. | |||
| 32
    
        Kigo_Kigo 16.02.22✎ 12:53 | 
        (31) ЗаиЙсаль, НайтиПоНаименованию - не документированная функция, ок, ветку можно закрывать...     | |||
| 33
    
        Dmitrii гуру 16.02.22✎ 12:54 | 
        (25) >> Из за таких же суждений.
 Каких суждений? Ты бредишь? В документации явно прописана особенность работы метода НайтиПоНаименованию(). Ты же пытаешься всех убедить, что такой особенности быть не должно. Если бы её не должно было быть, то её и не было бы. Но она есть. Нравится тебе или нет. Просто прими это как данность. >> завтра 1С при одинаковых входных параметрах будет выдавать разный результат расчетов из регистров. Все особенности (а они тоже есть) результатов расчетов из регистров так же описаны в документации. И вендор имеет полное право расшириться перечень таких особенностей, если посчитает это целесообразным. Не вижу в этом ничего предосудительного. Претензии имело бы смысл предъявлять, если бы 1С никого не предупредило бы или вообще гарантировало бы, что будет один результат, а выдавался бы другой. | |||
| 34
    
        1Сергей 16.02.22✎ 12:56 | 
        Я в типовой ЕРП 2.5. находил более ста вхождений "НайтиПоНаименованию"...
 ЗЫ Расстрелять! | |||
| 35
    
        Dmitrii гуру 16.02.22✎ 12:58 | 
        Представим, что в справочнике 1000 элементов с абсолютно одинаковыми наименованиями и кодом. То есть не как в (0), где наименования всё таки различаются, а именно одинаковые.
 Какой именно элемент должен вернуть результат поиска по наименованию? Что, по-твоему, должна указать 1С в документации к этому методу, если наблюдает различные результаты на различных СУДБ и даже на различных версиях одной и той же СУБД? | |||
| 36
    
        mistеr 16.02.22✎ 13:00 | 
        (35) Который первый в списке! :))
 p.s. А если после ТИИ будет другой, это предательство! | |||
| 37
    
        Bigbro 16.02.22✎ 13:01 | 
        (32) именно что документированная. и выдает она ровно то что должна - возвращает первый найденный элемент совпадающий по наименованию.
 а вот ваши ожидания что это будет один и тот же элемент для разных случаев - это уже сугубо ваши проблемы. об этом в функции нет ни слова - это ваши домыслы и ваша ответственность полагаться на то что это будет работать так как вы себе выдумали. | |||
| 38
    
        Kigo_Kigo 16.02.22✎ 13:01 | 
        (34) Тсссыыыы, это недокументированная функция, только для служебного пользования с неизвестным результатом, гыыы 
 (33) Хватит натягивать сову на глобус (35) Должен быть один результат, по какому признаку пусть, как ты говоришь - вендор сам выберет и им пользуется, дата создания, гуид, код, индекс и хер пойми чего, но один и тот же, или выдавать сз со списком найденных результатов, ту уж пусть сами выбирает какой прогеру более подходит(это же касалось бы по коду, по реквизиту и т.д.) | |||
| 39
    
        Dmitrii гуру 16.02.22✎ 13:05 | 
        (38) >> Хватит натягивать сову на глобус.
 +100500. Именно этим ты сейчас и занимаешься. Сам себе что-то придумал и теперь пытаешься всех окружающих убедить в незыблемости своей "правоты". | |||
| 40
    
        Kigo_Kigo 16.02.22✎ 13:06 | 
        (37) "один и тот же элемент для разных случаев - это уже сугубо ваши проблемы." Читать умеешь, нет так перечитай(0)?
 Какие нахер разные случаи и параметры, из разных параметров - другой пользователь и все, даже параметры запуска одни и те же из конфигуратора | |||
| 41
    
        mistеr 16.02.22✎ 13:08 | 
        (38) Вот вендор и выбрал признак "хер пойми чего" с правом его менять по своему усмотрению.
 Иначе было бы невозможно развивать платформу. | |||
| 42
    
        Kigo_Kigo 16.02.22✎ 13:08 | 
        (39) еще раз, я себе ничего не придумал, а попытался понять и вас спросит от чего зависит, но в (6) уже сделал выводы "что поиск по наименованию зависит от температуры теплого океана и фазы луны", дальше этого мы не сдвинулись ни на микрон     | |||
| 43
    
        pechkin 16.02.22✎ 13:23 | 
        Так это скуль? Тогда пишите в спортлото (зачеркнуто) Микрософт     | |||
| 44
    
        Масянька 16.02.22✎ 13:33 | 
        - Ты суслика видишь?
 - Нет. - А он есть. (С) Описание ветки в трех строчках. | |||
| 45
    
        1Сергей 16.02.22✎ 13:53 | 
        Единственное рациональное использование НайтиПоНаименованию вижу только при загрузке данных из внешних источников. А так, надо избавляться от овнокода     | |||
| 46
    
        FIXXXL 16.02.22✎ 14:34 | 
        (0) вот так ищет БСП, применяй
 Функция КонфликтующиеДополнительныеОтчетыИОбработки(Объект, ЭтоОтчет, ИмяОбъекта) УстановитьПривилегированныйРежим(Истина); ТекстЗапроса = "ВЫБРАТЬ | ТаблицаСправочника.Ссылка КАК Ссылка, | ТаблицаСправочника.Представление КАК Представление |ИЗ | Справочник.ДополнительныеОтчетыИОбработки КАК ТаблицаСправочника |ГДЕ | ТаблицаСправочника.ИмяОбъекта = &ИмяОбъекта | И ТаблицаСправочника.Вид В(&ВидыДополнительныхОтчетовИОбработок) | И ТаблицаСправочника.Публикация = ЗНАЧЕНИЕ(Перечисление.ВариантыПубликацииДополнительныхОтчетовИОбработок.Используется) | И ТаблицаСправочника.ПометкаУдаления = ЛОЖЬ | И ТаблицаСправочника.Ссылка <> &Ссылка"; ВидыДополнительныхОтчетовИОбработок = Новый Массив; ВидыДополнительныхОтчетовИОбработок.Добавить(Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет); ВидыДополнительныхОтчетовИОбработок.Добавить(Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ИмяОбъекта", ИмяОбъекта); Запрос.УстановитьПараметр("ВидыДополнительныхОтчетовИОбработок", ВидыДополнительныхОтчетовИОбработок); Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); Если Не ЭтоОтчет Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТаблицаСправочника.Вид", "НЕ ТаблицаСправочника.Вид"); // не локализуется КонецЕсли; Запрос.Текст = ТекстЗапроса; Конфликтующие = Запрос.Выполнить().Выгрузить(); Возврат Конфликтующие; КонецФункции | |||
| 47
    
        fisher 16.02.22✎ 15:02 | 
        Хм... Любопытная фигня. Действительно интересно, чем конкретно обусловлена разная выдача для разных пользователей (в плане лучшего понимания внутренней механики).
 И да - действительно было бы лучше, если бы при поиске при наименованию платформа стабилизировала бы выдачу явной сортировкой. ЗЫ. Что не отменяет того факта, что использовать неточный поиск - это быть ССЗБ. | |||
| 48
    
        Злопчинский 16.02.22✎ 15:31 | 
        А что значит НайтиПоНаименование("ЧтоТо",Ложь)..?
 найдет первую любую какую-то значение которое Начинается с "ЧтоТо"..? то есть в ответ можно получить и "ЧтоТо" или "ЧтоТоКомуТо" . иликак ? | |||
| 49
    
        Kigo_Kigo 16.02.22✎ 15:35 | 
        (48)Именно так, Читай (0), там все написано, почти всем выдает ЧтоТо, а не понятно почему, кому то "ЧтоТоКомуТо"     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |