Имя: Пароль:
1C
1С v8
Как вытащить должность сотрудника?
,
0 БалбесВ1с
 
26.03.12
09:47
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    РаботникиОрганизацийСрезПоследних.Должность
   |ИЗ
   |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
   |            &Период,
   |            Организация = &Организация
   |                И Сотрудник.Физлицо = &Сотрудник) КАК РаботникиОрганизацийСрезПоследних";
   Запрос.УстановитьПараметр("Период",РабочаяДата);
   Запрос.УстановитьПараметр("Организация",СсылкаНаОбъект.Организация);
   Запрос.УстановитьПараметр("Сотрудник",Ответственный.ФизЛицо);
   ВыбДолжностьОтветственного = Запрос.Выполнить().Выбрать();
   ДолжностьОтветственный = "нет";
   Если ВыбДолжностьОтветственного.Следующий() Тогда
       ДолжностьОтветственный = ВыбДолжностьОтветственного.Должность;
   КонецЕсли;

Запрос не мой.Должен вроде работать.Но не работает.Выводит нет всё время.Подскажите что не так?
1 ale-sarin
 
26.03.12
09:49
(0) Ответственный - это ссылка Справочник.Пользователи?
2 vmv
 
26.03.12
09:50
(1) В документообороте, БСП и новых конфах на УФ - да
3 Ненавижу 1С
 
гуру
26.03.12
09:50
наверное

Запрос.УстановитьПараметр("Сотрудник",Ответственный.ФизЛицо);

Сотрудник имеет тип Сотрудники, а Физлицо - физические лица
4 Ненавижу 1С
 
гуру
26.03.12
09:51
>>Запрос не мой

просто разместил объяву?
5 БалбесВ1с
 
26.03.12
09:51
УПП.График отпусков организаций.Ответственный.
6 БалбесВ1с
 
26.03.12
09:53
СправочникСсылка.Пользователи
7 БалбесВ1с
 
26.03.12
09:54
СотрудникДолжность = Элемент.Значение.Сотрудник.Должность;
Вот так вот всё показывает.Но я боюсь что это неправильно? Ведь должности меняются.Или это текущая?
8 ale-sarin
 
26.03.12
09:55
(7) Нет, не текущая.
9 ale-sarin
 
26.03.12
09:56
Так может нет записей в регистре? Вдруг?
10 БалбесВ1с
 
26.03.12
09:56
Ну тогда так и сделаю.Мне просто нужно должности вывести тех кто в отпуск идет по графику.
11 vmv
 
26.03.12
09:56
(7) СрезПоследних это что по вашему?
12 ale-sarin
 
26.03.12
09:57
(10) Не текущая!!!
13 БалбесВ1с
 
26.03.12
10:01
(11)Я так думаю это последние записи по каждому .
14 ale-sarin
 
26.03.12
10:03
(13) Правильно. А справочнике СОтрудники Должность просто так для трудового договора.
15 БалбесВ1с
 
26.03.12
10:04
Регистр Кадровая история пустой почему-то (
16 ale-sarin
 
26.03.12
10:04
(15) Ну вот. А откуда тогда - "Должен вроде работать".
Кадровый учет-то не ведется.
17 БалбесВ1с
 
26.03.12
10:06
(16)Ведется.
18 ale-sarin
 
26.03.12
10:07
(17) И "Прием на работу" есть? Он должен туда записывать.
19 БалбесВ1с
 
26.03.12
10:08
Я перепутал регистры.Этот - Кадровая история сотрудников (по юрлицам) - не пустой.
20 ale-sarin
 
26.03.12
10:13
Вроде должен. Организацию не попутал?
21 БалбесВ1с
 
26.03.12
10:14
Одна.
22 Amra
 
26.03.12
10:16
(21) В (3) дан верный ответ
23 ale-sarin
 
26.03.12
10:17
(22) А в запросе не сотрудник проверяется, а физлицо. Вроде норм.
24 БалбесВ1с
 
26.03.12
10:18
Чтож это получается на инф-те не знают про соответстие типов!
А как надо то?
25 Amra
 
26.03.12
10:18
(23) а, точно, не обратил внимания.
26 Amra
 
26.03.12
10:19
(24) Может рабочая дата имеет значение десятилетней давности?
27 ale-sarin
 
26.03.12
10:19
(24) Отладка. Консоль запросов.
28 ale-sarin
 
26.03.12
10:19
(26)+1
29 БалбесВ1с
 
26.03.12
10:24
(26)Использовать текущую стоит.26 марта 2012.
30 Amra
 
26.03.12
10:26
(29) Ответсвенный.ФизЛицо точно заполнено? НЕ пустая ссылка?
31 БалбесВ1с
 
26.03.12
10:27
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    РаботникиОрганизацийСрезПоследних.Должность
   |ИЗ
   |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
   |            &Период,
   |            Организация = &Организация
   |                И Сотрудник.Физлицо = &Сотрудник) КАК РаботникиОрганизацийСрезПоследних";
   Запрос.УстановитьПараметр("Период",РабочаяДата);
   Запрос.УстановитьПараметр("Организация",СсылкаНаОбъект.Организация);
   Запрос.УстановитьПараметр("Сотрудник",Ответственный.ФизЛицо);
   ВыбДолжностьОтветственного = Запрос.Выполнить().Выбрать();
   ДолжностьОтветственный = "";
   Если ВыбДолжностьОтветственного.Следующий() Тогда
       ДолжностьОтветственный = ВыбДолжностьОтветственного.Должность;
       Сообщить(ДолжностьОтветственный);
       Сообщить(1);
   КонецЕсли;
В общем добавил сообщить но ничего не выводится.Т.е. результат запроса пустой похоже?
32 БалбесВ1с
 
26.03.12
10:27
(30)Да,заполнено все.
33 ale-sarin
 
26.03.12
10:28
(31) А отладка что сообщает?
34 Amra
 
26.03.12
10:29
(32) Ну значит данное физлицо не работает в этой организации - чудес не бывает
35 БалбесВ1с
 
26.03.12
10:30
(33)Я не умею.
36 dva1c
 
26.03.12
10:36
(35) В консоли проверил (31). Все работает. Должность есть.
Попробуй:

...
Сообщить(Должность);
...
37 БалбесВ1с
 
26.03.12
10:39
Переменная не определена.
38 БалбесВ1с
 
26.03.12
10:46
В общем поменял Ответственный на СправочникСсылка.СотрудникиОрганизаций
и все заработало.Было СправочникСсылка.Пользователи.
39 БалбесВ1с
 
26.03.12
10:47
Всем кто откликнулся большое спасибо.
40 Amra
 
26.03.12
11:30
(38) И данные этого поля похерились во всех уже введенных документах)
41 БалбесВ1с
 
26.03.12
12:20
(40)Это внешняя печатная форма.Ответственный нигде не записывается.
AdBlock убивает бесплатный контент. 1Сергей