1с найти по реквизиту неверно указан реквизит

  Маркет42 - Место для твоих разработок  

Я
   alexsandrinia

26.05.15 — 13:37

пытаюсь найти элемент по реквизиту, выдаёт ошибку

&НаСервере

Функция ПолучитьНайденныйЭлемент(РегИдент)

    НайденныйЭлемент = Справочники.Номенклатура.НайтиПоРеквизиту(«Идентификатор»,РегИдент);    

    Возврат НайденныйЭлемент.Ссылка;

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

&НаСервере

Функция Загрузить()

    РегИдент = НРег(Файл.Cells(НомерСтроки,2).Value);

    ИскомыйЭлемент = ПолучитьНайденныйЭлемент(РегИдент);

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

что я не так делаю? как решить проблему?

  

Партнерская программа EFSOL Oblako

   Heckfy

1 — 26.05.15 — 13:39

Может НайтиПоНаименованию()?

   alexsandrinia

2 — 26.05.15 — 13:40

(1) уникальности не будет

   pessok

3 — 26.05.15 — 13:41

может не Value а Text?

   alexsandrinia

4 — 26.05.15 — 13:41

(3) РегИдент нормально определяет

   pessok

5 — 26.05.15 — 13:42

(4) а ошибка то какая?

   alexsandrinia

6 — 26.05.15 — 13:43

(5)

Ошибка при вызове метода контекста (НайтиПоРеквизиту)

    НайденныйЭлемент = Справочники.Номенклатура.НайтиПоРеквизиту(«Идентификатор»,РегИдент);    

по причине:

Неверно указан реквизит

   Heckfy

7 — 26.05.15 — 13:45

Замечание:

Метод можно использовать только для реквизитов с установленным признаком »Сортировка».

   Heckfy

8 — 26.05.15 — 13:45

v8: НайтиПоРеквизиту — неверно указан реквизит ?

http://forum.infostart.ru/forum9/topic10541/

А вообще:

http://yandex.ru/search/?lr=213&text=1с%20найтипореквизиту%20неверно%20указан%20реквизит

   vicof

9 — 26.05.15 — 13:45

Запросы наше все

   alexsandrinia

10 — 26.05.15 — 13:47

(9) неужели запрос выход?

   pessok

11 — 26.05.15 — 13:48

или (7)

   alexsandrinia

12 — 26.05.15 — 13:50

(11) как установить такой признак?

   pessok

13 — 26.05.15 — 13:59

вроде индексацию просто надо включить

  

Krolik Bezobraznik

14 — 26.05.15 — 14:24

Я бы запросом искал.

Быстрый старт в Python для 1С Разработчиков | 1s-to-python.ru

Добрый день! Хочу обратиться к регистру и получить из него данные: Ругается: {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма}: Ошибка при вызове метода контекста (НайтиПоРеквизиту)     НоваяЗапись.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту(«КодТовара», КодТовара).Наименование; по причине: Неверно указан реквизит Делаю все по синтакс-помощнику. Реквизит этот имеем тип «Строка» и передаю в него при поиске тоже строку. А ошибку все равно прёт. Что делаю не так?

для этого в 8.Х используются только и исключительно запросы

оваяЗапись.Номенклатура  — явно имеет не тип СТРОКА.

и пихать туда Наименование — тут что-то надо в консерватории подправить

Откуда уверенность, что у номенклатуры есть реквизит КодТовара?

Ну и для метода НайтиПоРеквизиту, нужно указывать индексируемый реквизит, если че.. коим КодТовара не является, судя по ошибке.

и — не, тут я согласен. Поправил: НО! Ошибка в том, кто ругается на реквизит, а он, именно с таким названием, у моего справочника «Номенклатура» ЕСТЬ!

Плохо поправил) Оно тебе и так ссылку найдет) а по ошибке, наверняка

— «Индексировать» для всех моих реквизитов с типом «Строка» не активен и стоит значение «Не индексировать». Получается, что обратиться через этот метод я не могу?

да вроде пофиг уже давно на индексацию хз че с реквизитом, но писать нужно просто НоваяЗапись.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту(«КодТовара», КодТовара); , а лучше запрос самому делать

может это строка неограниченной длины??

Ну, раз пофиг, значит КодТовара — строка неограниченной длины поди.. :)

делай ограниченной, это будет правильно во всех смыслах

Ну, блин, ребят вы БОГИ 1С)))))))))) Да, ошибка в том, что этот реквизит и был неограниченной длины, который поэтому и индексировать нельзя. Снял галку «Неограниченная длина» и оставил только: Действительно ссылку возвращает! ВСЕМ СПАСИБО!!! Хорошего дня!)

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

:D Только писать начал а ты сам разобрался

— спасибо, уже учёл!) — спасибо всё равно!)

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

На чтение 2 мин Просмотров 484 Опубликовано 12.01.2021

//Реквизит1, Реквизит2, Реквизит3 — реквизиты документа
//В Реквизит3 (с типом «Справочник.Контрагенты»)
//помещается значение из «Справочник.Контрагенты»
НовыйДок = СоздатьОбъект( «Документ.Платежка» );
НовыйДок . Новый ();

НовыйДок . Реквизит1 = «ЗначениеРеквизита1» ;
НовыйДок . Реквизит2 = «ЗначениеРеквизита2» ;

СпрКонтрагенты = СоздатьОбъект( «Справочник.Контрагенты» );
СпрКонтрагенты . НайтиПоРеквизиту ( «РеквизитГдеИскать» , «ТоЧтоШщется» , 1 );
Если СпрКонтрагенты . Выбран () > 0 Тогда
НовыйДок . Реквизит3 = СпрКонтрагенты . ТекущийЭлемент ();
Иначе
Сообщить( «В СпрКонтрагенты ничего не найдено» );
КонецЕсли;

НовыйДок . Записать ();
НовыйДок . Провести ();

БП 3.0 Банковские выписки были разнесены с ошибками (неправильно указаны наименование контрагента, назначение платежа). Возможно одной обработкой исправить данную ситуацию?

Для редактирования выписок открыть Банк и касса — Банк — Банковские выписки. (Рис.1,2) Выделить необходимые банковские выписки (если их несколько, они выделяются с нажатой клавишей Shift) и, кликнув правой кнопкой мыши, выбрать команду «Изменить выделенные. » (Рис.3 список выбранных элементов.рис.4 — список реквизитов для редактирования) В окне формы «Изменение выделенных элементов «Списание с расчетного счета» найти реквизит, который подлежит изменению, установить флажок и выбрать новое значение из соответствующего справочника. «Изменить реквизиты» и проверить результат изменения (рис.5).

Найти элемент справочника по значению реквизита.

НайтиПоРеквизиту( , , Ф лагГлобальногоПоиска>)

ИмяРеквизита >

Строковое выражение с наименованием реквизита.

3начение >

Значение реквизита для поиска.

ФлагГлобальногоПоиска >

Числовое выражение. Если 0, то поиск должен выполняться в пределах подчине­ния справочника, если 1, то поиск должен выполняться по всему справочнику.

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено (элемент не найден).

Метод НайтиПоРеквизиту выполняет поиск первого элемента с указанным значением заданного реквизита и позиционирует объект справочник на этом элементе.

Данный метод может использоваться только в том случае, если в конфигу­раторе при описании данного реквизита установлен признак «Сортировка» (Свойства реквизита — Дополнительные — Сортировка).

Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект .

// Позиционируем созданный объект Спр по реквизиту

Спр.НайтиПоРеквизиту(«СерияПаспорта», «XXVII-OP», 1);

Если Спр.Выбран() > 0 Тогда

Предупреждение(«Не найден сотрудник с таким паспортом!»);

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, среднее: 0 из 5)

Поделитесь с друзьями!

  1. Здрасте!!!! Подскажите плиз. Что такое не пойму.
    В справочнике Номенклатура есть Реквизит НаименованиеПолное, я по нему пытаюсь вытащить просто Наименование. След функцией:
    Справочники.Номенклатура.НайтиПоРеквизиту(«НаименованиеПолное»,СокрЛП(Параметр)).Наименование;
    Выдает ошибку:
    Отчет.ГодовойПлан.Форма.ГодовойПлан(42)}: Ошибка при вызове метода контекста (НайтиПоРеквизиту): Неверно указан реквизит
    Позиция = Справочники.Номенклатура.НайтиПоРеквизиту(«НаименованиеПолное»,СокрЛП(Параметр)).Наименование;
    по причине:
    Неверно указан реквизит

    Поскажите кто знает. Заранее спасибо.


  2. x_under

    Offline

    x_under
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    16
    Баллы:
    29

    Синтаксис:
    НайтиПоРеквизиту(<Имя реквизита>, <Значение реквизита>, <Родитель>, <Владелец>)
    Параметры:
    <Имя реквизита> (обязательный)
    Тип: Строка. Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и СТРОК ПРОИЗВОЛЬНОЙ ДЛИНЫ.
    А полное наименование обычно делают строкой произвольной длины. Проверь

  3. Спасибо помогло!!!! :unsure:


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

61 / 60 / 17

Регистрация: 17.02.2011

Сообщений: 161

1

Ошибка при вызове метода контекста

28.03.2013, 09:13. Показов 7338. Ответов 3


есть ссылка «e79ba7ae-0747-11db-9244-0011955c22cb»… как присвоить ее новому элементу справочника

Добавлено через 7 минут
вот так не получается

док = документы.РеализацияТоваровУслуг;

Ссылка=»e79ba7ae-0747-11db-9244-0011955c22cb»;
док.НайтиПоРеквизиту(«ссылка»,Ссылка);

{Форма.Форма.Форма(53)}: Ошибка при вызове метода контекста (НайтиПоРеквизиту)
док.НайтиПоРеквизиту(«ссылка»,Ссылка);
по причине:
Неверно указан реквизит



0



206 / 180 / 31

Регистрация: 24.10.2011

Сообщений: 738

28.03.2013, 12:01

2

Никак.

e79ba7ae-0747-11db-9244-0011955c22cb — внутренний идентификатор объекта.

Ссылка=»e79ba7ae-0747-11db-9244-0011955c22cb»; — не является ссылкой, это строка.
док.НайтиПоРеквизиту(«ссылка»,Ссылка); — неверная передача параметра, ждет реквизит, а ему дают строку.



1



2954 / 1766 / 82

Регистрация: 03.11.2011

Сообщений: 8,280

28.03.2013, 16:39

3

погуглите по синтпому ПолучитьСсылку(), ЗначениеВСтроку(), получить уник.идент.



1



Dethmontt

Модератор

Эксперт 1С

3708 / 2905 / 572

Регистрация: 10.03.2011

Сообщений: 11,442

Записей в блоге: 1

29.03.2013, 01:04

4

1C
1
2
УИД = Новый УникальныйИдентификатор("e79ba7ae-0747-11db-9244-0011955c22cb");
ИскомыйСправочник = Справочники.МойСправочник.Получитьссылку(УИД);



0



Показывать по
10
20
40
сообщений

Новая тема

Ответить

MaxTi

Дата регистрации: 10.02.2010
Сообщений: 52

«Комплексная 7.7<br>Делаю поиск по реквизиту в справочнике номенклатура, реквизит Артикул.<br>Пишет «Неверное имя реквизита»<br><br>Тов=СоздатьОбъект(«Справочник.Номенклатура»); <br>Если Тов.НайтиПоРеквизиту(Тов.Артикул,Запрос2.Fields(«SupplierPN»).Value,1)=1 Тогда<br><br><br><br>Запрос2.Fields(«SupplierPN»).Value — с другой базы возвращает текст<br>как искать по артикулу?»

IceBeerg

Дата регистрации: 06.10.2004
Сообщений: 803

«> Если Тов.НайтиПоРеквизиту(Тов.Артикул,Запрос2.Fields(«SupplierPN»).Value,1)=1 Тогда<br>Пробуем поменять на<br>Если Тов.НайтиПоРеквизиту(«Артикул»,Запрос2.Fields(«SupplierPN»).Value,1)=1 Тогда<br><br>См.:<br>НайтиПоРеквизиту(<?>,,);<br>Синтаксис:<br>НайтиПоРеквизиту(<ИмяРеквизита>,<Значение>,<ФлагГлобальногоПоиска>)<br>Назначение:<br>Найти элемент справочника по значению реквизита.<br>Возвращает: 1 — если действие выполнено;<br> 0 — если действие не выполнено (элемент не найден).<br>Параметры: <br>> <ИмяРеквизита> — -> строка с наименованием реквизита; <-<br><Значение> — значение реквизита для поиска;<br><ФлагГлобальногоПоиска> — флаг поиска:<br> 0 — поиск выполняется в пределах подчинения справочника,<br> 1 — поиск выполняется по всему справочнику.<br>Замечание:<br>Метод можно использовать только для реквизитов с установленным признаком »Сортировка».<br>Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.»

zak555 (398843952)

Дата регистрации: 27.03.2008
Сообщений: 4656

«Зн = Запрос2.Fields(«SupplierPN»).Value;<br>Если Тов.НайтиПоРеквизиту(«Артикул»,ЗН,1)=1 Тогда»

MaxTi

Дата регистрации: 10.02.2010
Сообщений: 52

Спасибо проблема решена поставил имя реквизита Артикул в кавычки и все заработало

Показывать по
10
20
40
сообщений

Опять вопрос от профана в этом деле. Есть справочник сотрудники с реквизитами ФИО, ДатаПриема, Должность
И внешняя обработка:

Процедура Сформировать()
     //создаем объект типа справочник
Сотр=СоздатьОбъект(«Справочник.Сотрудники»);
//позиционируем созданный объект Сотр по известному наименованию

Сотр.НайтиПоРеквизиту(«ФИО»,»Иванов»,1);

Если Сотр.Выбран()=1

Тогда
//если сотрудник найден отобразим его должность
Предупреждение («Должность:»+Сотр.Должность);
Иначе
Предупреждение(«Иванов не найден»+»!!!»);

КонецЕсли;

//отсоединяем объект
Сотр=0;
КонецПроцедуры

При выполнении выдает следующую ошибку:

Сотр.НайтиПоРеквизиту(«ФИО»,»Иванов»,1);
{C:USERSДОЛЖНОСТЬСОТРУДНИКА.ERT(9)}: Неверное имя реквизита!

В чем беда  Здесь была моя ладья... ? Спасибо

Понравилась статья? Поделить с друзьями:
  • 1с обработка выбора дополнительного реквизита
  • 1с обработка изменение реквизитов справочника
  • 1с обращение к реквизиту справочника по имени
  • 1с ограничение доступа к данным по реквизитам
  • 1с отбор в форме по дополнительному реквизиту