Имя: Пароль:
1C
1С v8
Выбор сотрудника
,
0 JaZDik
 
24.09.13
13:29
Ребят помогите, если в табличной части много сотрудников заведено, то при выборе любого сотрудника и вывода на печатную форму. Выводит весегда данные того сотрудника, который находится самый первый. Как решить эту проблемку?

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

    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
        
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КадровоеПеремещениеОрганизацийРаботникиОрганизации_ДополнительноеСоглашение";
    
    Макет = ПолучитьМакет("ДополнительноеСоглашение");
    
    ОбластьМакета = Макет.ПолучитьОбласть("Общее");
    ОбластьМакета.Параметры.Работник = Шапка.Сотрудник.Наименование;
    ОбластьМакета.Параметры.Серия = Шапка.Серия;
    ОбластьМакета.Параметры.Номер = Шапка.Номер;
    ОбластьМакета.Параметры.ДатаВыд = Шапка.ДатаВыд;
    ОбластьМакета.Параметры.КемВыдан = Шапка.КемВыдан;
    ОбластьМакета.Параметры.ИНН = Шапка.ИНН;
    ОбластьМакета.Параметры.СтрахНомер = Шапка.СтрахНомер;
    ОбластьМакета.Параметры.ДатаРож = Шапка.ДатаРож;
    ОбластьМакета.Параметры.ДатаДог = Шапка.ДатаДог;
    ОбластьМакета.Параметры.НомерДог = Шапка.НомерДог;
    ОбластьМакета.Параметры.Подразделение = Шапка.Подразделение;
    ОбластьМакета.Параметры.Должность = Шапка.Должность;
    ОбластьМакета.Параметры.Оклад = Шапка.Оклад;
    ОбластьМакета.Параметры.РабДата = ТекущаяДата();
    ОбластьМакета.Параметры.Дата1 = Шапка.Дата1;
    ОбластьМакета.Параметры.Номер1 = Шапка.Номер1;
    ОбластьМакета.Параметры.Работодатель = Шапка.Работодатель;
    ОбластьМакета.Параметры.ДатаОт = Шапка.ДатаОт;
    ОбластьМакета.Параметры.Поле1 = Шапка.Поле1;
    ОбластьМакета.Параметры.Поле2 = Шапка.Поле1;
         
    ТабДокумент.Вывести(ОбластьМакета);
    Возврат ТабДокумент;
    
КонецФункции
1 SeraFim
 
24.09.13
13:32
Так ты только первого и смотришь:
Шапка.Следующий();
2 SeraFim
 
24.09.13
13:34
Надо:
Пока Шапка.Следующий() Цикл
//вывод по каждому сотруднику
КОнецЦикла;
3 JaZDik
 
24.09.13
13:55
(2) Так а что в этом цикле прописать?
4 JaZDik
 
24.09.13
13:57
(2) Если не сложно можете показать как это в коде должно выглядеть?
5 Euguln
 
24.09.13
13:58
(3) Жесть какая.
А что хочется увидеть?
6 Artful Den
 
24.09.13
13:59
(0) да и ОбластьМакета.Параметры.Заполнить(Шапка) упростит твою конструкцию
7 JaZDik
 
24.09.13
14:01
Это ЗУП. внешняя печатная форма (5) увидеть хочу сотрудника на которого ставлю курсор, т.е. выбираю Из документа кадровое перемещение
8 Euguln
 
24.09.13
14:03
А как вызывается обработка из списка справочника?
9 Euguln
 
24.09.13
14:03
(8) т.е. из документа
10 JaZDik
 
24.09.13
14:04
(9) да
11 JaZDik
 
24.09.13
14:06
Могу выложить внешнию печатную форму, если нужно
12 Euguln
 
24.09.13
14:08
(11) не надо. У тебя нигде нет ссылки на текущего сотрудника в табличной части, и быть не может. Надо делать свой вызов в таком случае.
13 JaZDik
 
24.09.13
14:13
(12) Помоги пожалуйста.
14 JaZDik
 
24.09.13
14:17
Я просто еще начинаю только
15 Euguln
 
24.09.13
14:18
(13) чем? Через подключение внешней печатной формы это не сделаешь. Прописывать вызов своей функции печати и передаешь ей текущего сотрудника.
16 JaZDik
 
24.09.13
14:24
(15) Так и сделал. Как только передать ей текущео сотрудника?
17 kosts
 
24.09.13
14:30
Если нужно печатать приказ на отдельного сотрудника из документа, то можно во внешней печатной форме документа получить всех сотрудников этого документа. Выдать список сотрудников пользователю для выбора и тут уже печатать нужных по нажатии на ентер например. (это если конфигурацию не менять)

Еще лучше сразу по всем сотрудникам сформировать приказы...
Зачем по одному-то выбирать?
18 Euguln
 
24.09.13
14:36
(16) ЭлементыФормы.РаботникиОрганизации.ТекущиеДанные.Сотрудник
19 JaZDik
 
24.09.13
14:36
Это дополнительное соглашение. Переводу из подразделений или смены должности и из за этого нудно отдельно по каждому
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн