|
|||
alexsandrinia
26.05.15 — 13:37 |
пытаюсь найти элемент по реквизиту, выдаёт ошибку
&НаСервере что я не так делаю? как решить проблему? |
||
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: НайтиПоРеквизиту — неверно указан реквизит ?
А вообще: |
||
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С)))))))))) Да, ошибка в том, что этот реквизит и был неограниченной длины, который поэтому и индексировать нельзя. Снял галку «Неограниченная длина» и оставил только: Действительно ссылку возвращает! ВСЕМ СПАСИБО!!! Хорошего дня!)
ты длину там смотри выстави нормальную, а то порежет коды существующие
Только писать начал а ты сам разобрался
— спасибо, уже учёл!) — спасибо всё равно!)
Тэги: 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 Тогда
Предупреждение(«Не найден сотрудник с таким паспортом!»);
- Распечатать
Оцените статью:
- 5
- 4
- 3
- 2
- 1
(0 голосов, среднее: 0 из 5)
Поделитесь с друзьями!
-
Здрасте!!!! Подскажите плиз. Что такое не пойму.
В справочнике Номенклатура есть Реквизит НаименованиеПолное, я по нему пытаюсь вытащить просто Наименование. След функцией:
Справочники.Номенклатура.НайтиПоРеквизиту(«НаименованиеПолное»,СокрЛП(Параметр)).Наименование;
Выдает ошибку:
Отчет.ГодовойПлан.Форма.ГодовойПлан(42)}: Ошибка при вызове метода контекста (НайтиПоРеквизиту): Неверно указан реквизит
Позиция = Справочники.Номенклатура.НайтиПоРеквизиту(«НаименованиеПолное»,СокрЛП(Параметр)).Наименование;
по причине:
Неверно указан реквизитПоскажите кто знает. Заранее спасибо.
-
Offline
x_under
Модераторы
Команда форума
Модератор- Регистрация:
- 25 апр 2007
- Сообщения:
- 2.576
- Симпатии:
- 16
- Баллы:
- 29
Синтаксис:
НайтиПоРеквизиту(<Имя реквизита>, <Значение реквизита>, <Родитель>, <Владелец>)
Параметры:
<Имя реквизита> (обязательный)
Тип: Строка. Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и СТРОК ПРОИЗВОЛЬНОЙ ДЛИНЫ.
А полное наименование обычно делают строкой произвольной длины. Проверь -
Спасибо помогло!!!! :unsure:
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 Модератор 3708 / 2905 / 572 Регистрация: 10.03.2011 Сообщений: 11,442 Записей в блоге: 1 |
||||
29.03.2013, 01:04 |
4 |
|||
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)}: Неверное имя реквизита!
В чем беда ? Спасибо