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