|
Не находит элемент справочника по коду | ☑ | ||
---|---|---|---|---|
0
21stas
08.07.16
✎
09:48
|
ИнвНомерЭлемент = Справочники.ИнвентарныеНомераОС.НайтиПоКоду(ИнвНомер,,,);
Если ИнвНомерЭлемент = Справочники.ИнвентарныеНомераОС.ПустаяСсылка() Тогда Если ЗначениеЗаполнено(ИнвНомер) Тогда НовыйИнвНомер = Справочники.ИнвентарныеНомераОС.СоздатьЭлемент(); НовыйИнвНомер.ОС = ТекСтрокаОсновныеСредства.ОС; НовыйИнвНомер.Владелец = ТекУчреждение; НовыйИнвНомер.Код = СокрЛП(ИнвНомер); Попытка НовыйИнвНомер.Записать(); Исключение Сообщить("Ошибка при записи инв.номера"+НовыйИнвНомер.Код); КонецПопытки; Не находит инвентарный номер по коду (хотя он есть), при этом записать не может (так как с таким кодом уже есть). Выглядит инвентарный номер так: "166666 " Тестировал и в конфигураторе, и chdbfl - не помогло. Что с ним? |
|||
1
Nuobu
08.07.16
✎
09:49
|
СокрЛП
|
|||
2
21stas
08.07.16
✎
10:00
|
Оно так и было, но на всякий случай перепроверил - так тоже не работает:
ИнвНомерЭлемент = Справочники.ИнвентарныеНомераОС.НайтиПоКоду(ИнвНомер,,,); Если ИнвНомерЭлемент = Справочники.ИнвентарныеНомераОС.ПустаяСсылка() Тогда Если ЗначениеЗаполнено(ИнвНомер) Тогда НовыйИнвНомер = Справочники.ИнвентарныеНомераОС.СоздатьЭлемент(); НовыйИнвНомер.ОС = ТекСтрокаОсновныеСредства.ОС; НовыйИнвНомер.Владелец = ТекУчреждение; НовыйИнвНомер.Код = ИнвНомер; Попытка НовыйИнвНомер.Записать(); Исключение Сообщить("Ошибка при записи инв.номера"+НовыйИнвНомер.Код); КонецПопытки; |
|||
3
21stas
08.07.16
✎
10:01
|
БГУ 1
Уникальность справочника - в пределах подчинения владельцу |
|||
4
Euguln
08.07.16
✎
10:05
|
(3) А в синтаксис помощнике почитать описание метода НайтиПоКоду не судьба?
|
|||
5
Зая Бусечка
08.07.16
✎
10:06
|
Выглядит инвентарный номер так: "166666 "
Как бы очевидна причина, не? |
|||
6
Nuobu
08.07.16
✎
10:07
|
(2) Оба раза пропиши СокрЛП.
|
|||
7
HardBall
08.07.16
✎
10:09
|
Тип кода какой? Строка,число?
|
|||
8
21stas
08.07.16
✎
10:15
|
Тип кода - строка
|
|||
9
VladZ
08.07.16
✎
10:17
|
(0) Тут все дело в "666". Это число дьявола. Пока не изменишь цифры - проблему не решишь. Аминь!
|
|||
10
Jonny_Khomich
08.07.16
✎
10:20
|
(9) админь
|
|||
11
21stas
08.07.16
✎
10:49
|
(6) С СокрЛП() тоже не прокатывает:
ИнвНомер=СокрЛП(ИнвНомер); ИнвНомерЭлемент = Справочники.ИнвентарныеНомераОС.НайтиПоКоду(ИнвНомер,,,); Если ИнвНомерЭлемент = Справочники.ИнвентарныеНомераОС.ПустаяСсылка() Тогда Если ЗначениеЗаполнено(ИнвНомер) Тогда НовыйИнвНомер = Справочники.ИнвентарныеНомераОС.СоздатьЭлемент(); НовыйИнвНомер.ОС = ТекСтрокаОсновныеСредства.ОС; НовыйИнвНомер.Владелец = ТекУчреждение; НовыйИнвНомер.Код = ИнвНомер; Попытка НовыйИнвНомер.Записать(); Исключение Сообщить("Ошибка при записи инв.номера"+НовыйИнвНомер.Код); КонецПопытки; |
|||
12
Jonny_Khomich
08.07.16
✎
10:50
|
(11) значит не в том реквизите ищешь
|
|||
13
Lexey_
08.07.16
✎
10:52
|
(11) про отладчик слышал что-нибудь?
|
|||
14
Azverin
08.07.16
✎
10:53
|
жаль сегодня не пятница 13...
|
|||
15
ВРедная
08.07.16
✎
11:00
|
(11) как у тебя заполняется ИнвНмер?
|
|||
16
ВРедная
08.07.16
✎
11:02
|
+(15) и какой у него тип - строка или число?
|
|||
17
PLUT
08.07.16
✎
11:09
|
(0) кури ПолучитьСсылку()
|
|||
18
21stas
08.07.16
✎
11:52
|
(17) Курил. Не понял, как это может помочь
|
|||
19
21stas
08.07.16
✎
11:54
|
(18) ПолучитьСсылку() может мне дать ссылку по ID. Но где взять ID?
|
|||
20
21stas
08.07.16
✎
12:45
|
(13) Конечно, я начинаю с отладчика, а не с вовлечения сообщества. Но отладчик ничего не дал.
|
|||
21
vmv
08.07.16
✎
12:48
|
возможно инвентарный номер это реквизит элемента
т.е. код имеет другое значение |
|||
22
21stas
08.07.16
✎
12:59
|
(21) Посмотрел форму списка - используется именно код, то есть уже есть элемент с таким кодом. Но он не находится.
И, так как он уже есть, новый элемент не записывается. |
|||
23
catena
08.07.16
✎
12:59
|
(20)Покажи значение ИнвНомер в отладчике после строки поиска.
|
|||
24
1dvd
08.07.16
✎
13:03
|
ИнвНомерЭлемент = Справочники.ИнвентарныеНомераОС.НайтиПоКоду(СокрЛП(ИнвНомер),,,);
|
|||
25
21stas
08.07.16
✎
13:06
|
||||
26
21stas
08.07.16
✎
13:07
|
(24) Пробовал, например (11)
|
|||
27
catena
08.07.16
✎
13:07
|
(25)Ну и что ты врал, что пробелы убирал?
|
|||
28
Lexey_
08.07.16
✎
13:08
|
(26) сравнивал с тем, что в базе есть? количество пробелов разное, поди?
|
|||
29
21stas
08.07.16
✎
13:08
|
(27) Убирал, потом возвращал.
Давай снова уберу. |
|||
30
catena
08.07.16
✎
13:09
|
+(25)И в исключение допиши Сообщить(ОписаниеОшибки())
|
|||
31
21stas
08.07.16
✎
13:09
|
<перерыв>
|
|||
32
Lexey_
08.07.16
✎
13:10
|
+(28) если так, то запросом ищи ПОДОБНО
|
|||
33
1dvd
08.07.16
✎
13:25
|
(26) Это совсем не то. Одно дело отрезать пробелы и получить уже обрезанную строку. Другое дело - пытаться обрезать строку и пихнуть её в элемент формы фиксированной длины, где она тут же дополняется пробелами
|
|||
34
VladZ
08.07.16
✎
13:31
|
Шайтан-арба.... Убери пробелы в коде элемента.
|
|||
35
HardBall
08.07.16
✎
15:00
|
(33) У элементов справочника убери пробелы в коде.
|
|||
36
polosov
08.07.16
✎
15:08
|
Бывает некоторые наркоманы преобразовывают число в строку и не учитывают особенность преобразования 1Ской числа в строку.
Например Строка(1000) = "1 000" Не эта ли проблема? |
|||
37
21stas
10.07.16
✎
13:43
|
Помогло (30) - добавил Сообщить(ОписаниеОшибки()) - и понял, что ошибка генерируется в модуле менеджера справочника. Там в модуле справочника и была разгадка - если у ОС не групповой учёт, то второй инвентарный номер добавлять не даёт.
А сообщение об ошибке в модуле менеджера справочника было закомментировано (уж не знаю, кем и зачем). Всем спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |