7.7 по какому полю ищет функция НайтиПоНаименованию()

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем tmpnikl, 29 ноя 2012.

  1. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    есть функция
    НайтиПоНаименованию(), в справке по этой функции не понял, по конкретному полю происходит поиск или по всем полям таблицы, и есть ли функция которая ищет по конкретному полю....
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    НайтиПоНаименованию ищет исключительно по служебному атрибуту наименование.
    Есть также функция НайтиПоКоду...

    Для поиска по иным реквизитам используйте НайтиПоРеквизиту. У реквизита должен быть включен отбор
  3. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    спасибо...
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  5. VIPOS
    Offline

    VIPOS Опытный в 1С

    Регистрация:
    12 сен 2012
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    29
    Для таких вопросов существует Синтаксис-помощник

    CatalogManager.<Имя справочника>)
    НайтиПоНаименованию (FindByDescription)

    Синтаксис:НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>)

    Параметры:

    <Наименование> (обязательный)Тип: Строка.
    Строка, содержащая искомое наименование.

    <ТочноеСоответствие> (необязательный)Тип: Булево.
    Определяет режим поиска по полному соответствию.
    Поиск будет успешным, если строка поиска: в случае значения параметра Ложь - будет соответствовать левой части наименования; в случае значения параметра Истина - будет полностью совпадать с наименованием (за исключением "хвостовых" пробелов в наименовании).
    Значение по умолчанию: Ложь

    <Родитель> (необязательный)Тип: СправочникСсылка.
    Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.

    <Владелец> (необязательный)Тип: СправочникСсылка.
    Владелец, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.

    Возвращаемое значение:Тип: СправочникСсылка.<Имя справочника>; Неопределено.
    Ссылка на найденный элемент справочника.
    Если не существует ни одного элемента с требуемым наименованием, то будет возвращена пустая ссылка.
    Если для справочника наименование не задано (длина = 0), то будет возвращено Неопределено.

    Описание:Осуществляет поиск элемента по его наименованию.


    Доступность:Сервер, толстый клиент, внешнее соединение.

    Примечание:Если существует несколько элементов с указанным наименованием, то будет найден только один из них.

    Пример: СтрокаНаименования = "USD";
    Валюты = Справочники.Валюты;
    НайденнаяСсылка = Валюты.НайтиПоНаименованию(СтрокаНаименования);
    Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда
    Сообщить("Валюты """ + СтрокаНаименования + """ еще нет");
    КонецЕсли;
  6. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    спасибо, но вот что мне ответил мой синтаксис помощник, когда я к нему обратился. перед тем как задать здесь вопрос...
    НайтиПоНаименованию(<?>,,);
    Синтаксис:
    НайтиПоНаименованию(<Наименование>,<Режим>,<ФлагПоиска>)
    Назначение:
    Найти элемент справочника по наименованию.
    Возвращает: 1 - если действие выполнено;
    0 - если действие не выполнено (элемент не найден).
    Параметры:
    <Наименование> - строка с наименованием искомого элемента справочника,
    <Режим> - необязательный параметр. Число: 1 - поиск внутри установленного подчинения (родителя); 0 - поиск во всем справочнике вне зависимости от родителя. Значение по умолчанию - 1.
    <ФлагПоиска> - необязательный параметр. Число: 1 - найти точное соответствие наименования; 0 - найти наименование по первым символам. Значение по умолчанию - 0.
    Замечание:
    Метод можно использовать только для объектов, созданных функцией СоздатьОбъект
    ***********************************************************************************************************

    и мне было не понятно как реализован поиск в этой функции, правда и сейчас смотрю, что такое служебные атрибуты справочника, какие ещё есть атрибуты, кроме служебных, как определить служебный это атрибут или нет, как посмотреть, эти служебные атрибуты, по которым организован поиск(как я понял это индекс), то ли по наименованию, то ли по id, и не по каждому реквизиту наверное будет поиск, а только по тем, которые включены в отбор...и т.д.

    Не нужно писать сообщения мелким шрифтом.
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Служебных атрибутов всего два: наименование, код.
    Все остальные вводятся программистом при конфигурировании.

    Уточните, какая перед вами стоит задача? Или вы просто изучаете 1с?
  8. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Дополню: ещё есть родитель и владелец.
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да, вы правы, но речь в посте идет о функции поиска
  10. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Есть кем-то написаная задача в 1С, переходить на 8.2 не желают, много отчётов и т.д., надо изменить признак группировки в документе перевод, с 1С не сталкивался, программировал на других языках, поэтому с объектами, методами и свойствами знаком..вот пытаюсь по шагам пройти код и иногда возникают вопросы, которые не укладываются в мой привычный стиль програмирования(например поиск и т.д.), поэтому возникающие вопросы пытаюсь решить на форуме.. Только не посылайте меня изучать 1С, и т.д., помаленьку разберусь, так как и так изучаю, и само изучение займёт не мало времени, а решить задачу надо в течении двух-трёх дней, да и на курсах по честному говоря, за 6-14 часов что могут дать?, общее представление, которое по-моему у меня и так есть...:)
  11. VIPOS
    Offline

    VIPOS Опытный в 1С

    Регистрация:
    12 сен 2012
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    29
    подробней задачу опишите!
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    выражайтесь яснее
  13. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Всё таки немного не понятно по этой функции НайтиПоНаименованию("перевед",0,0)
    В данном случае надо найти есть такая группа или нет, т.е. поиск по родителям (есть такой родитель(группа) или нет, не знаю есть такая функция или нет), в данном случае вроде как поиск по всей таблице... я посмотрел этот dbf-ник, там нет названия групп, а если наименование группы совпадает с каким-нибудь наименованием в таблице, то условие уже будет неверно?
    Род.НайтиПоНаименованию("перевед",0,0);
    Если (Род.Выбран() = 0) Тогда
    Конечно мне было легче, если бы в хэлпе писали не замысловато. а проще, например НайтиПоНаименованию, при найденом значении указатель записи встаёт на первую найденную запись, при выбран(), это значит found()=.T. и т.д.

    Очень не хватает командного окна в таком интерпретаторе, чтоб можно было ввести команду и увидеть результат... может и есть, просто я не знаю :-((
    Почему то хелпы отличаются(у товарища выше и мой), это зависит от релиза или нет, а то сделаю всё под 25 релиз, а в 27 не пойдёт..., может язык поддерживает эти параметры, а просто в хелпе наверное не описаны...
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Очень похоже что вы владеете языками более низкого уровня чем 1с, поэтому подход несколько иной.
    Давайте так: вы описываете, какая перед вами стоит задача, а я в свою очередь выкладываю алгоритм с подробными комментариями. Не исключено что придется задать еще наводящие вопросы по структуре БД
  15. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    Код:
    Если Род.НайтиПоНаименованию("перевед",0,0)=1 Тогда
    Если Род.ЭтоГруппа()=1 Тогда
    //вот наша группа
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Может не сработать если есть одноименный элемент более высокого уровня.
  17. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    может (метод не очень удачный), поэтому нужно следить чтобы с таким же наименованием ничего не создавали
    я предпочитаю запросы с проверкой по нескольким реквизитам или использовать точное совпадение
  18. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Может стоит дождаться автора темы, а не предполагать?
  19. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    спасибо

Поделиться этой страницей