Имя: Пароль:
1C
1С v8
v8: Ошибка при выводе данных из запроса
,
0 aydarik
 
25.09.13
12:06
Запрос = Новый Запрос( "ВЫБРАТЬ
                           |    ФИОФизЛиц.Фамилия,
                           |    ФИОФизЛиц.Имя,
                           |    ФИОФизЛиц.Отчество
                           |ИЗ
                           |    РегистрСведений.ФИОФизЛиц КАК ФИОФизЛиц
                           |ГДЕ
                           |    ФИОФизЛиц.ФизЛицо.Код = &Код");
            
    Запрос.Параметры.Вставить("Код", ТабельныйНомер);    
    Результат = Запрос.Выполнить();
    НаборКолонок = Результат.Колонки;
    Выборка= Результат.Выбрать();


Почему выборка по данному запросу пустая? Параметр табельный номер точно передается в запрос.
1 Kreont
 
25.09.13
12:09
табельный номер <> коду физ.лиц
2 bard666
 
25.09.13
12:10
Согласен с (1). Или
Попробуй
Запрос.Параметры.Вставить("Код", СокрЛП(ТабельныйНомер));

по старинке

Запрос.УстановитьПараметр("Код", СокрЛП(ТабельныйНомер));
3 aydarik
 
25.09.13
12:12
ТабельныйНомер =СокрЛп(стр.Сотрудник.Код);  Изначально.
4 aydarik
 
25.09.13
12:13
Хотелось бы узнать. Сама по себе идея верная?
5 echo77
 
25.09.13
12:16
() +1 (1)
табельный номер <> коду физ.лиц

Ты пытаешься искать по значению поля Сотрудники.Код
среди значений поля ФизЛица.Код

понятно?
6 Cyberhawk
 
25.09.13
12:18
Выборка пустая, потому что нет в коде Выборка.Следующий()
7 Cyberhawk
 
25.09.13
12:19
+(6) возьму свои слова обратно, если автор определил пустоту выборки через Выборка.Количество()
8 aydarik
 
25.09.13
12:26
Выборка.Количество()    = 0. Вопрос как - раз  в том, почему она пустая
9 aydarik
 
25.09.13
12:27
(5) несовсем
10 aydarik
 
25.09.13
12:45
Идея вообще заключается в том, чтобы отдельно выписать ресурсы Фамилия, Имя, Отчество --- хранятся в регистре сведений ФИОФизЛиц по коду, код получаем из справочника сотрудников по ФИО в текущем документе
11 aydarik
 
25.09.13
12:45
Может есть более рацилнальные идеи?
12 piter3
 
25.09.13
12:47
тебе нужно сотрудник.физлицо.код передать в параметры
13 catena
 
25.09.13
12:52
А почему связь по коду, а не по, собственно, физлицу? Раз уж нашли его для определения кода?
14 catena
 
25.09.13
12:52
(3)Тут легко может быть дело в СОКРЛП.
15 aydarik
 
25.09.13
13:13
(13) хоть по коду, хоть по наименованию --- результат выборки пустой. и дело точно не в СОКРЛП
16 catena
 
25.09.13
13:19
(15)Значит нет по этому физлицу записи в регистре. Либо вы нам что-то недоговариваете.
17 Kreont
 
25.09.13
13:21
(0) посмотри в стандартных конфиг. такие ф-ии и их вызовы, может пригодятся:
ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок
ОбщегоНазначения.ПолучитьФамилиюИмяОтчество
18 grin
 
25.09.13
13:21
aydarik, не может быть, чтоб табельный номер был равен коду физ.лица. Одно физ.лицо может приниматься на работу кучу раз, в разные организации, на основное и совместительство, с разными табельными номерами. Так что сначала выбрка сотрудников, потом уже по их физ.лицам информация
19 Kreont
 
25.09.13
13:26
(4) код из (0) верный и рабочий, но параметры неправильно передаешь.
Открой консоль запросов и там тестируй, с учетом (1).
20 aydarik
 
26.09.13
15:36
В общем помогла строка Если ТабельныйНомер = СокрЛП(Выборка.Код) Тогда и далее ...   Предварительно ТабельныйНомер =СокрЛп(стр.Сотрудник.Код);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший