Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Глюк. у кого - не знаю. :-(

Глюк. у кого - не знаю. :-(
Я
   Shalun
 
23.07.20 - 14:36
Ребят, всем привет! Может кто сталкивался с такой херней!
Для полного понимания приведу код:

Функция ПолучитьЭлемент(Значение)
     Код = "00-"+Значение;
     Элемент = Справочники.номенклатура.найтиПоКоду(КОД, Истина);
     Если ЗначениеЗаполнено(Элемент) Тогда
          Возврат Элемент;
     Иначе
          Элемент = Справочники.Номенклатура.СоздатьОбъект();
          Элемент.Код = Код;
          Элемент.Записать();
     КонецЕсли;
     Возврат Элемент.Ссылка;
КонецФункции

Как видно, функция проверяет наличии в справочнике "Номенклатура" элемента с Каким либо кодом и возвращает ссылку на объект. Если элемент с данным кодом не задан, то создается новый элемент с требуемым кодом.
Вроде все просто и понятно но вот беда...  Выборка не находит элемента, а когда записываем новый элемент - ругается что такой элемент уже есть. :-(Значение Код идентично и по типу, и по длине и по значению. собственно это видно из кода.
Вот и не пойму, я че то накосячил - или программа глючит? Платформа 8.3.17.1549
   trad
 
1 - 23.07.20 - 14:48
(0) ошибка тут -> , Истина);
   trad
 
2 - 23.07.20 - 14:51
Ты ищешь по полному коду 00-1234 и не находишь
А новый создать не можешь потому, что где то есть элемент с полным кодом 000001/000002/00-1234
   Fragster
 
3 - 23.07.20 - 14:52
СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>)
НайтиПоКоду (FindByCode)
Синтаксис:
НайтиПоКоду(<Код>, <ПоискПоПолномуКоду>, <Родитель>, <Владелец>)
Параметры:
<Код> (обязательный)
Тип: Число, Строка.
Искомый код.
Строка или число в зависимости от настроек справочника в конфигураторе.
<ПоискПоПолномуКоду> (необязательный)
Тип: Булево.
Определяет режим поиска по полному коду. Истина - искомый код следует задавать в виде строки, состоящей из последовательности кодов по уровням справочника, разделенных символом "/".
Значение по умолчанию: Ложь.
<Родитель> (необязательный)
Тип: СправочникСсылка.<Имя справочника>. 
Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
<Владелец> (необязательный)
Тип: СправочникСсылка.<Имя справочника>.
Владелец, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>, Неопределено.
Если не существует ни одного элемента с требуемым кодом, то будет возвращена пустая ссылка.
Если для справочника код не задан (длина = 0), то будет возвращено Неопределено.
Описание:
Осуществляет поиск элемента по его коду.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер).
Пример:
СтрокаКода = "840";
Валюты = Справочники.Валюты;
НайденнаяСсылка = Валюты.НайтиПоКоду(СтрокаКода);
Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда
    Сообщить("Валюты """ + СтрокаКода + """ еще нет");
КонецЕсли;
Использование в версии:
Доступен, начиная с версии 8.0.
     Методическая информация
   Fragster
 
4 - 23.07.20 - 14:53
Определяет режим поиска по полному коду. Истина - искомый код следует задавать в виде строки, состоящей из последовательности кодов по уровням справочника, разделенных символом "/".
   Shalun
 
5 - 23.07.20 - 15:02
Да, мне нужно по точному совпадению искать, по этому Истина. Т.к может быть 00-123456 а может быть 01-123456.
Тип значения строка, 9 символов.
Вот только не понял на счет полного кода... Т.е. если элемент с кодом 00-123456 является подчиненным элементу 02-123456 то код нужно писать как 02-123456/00-123456? И так по всей иерархии?
   lodger
 
6 - 23.07.20 - 15:15
(5) так это не ПоискПоНаименованию. это ПоискПоКоду. у них разные смыслы для флажка.
   Shalun
 
7 - 23.07.20 - 15:53
Ясно. Спасибо, просветили!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.