Имя: Пароль:
1C
 
Примитивный запрос, в консоле работает, в конфе выборка пустая.
0 bizon2008
 
22.10.18
13:20
Доброго.
Функция НайтиКонтрагентаПоИНН(ИНН)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Контрагенты.Ссылка КАК Контрагент
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |    Контрагенты.ИНН = &ИНН";


    Запрос.УстановитьПараметр("ИНН", ИНН);
    Результат = Запрос.Выполнить().Выбрать();
    Возврат  Результат.Контрагент;
    
КонецФункции    

Такой кусок кода.

Поставил точку остановки на
Возврат  Результат.Контрагент;
Результат - пусто, неопределенно. ИНН есть типа строка.
Копирую запрос в консоль запросов, и туда же значение ИНН.
Там все работает.
В кофе пусто.
Где затупил однако?
1 Zmich
 
22.10.18
13:21
(0). Пока Результат.Следующий()...
2 1Сергей
 
22.10.18
13:21
В параметрах проблема. Инфа концентрированная - 100%
3 bizon2008
 
22.10.18
13:28
(1) Мне первое значение надо.
(2) Дык я отладчиком смотрю. Есть тама значение.
4 Zmich
 
22.10.18
13:30
(3). Мда. Ты на выборке без Следующий() не спозиционируешься. Ну на тебе первое значение:
Если Результат.Следующий() Тогда
  Возврат Результат.Контрагент;
КонецЕсли;
5 bizon2008
 
22.10.18
13:35
(4) Ды хрен с ним, у мну в отлачике
Результат = Запрос.Выполнить().Выбрать();
здесь уже пусто.
6 RomanYS
 
22.10.18
13:37
(5) С чего ты взял?
Результат.Количество() что возвращает?
Ты первый раз запрос используешь?
7 AlexandrPetrov
 
22.10.18
13:40
(5)  Запрос.УстановитьПараметр("ИНН", ИНН);
    Результат = Запрос.Выполнить().Выбрать();
    Результат.Следующий();
    Возврат  Результат.Контрагент;
8 bizon2008
 
22.10.18
13:41
(6) Дык я поставил току остановки на последнюю строку функции.
Стал на Результат Шифт+Ф9, Вычислить выражение, а тама нету ничего.
9 1Сергей
 
22.10.18
13:41
(8) Что ты там собирался увидеть?
10 bizon2008
 
22.10.18
13:44
Ладно хрен с ним, переделал НайтиПоРеквизиту.
11 bizon2008
 
22.10.18
13:44
(9) Очевидно же, результат выполнения запроса.
12 1Сергей
 
22.10.18
13:46
(11) а не выборку? :)
13 Timon1405
 
22.10.18
14:04
(8) Запрос.Выполнить().Выгрузить()[0] в отладчике видно?
14 ЦиркУехал
 
22.10.18
14:25
Про КПП говорить или лучше не надо?
15 ЦиркУехал
 
22.10.18
14:31
с чего вообще, пришла идея изобрести велосипед ?
16 aleks_default
 
22.10.18
14:32
(15)Да все, осознал он уже
17 ЦиркУехал
 
22.10.18
14:34
(16) да чета нет походу, так как контрагенты так не ищутся.
и так НайтиПоРеквизиту тоже.
18 bizon2008
 
22.10.18
15:14
Это почему же? Все отлично работает. ИНН уникален же.
19 bizon2008
 
22.10.18
15:14
(14) Ну напугай меня.
20 Salimbek
 
22.10.18
15:23
(0) Может там ИНН с лишними пробелами?
Ну и согласен с (13) "Запрос.Выполнить().Выгрузить()[0] в отладчике видно?"
21 ZDenis
 
22.10.18
15:34
(18) ИНН уникален в налоговой, а в базе может быть куча контрагентов с одинаковым ИНН
22 Mankubus
 
22.10.18
15:37
Не хватает Следующий(), вы чего. Инфа 100%
23 dezss
 
22.10.18
15:39
рукалицо...
ответ же в (1), чего дальше тут перетирать? %)
24 bizon2008
 
22.10.18
15:58
(21) В базе тоже.
25 ЦиркУехал
 
22.10.18
15:59
(19)
да вот решение
которое давно бы следовало найти

// Определяем контрагента
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Контрагенты.Ссылка,
    |    Контрагенты.КПП
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    Контрагенты.ИНН = &ИННПоставщика";
    Запрос.УстановитьПараметр("ИННПоставщика", РеквизитыРеестра.ИННПоставщика);
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
        ТаблицаИНН = Результат.Выгрузить();
        // Поиск по ИНН и КПП
        Если СтрДлина(РеквизитыРеестра.ИННПоставщика) = 10
            И ЗначениеЗаполнено(РеквизитыРеестра.КПППоставщика) Тогда
            ТаблицаКПП = ТаблицаИНН.Скопировать(Новый Структура("КПП", РеквизитыРеестра.КПППоставщика));
            Если ТаблицаКПП.Количество() > 1 Тогда
                РеквизитыРеестра.НадписьКонтрагент = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    НСтр("ru='Найдено несколько контрагентов с ИНН %1 и КПП %2'"),
                    РеквизитыРеестра.ИННПоставщика,
                    РеквизитыРеестра.КПППоставщика);
            ИначеЕсли ТаблицаКПП.Количество() = 1 Тогда
                РеквизитыРеестра.Контрагент = ТаблицаКПП[0].Ссылка;
            КонецЕсли;
        КонецЕсли;
        // Поиск по ИНН
        Если НЕ ЗначениеЗаполнено(РеквизитыРеестра.Контрагент) Тогда
            Если ТаблицаИНН.Количество() > 1 Тогда
                РеквизитыРеестра.НадписьКонтрагент = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    НСтр("ru='Найдено несколько контрагентов с ИНН %1'"),
                    РеквизитыРеестра.ИННПоставщика);
            ИначеЕсли ТаблицаИНН.Количество() = 1 Тогда
                РеквизитыРеестра.Контрагент = ТаблицаИНН[0].Ссылка;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
26 bizon2008
 
22.10.18
15:59
(23) А вот болт.
Пусто.
27 bizon2008
 
22.10.18
15:59
(13) Нет. Пустой тоже.
28 dezss
 
22.10.18
16:02
(25) РеквизитыРеестра.НадписьКонтрагент у тебя может перезаписаться.
(26) брешешь...показывай код...
29 fenement
 
22.10.18
16:04
Используйте ПОДОБНО
30 bizon2008
 
22.10.18
16:06
(25) Да ну нафуй. Это перебор уже.
31 ЦиркУехал
 
22.10.18
16:06
(29) только не это..

(28) это не у меня а у разрабов 1с , да и это ж так ошибку вывести.
я велосипеды стараюсь не изобретать.
32 dezss
 
22.10.18
16:07
(29) забыл написать НЕ перед началом предложения?)))
33 bizon2008
 
22.10.18
16:08
(28) Весь код в (0), а рабочий я уже переделал в НайтиПо Реквизиту.
Ихмо глюк платформы. У мну тут переписанная УПП, натянутая на 8,3, странного релиза.
34 ЦиркУехал
 
22.10.18
16:08
(30) Учение 1с Верно потому что правильно. :)
где ты тут перебор увидел?
35 ЦиркУехал
 
22.10.18
16:10
(33) когда захотят 2 контрагентов с одинаковым ИНН, но с разным КПП, а такое возможно, твой код "НайтиПо Реквизиту" накроется медным тазом.
36 asady
 
22.10.18
16:11
(0) тип реквизита ИНН у тебя какой?
строка сколько символов?
37 dezss
 
22.10.18
16:12
(33) ты это серьезно или совсем не очень в запросах?
38 ЦиркУехал
 
22.10.18
16:12
(36) стандартная наверно, и она варьируется.
он этого еще не понял.
39 cons24
 
22.10.18
16:13
(18), (21) ИНН ни разу не уникален!
Сам наталкивался на такое.
Начиная с того что в разных субъектах 2 организации с одним ИНН, заканчивая 2одна закрылась, другая открылась - ИНН дали от первой".
40 ЦиркУехал
 
22.10.18
16:15
(39) в то то и оно, что в Субъектах...
и тут открывается сакральная правда о КПП.
41 fenement
 
22.10.18
16:17
(31)(32) ИНН имеет строковый тип
42 dezss
 
22.10.18
16:17
(37) + чтоб стать на первую запись, надо выполнить Следующий() у выборки.
43 bizon2008
 
22.10.18
16:17
Блин это шабашка, надо было быстро и дешево, я уже давно закобасил и ускакал. Вылезет задница, переделаю. Гарантия три месяца.
44 ЦиркУехал
 
22.10.18
16:18
(41) ииии??
45 ЦиркУехал
 
22.10.18
16:19
(43) копрокод во всей красе.
я бы постеснялся.
46 bizon2008
 
22.10.18
16:19
(37) А вот тут я не понял, чем тебе мой запрос не нравится?
47 bizon2008
 
22.10.18
16:19
(45) А что ты хочешь за 500 рублей?
48 ZDenis
 
22.10.18
16:20
(39) Сам же пишешь один закрылся, второй открылся. Т.е одновременно две с одним ИНН быть не могут (это я про налоговую), а в базе 1С что угодно
49 ЦиркУехал
 
22.10.18
16:21
(47) скопипастить код стоит 500 руб??
ух ты.
1. находим код типовой
2. Копипастим.
3. профит.
50 dezss
 
22.10.18
16:21
(46) тем, что ты его написал, но обрабатывать результат не хочешь...
51 ЦиркУехал
 
22.10.18
16:22
(48) могут с разными КПП, это не открылся закрылся, а открылся в одном месте и потом еще раз открылся в другом.
52 ZDenis
 
22.10.18
16:24
(51) Это будет одно организация с разными обособленными подразделениями
53 bizon2008
 
22.10.18
16:25
(50) Есть такое. Не получилось однако.
54 ЦиркУехал
 
22.10.18
16:25
(52) ну да, хранится то она в УПП как разные Контрагенты.
55 ZDenis
 
22.10.18
16:27
(54) я и говорю еще раз)), что в базе 1С может быть что угодно, а в налоговой он уникален
56 ЦиркУехал
 
22.10.18
16:28
(55) подозреваю что нет, так как Фокус и Спарк требуют КПП в Своем АПИ.
57 Сияющий в темноте
 
23.10.18
21:37
СокрЛП в инн уже предлагали?
И,очень внимательно посмотреть на тип строки в записи ИНН,не фиксированная ли она
58 Tahallus
 
23.10.18
21:45
(0) и это у человека опыта 11 лет. жесть