Имя: Пароль:
1C
 
8.2 ПоНаименованию, притаскивает то что первым попадется.
0 bizon2008
 
30.03.15
14:12
Привет народ. Значится в справочнике есть две записи, 91-РМЦ и 91-АДМ. Ищу я 91-АДМ, но притаскивает гад 91-РМЦ. То что притаскивает типа выше, она была раньше и код у нее меньше.
Это чего такое?
Ищу то вроде правильно.
НайтиПоНаименованию("91-АДМ",Истина);
1 butterbean
 
30.03.15
14:13
запрос
2 bizon2008
 
30.03.15
14:15
(1)Это как?
3 butterbean
 
30.03.15
14:16
(2) ну попробуй запросом искать, а не НайтиПоНаименованию()
4 Поpyчик-4
 
30.03.15
14:17
Использовать запрос не предлагали?
5 ДенисЧ
 
30.03.15
14:17
(2) Где-то черепашка ползает.
не может она найти при таком вызове что-то отличное от 91-АДМ.
Базу чини
6 bizon2008
 
30.03.15
14:23
(3)(4) Там некуда его всунуть.
(5)Ага, я эти значения тока ввел.
7 bizon2008
 
30.03.15
14:33
ау
8 ДенисЧ
 
30.03.15
14:34
Периндексируй базу
9 bizon2008
 
30.03.15
14:36
Она скульная.
10 шаэс
 
30.03.15
14:36
(6) показывайте что ли код уже. весь.
11 ДенисЧ
 
30.03.15
14:37
(9) Тогда снимай панцирь и гони остальных двух черепашек подальше.
12 bizon2008
 
30.03.15
14:41
Весь большой. Я вам кусочек.
Только громко не смеяться.

КодПодразделения = СокрЛП(ВыбКодПодразделения);
        Если флАренда = "А" Тогда
            Если СчетСтарый = "23.0.3" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("25-А-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "83.2" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("26-А-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "83.3" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("26-А-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "91" Тогда
                Если флПроизводство = "ПР" Тогда
                    Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("20-А-"+КодПодразделения,Истина);
                Иначе
                    Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("25-А-"+КодПодразделения,Истина);
                КонецЕсли;
            КонецЕсли;
            Если СчетСтарый = "92" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("26-А-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "93" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("44-А-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "94.9" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("91-А-"+КодПодразделения,Истина);
            КонецЕсли;
        КонецЕсли;
        Если флАренда = "К" Тогда
            Если СчетСтарый = "23.0.3" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("25-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "83.2" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("26-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "83.3" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("26-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "91" Тогда
                Если флПроизводство = "ПР" Тогда
                    Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("20-"+КодПодразделения,Истина);
                Иначе
                    Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("25-"+КодПодразделения,Истина);
                КонецЕсли;    
            КонецЕсли;
            Если СчетСтарый = "92" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("26-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "93" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("44-"+КодПодразделения,Истина);
            КонецЕсли;
            Если СчетСтарый = "94.9" Тогда
                Способ = спрСпособыОтраженияАмортизации.НайтиПоНаименованию("91-"+КодПодразделения,Истина);
            КонецЕсли;
            
        КонецЕсли;
        
        Если Способ.Пустая() Тогда
            Сообщить("Не найдено СчетСтарый - " + СчетСтарый + "флАренда - " + флАренда);
            Продолжить;
        КонецЕсли;
13 bizon2008
 
30.03.15
14:41
(11) Переведи.
14 Гёдза
 
30.03.15
14:53
Способ = НайтиСпособ("25-А-"+КодПодразделения);

И функцию создай
15 Гёдза
 
30.03.15
14:54
А еще лучше НайтиСпособ(Счет, Подразделение, флАренда)
16 D_E_S_131
 
30.03.15
15:02
В (8) и (11) уже все сказано.
17 bizon2008
 
30.03.15
15:38
(14) (15) Это на один раз.
(16)База скульная. Какая нафуй тама переиндексация однако.
18 Масянька
 
30.03.15
15:52
(17) " И снова супербизоны В миражах Аризоны" (С)

PS Извини, вырвалось :)
19 bizon2008
 
30.03.15
16:05
(18) За ап сгодится.
20 bizon2008
 
30.03.15
16:13
Прогнал полное ТИИ. Все так же. Теже яйки вид сбоку.
21 Ненавижу 1С
 
гуру
30.03.15
16:23
ты код с наименованием точно не путаешь?
22 bizon2008
 
30.03.15
16:27
(21)Точно.
23 Defender aka LINN
 
30.03.15
16:53
(17) В SQL ВНЕЗАПНО тоже есть индексы, прикинь?
(12) Если находится 91-РМЦ, то и ищешь ты 91-РМЦ и никак иначе. Врубай отладчик на полную мощь.
24 D_E_S_131
 
30.03.15
16:54
Что бы развеять сомнения дай скрин с табло, в котором выведено

Справочники.СпособыОтраженияАмортизации.НайтиПоНаименованию("91-АДМ",Истина)


P.S. Только смотри не фотошопь!
25 hhhh
 
30.03.15
17:00
спрСпособыОтраженияАмортизации.НайтиПоНаименованию("25-А-"+КодПодразделения

код подразделения проверь
26 bizon2008
 
30.03.15
17:50
(23) Есть конечно. ТИИ прогнал. Еще чего прогнать.
(23)Ты не поверишь, ищу именно 91-АДМ, я тама явно указал. (24) Ок. Завтра попробую. Щас по основному профилю надо поработать.
(25) Да пофигу я уже и
спрСпособыОтраженияАмортизации.НайтиПоНаименованию("25-А-АДМ") прописал.
27 шаэс
 
30.03.15
17:58
(26) так может обработка ничего не находит?
28 bizon2008
 
30.03.15
18:11
(27) У мну проверка на эту тему прикручено.
Если Способ.Пустая() Тогда
            Сообщить("Не найдено СчетСтарый - " + СчетСтарый + "флАренда - " + флАренда);
            Продолжить;
        КонецЕсли;
29 bizon2008
 
30.03.15
18:12
Опа, а походу Продолжить; тут лишнее.
30 D_E_S_131
 
30.03.15
18:16
(29) Лишнее или нет зависит от того, что происходит дальше.
А скриншотик все же было бы интересно увидеть...
31 bizon2008
 
30.03.15
18:19
Если Способ.Пустая() Тогда
            Сообщить("Не найдено СчетСтарый - " + СчетСтарый + "флАренда - " + флАренда);
            Продолжить;
        КонецЕсли;
                
        НоваяСтрока.СпособОтраженияРасходовПоАмортизации = Способ;
        НоваяСтрока.СпособОтраженияРасходовПоАмортизацииБУ = Способ;
        НоваяСтрока.СпособОтраженияРасходовПоАмортизацииНУ = Способ;
32 bizon2008
 
30.03.15
18:20
(30)Будет. Щас посты обойду.
33 bizon2008
 
30.03.15
20:21
Фигня какая однако.
http://s010.radikal.ru/i311/1503/27/aa18b80548ad.jpg
34 ДенисЧ
 
30.03.15
20:24
(33) ; убери из табло
35 Sensodin
 
30.03.15
20:27
продам СП, недорого

СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
НайтиПоНаименованию (FindByDescription)
Синтаксис:

НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>)
Параметры:

<Наименование> (обязательный)

Тип: Строка.
Строка, содержащая искомое наименование.
<ТочноеСоответствие> (необязательный)

Тип: Булево.
Определяет режим поиска по полному соответствию.
Поиск будет успешным, если строка поиска: в случае значения параметра Ложь - будет соответствовать левой части наименования; в случае значения параметра Истина - будет полностью совпадать с наименованием (за исключением "хвостовых" пробелов в наименовании).
36 bizon2008
 
30.03.15
20:36
(34) Таже фигня. По отложим. На ноуте дико неудобно. Завтра с утра переделаю.
(35) Ты не умничай, ты мне пальцем покажи.
37 Dmitrii
 
гуру
30.03.15
20:41
(28) > У мну проверка на эту тему прикручено.

А в начале или в конце цикла (если это безобразие в цикле крутиться) переменная "Способ" обнуляется (приводится к пустой ссылке)? А то может у тебя значение Способ не определяется, но остаётся непустым после предыдущей итерации цикла?
38 Sensodin
 
30.03.15
20:46
(36)  так находит НайтиПоНаименованию(91-АДМ, Истина) ?
39 bizon2008
 
30.03.15
20:54
(37) Оно так конечно но тама при старте КодПодразделения АДМ, коду РМЦ тупо неоткуда взяться.
(38)Два раза находит 91-АДМ, два раза находит 91-РМЦ.
40 ДенисЧ
 
30.03.15
20:54
(38) "Преобразование к числу не может быть выполнено!
41 bizon2008
 
30.03.15
20:58
Все парни, перекур до завтра. А то мне щас шею мылить будут.
42 Sensodin
 
30.03.15
21:25
(39) ну тогда хз
43 masenshi
 
31.03.15
05:07
(38) (40)
НайтиПоНаименованию(91-АДМ, Истина)
"91-АДМ" кавычки забыл
44 masenshi
 
31.03.15
05:08
(39)
Отладчиком проверял?
45 bizon2008
 
31.03.15
08:38
Спасибо народ. Дело было не в бобине. Контузии видать не прошли бесследно однако.
Менял один документ, а записывал другой.
Закон Брукера: Даже маленькая практика стоит большой теории.