НайтиПоРеквизиту() ругается Неверное имя реквизита! ПОМОГИТЕ плз!

9. udaffkaa 19.01.11 15:20 Сейчас в теме
Подскажите почему всё же не работает НайтиПоРеквизиту, пожалуйста.

спрУслНомер = СоздатьОбъект("Справочник.УсловныйНомер");

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

В свойствах реквизита "Номер" стоят галочки напротив: Неотрицательный и Сортировка. Тип реквизита число 15,0.
В центральной базе (УРБД) всё работает нормально. В периферийной базе при запуске ругается на "Неверное имя реквизита!". Настройки реквизита проверил - в обоих базах одинаково.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. cool.vlad4 2 19.01.11 16:03 Сейчас в теме
(9)НайтиПоНомеру не работает? Или 7.7 настолько отличается от всех (не знаю просто не работал) - и укажите период в пределах которого искать. В крайнем случае можно открыть режим отладки и найти книжку по 7.7
11. udaffkaa 19.01.11 17:55 Сейчас в теме
(10)Если НайтиПоНомеру имеете ввиду НайтиПоКоду(,) - то конечно не работает т.к. необходимо искать по числовому реквизиту с названием "Номер", а не по коду элемента справочника.
1С 7.7 стандартная релиз 7.70.027. Единственная фитча это то, что 1Ска стоит на Windows server 2008R1 x64.
Режим отладки ничего в данном случае не показывает.
Книжки по 1С 7,7 имеется и пользую. К сожалению не являюсь профи в 1С, поэтому и прошу совета. Удивил тот факт что центральная база запускается без проблем, а вот периферийная выдаёт ошибку при запуске.
16. Ёпрст 1067 25.01.11 13:00 Сейчас в теме
(9)

спрУслНомер = СоздатьОбъект("Справочник.УсловныйНомер");
Если спрУслНомер.НайтиПоРеквизиту("Номер",услНомер,1)=1 Тогда
    спрУслНомер.Дата=ТекущаяДата();
Иначе
    спрУслНомер.Новый();
    спрУслНомер.Номер = услНомер;
    спрУслНомер.Дата = ТекущаяДата();
КонецЕсли; 
спрУслНомер.Записать();
Показать
ale6806; informatikk; +2 Ответить
12. cool.vlad4 2 19.01.11 17:59 Сейчас в теме
:D Тьфу ты заработался...через отладчик неужели ничего...
13. udaffkaa 19.01.11 18:06 Сейчас в теме
(12)периферийная выдаёт ошибку при запуске - Неверное имя реквизита в спрУслНомер.НайтиПоРеквизиту("Номер",услНомер,1). Чем тут может помочь отладчик если при запуске 1Ска уже выдаёт ошибку?
14. udaffkaa 19.01.11 19:19 Сейчас в теме
Переписал код:

спрУслНомер.НайтиПоРеквизиту("Номер",услНомер,1);

Если спрУслНомер.Выбран() > 0 Тогда
спрУслНомер.ТекущийЭлемент();
спрУслНомер.Дата=ТекущаяДата();
спрУслНомер.Записать();
Иначе
спрУслНомер.Новый();
спрУслНомер.Номер = услНомер;
спрУслНомер.Дата = ТекущаяДата();
спрУслНомер.Записать();
КонецЕсли;

Центральная база запускает и работает без проблем, а в периферийной ошибка при запуске 1С:

спрУслНомер.НайтиПоРеквизиту("Номер",услНомер,1);
{Глобальный модуль(8711)}: Значение не представляет агрегатный объект (НайтиПоРеквизиту)

Подскажите от куда ноги могут расти у этой ошибки.
15. Time dont wait 25.01.11 12:26 Сейчас в теме
Релизы одинаковые стоят везде ?
Может "номер" выступает как ключевое слово ?
17. udaffkaa 31.01.11 13:45 Сейчас в теме
Спасибо за помощь, сам не досмотрел.

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

- используется в процедуре, а в другой процедуре есть этот же кусок но без спрУслНомер = СоздатьОбъект("Справочник.УсловныйНомер");.
Путаницу вызывало, то что первая процедура стартует приЗапускеСистемы и по определённым условиям вызывает вторую процедуру или выполняет код с СоздатьОбъект("Справочник.УсловныйНомер"), а вторая тоже по определённым условиям вызывает первую, но и сама содержит этот код, но без СоздатьОбъект("Справочник.УсловныйНомер").
Условия завязаны на таймер времени и код процессора через Dll. Т.к. всё это крутится на Win2008R2 x64 + 24 ядра (12 core with Hyper-threading), то иногда выполняется код где спрУслНомер не создаётся как обьект и соответственно НайтиПоРеквизиту не работает.
18. udaffkaa 12.11.11 02:27 Сейчас в теме
Фитча заключалась в привязке DLL к процессору. При переносе сервера в виртуальную среду всё решилось т.к. (как оказывается) для гостевой ситемы передаётся 1 CPU, но количеством потоков равным установленным в среде визуализации CPU (Применимо для Oracle VirtualBox 4)
19. Anthon 231 07.12.11 09:42 Сейчас в теме
Жуть... 11 месяцев искал? :)
20. adnvl 12 31.07.09 05:32 Сейчас в теме
Вот код. Что не нравится непойму выдает ошибку : Неверное имя реквизита!
Реквизит МОЛ в справочнике местахранения есть?

Спр = СоздатьОБъект("Справочник.МестаХранения");
Если Спр.НайтиПоРеквизиту("МОЛ",Строка(ОсновноеСредство.МОЛ.Получить(ДатаДок) ),1) = 1 Тогда
Операция.Кредит.Субконто (2,Спр.ТекущийЭлемент());
Операция.Кредит.Субконто (3,ОсновноеСредство.МОЛ.Получить(ДатаДок));
КонецЕсли;
Заранее благодарен!
21. adnvl 12 31.07.09 05:38 Сейчас в теме
Все разобрался тема закрыта. Всем спасибо!!!!!!!!
22. jmw 61 31.07.09 05:39 Сейчас в теме
Правильно ругется!
ЖКК читать нужно... или хотя-бы в Синтакс-Помошнике до конца дочитывать:

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

Смотри строку, которую я выделил жирным+наклоном+подчёркиванием!
alul; fdrvliv; ketr; +3 Ответить
23. adnvl 12 31.07.09 05:42 Сейчас в теме
(3)
Jurii пишет:
ЖКК читать нужно... или хотя-бы в Синтакс-Помошнике до конца дочитывать:

Вот в этом то и дело Перечитал 5 раз а строчку заметил на 6.... Слепой стал наверно :-(
24. SpideRus 02.08.09 09:07 Сейчас в теме
Dimon09,
Исправленный код приведи.
25. jmw 61 03.08.09 13:42 Сейчас в теме
(5) Зачем код приводить?
В свойстве реквизита галочку "Сортировка" и всё будет работать.
26. SpideRus 05.08.09 05:57 Сейчас в теме
Jurii пишет:
В свойстве реквизита галочку "Сортировка" и всё будет работать.


Для периодических реквизитов разве прокатывает?
27. jmw 61 05.08.09 08:36 Сейчас в теме
Ну с другой стороны этих МОЛ-ов не так уж и много, следовательно их можно заранее в ТЗ или СЗ запихать!
28. SPS_Lipetsk 23.07.20 11:09 Сейчас в теме
Для СТАНДАРТНЫХ РЕКВИЗИТОВ это не работает
например для :
строка.ХарактеристикаНоменклатуры = Справочники.ХарактеристикиНоменклатуры.НайтиПоРеквизиту("Владелец",номенклатура);
А реквизит "Владелец" в различных справочниках нужная вещь! для различных выборов.
Поэтому в этом случае решать только через запрос - параметр
"Владелец" = номенклатура
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот