Вход | Регистрация

1С:Предприятие ::

Метки:Приемы программирования

Как вставить реквизит одного документа, в печатную форму другого документа.

Я
   Оля
09.08.04 - 10:53
Конфиг ЗиК. В печатную форму приказа на увольнение нужно встатвить номер трудового договора, который есть в приказе приема на работу.Естественно искать по сотруднику. Пишу:
Договор =СоздатьОбъект("Документ.ПриказОПриемеНаРаботу");   
Если Договор.Сотрудник = Сотрудник Тогда
сотр = Договор.НомерДоговора;
КонецЕсли;-> Не работает!!И не ругается, вообще ничего не делает!!
наверное не правильно задаю условие, раз пропускат?
Подскажите как надо???
 
 
   SnarkHunter
 
1 - 09.08.04 - 10:56
После того, как создать и до того как вставить, нужно найти...
   Эмблема форума
 
2 - 09.08.04 - 10:57
Наверно, на доке нужно сперва спозиционироваться (найтиПоНомеру(), например) ...
   Оля
3 - 09.08.04 - 11:33
Договор =СоздатьОбъект("Документ.ПриказОПриемеНаРаботу");
        Сотр = Договор.ПолучитьАтрибут("Сотрудник");
   Сообщить( "ССС "+Сотр); Сообщает пустое значение!!  
Если Сотр = Сотрудник Тогда
    НомДог = Договор.НомерДоговора;
КонецЕсли;
Например в справочнике это делалось так
Договор =СоздатьОбъект("Справочник..");
        Договор.ПолучитьЭлемент("Сотрудник");
        Сотр = Договор.ТекущийЭлемент();
И далее если Сотр = Сотрудник и тд..
А как тоже самое сделать только в документе!!!Там в место Элемента Реквизит, ПолучитьРеквизит нет такой команды и соответственно ТекущийРеквизит() не таботает!! Что делать?
   GrayT
 
4 - 09.08.04 - 11:41
(3)Ну ведь уже ответили - надо спозиционироваться на документе.
Договор =СоздатьОбъект("Документ.ПриказОПриемеНаРаботу");  - ты создала объект документ
Сотр = Договор.ПолучитьАтрибут("Сотрудник"); - из какого документа будешь брать сотрудника? Документ не спозиционирован!
   Den
 
5 - 09.08.04 - 11:43
А почему бы не попробовать вместо
Сотр = Договор.ПолучитьАтрибут("Сотрудник");
написать
Сотр = Договор.Сотрудник.ТекущийЭлемент();
???
   Den
 
6 - 09.08.04 - 11:44
(+5) Это, конечно, если выполнено (4)
   GrayT
 
7 - 09.08.04 - 11:49
После позиционирования достаточно
Сотр = Договор.Сотрудник;
   Оля
8 - 09.08.04 - 11:51
ТекущийЭлемент(); Это для справочников!!
А как спозиционировать док.??? ("Сотрудник")- это идент текущего документа об увольнении, в приказе на прием у реквизита тоже идентиф Сотрудник.
   GrayT
 
9 - 09.08.04 - 12:14
Внимательно перечитал (0) - Спозиционироваться надо надо на документе "ПриемНаРаботу", у которого сотрудник равен сотруднику на которого оформляют увольнение.
Попробуй через ВыбратьПоЗначению
Т.е. примерно так
Договор =СоздатьОбъект("Документ.ПриказОПриемеНаРаботу"); 
Если Договор.ВыбратьПоЗначению(,ДатаДок,"Сотрудник",Сотрудник)=1 Тогда
 Договор.НомерТрудовогоДоговора
Договор.ПолучитьДокумент();
   GrayT
 
10 - 09.08.04 - 12:15
+9Последние две строчки местами попутал.
 
  Рекламное место пустует
   Оля
11 - 09.08.04 - 12:29
Если Договор.ВыбратьПоЗначению(,ДатаДок,"Сотрудник",Сотрудник)=1 Тогда
{Документ.ПриказОбУвольнении.Форма.Модуль(337)}: Объект - документ определенного вида!
   lexa
 
12 - 09.08.04 - 12:34
(11) правильно ВыбратьПоЗначению работает с объектом Документ, а не с конкретным видом документов
Договор =СоздатьОбъект("Документ"); 
Если Договор.ВыбратьПоЗначению(,ДатаДок,"Сотрудник",Сотрудник)=1 Тогда 
если Договор.Вид() = "ПриказОПриемеНаРаботу" тогда
   Оля
13 - 09.08.04 - 12:41
Спасибо большое!!! Заработало!!!
   Крот
 
14 - 09.08.04 - 12:52
(3)
Например в справочнике это делалось так
Договор =СоздатьОбъект(\"Справочник..\"); 
       Договор.ПолучитьЭлемент(\"Сотрудник\"); 
       Сотр = Договор.ТекущийЭлемент(); 

Кем делалось? И как работает???
(0)
Уже ответил (2)
Договор.НайтиПоНомеру(Сотрудник. ...)
   Крот
 
15 - 09.08.04 - 12:56
Договор.НайтиПоНомеру(Сотрудник.ДоговорОПриеме.НомерДок);


Список тем форума
Рекламное место пустует   Рекламное место пустует
Читай всё полезное и впитывай, а нападки игнорируй. Здесь так принято. aka AMIGO
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует