|   |   | 
| 
 | Не находит элемент справочника по коду | ☑ | ||
|---|---|---|---|---|
| 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) - добавил Сообщить(ОписаниеОшибки()) - и понял, что ошибка генерируется в модуле менеджера справочника. Там в модуле справочника и была разгадка - если у ОС не групповой учёт, то второй инвентарный номер добавлять не даёт. 
 А сообщение об ошибке в модуле менеджера справочника было закомментировано (уж не знаю, кем и зачем). Всем спасибо. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |