Имя: Пароль:
1C
 
Ссылка на Документ из которого запускается внешняя обработка
0 sl_sl
 
10.09.07
12:26
Товарищи подскажите как получить ссылку на Документ из которого запускается обработка.
Ситуация такая: Внешняя обработка запускается по кнопке печать (подключ. как внешн. печ. форм), но она берет и обрабатывает не тот док в котором запустилась а первый из журнала.
Написан Запрос так:
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ДокументСсылка", СсылкаНаОбъект);
   Запрос.Текст =
"ВЫБРАТЬ
|    ПриемНаРаботуВОрганизацию.Дата КАК Дата,
|    ПриемНаРаботуВОрганизацию.РаботникиОрганизации.(
|        ТрудовойДоговор.Номер,
|        ФизЛицо КАК ФизЛицо
|    ),
|    ТрудовойДоговор.Дата КАК Дата1,
|    ТрудовойДоговор.Номер,
|    ТрудовойДоговор.ФизЛицо КАК ФизЛицо
|ИЗ
|    Документ.ТрудовойДоговор КАК ТрудовойДоговор
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
|        ПО ТрудовойДоговор.Номер = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.Номер
|            И ТрудовойДоговор.ФизЛицо.Наименование = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.ФизЛицо.Наименование
|            И ТрудовойДоговор.ФизЛицо = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.ФизЛицо
|УПОРЯДОЧИТЬ ПО
|    ФизЛицо
   Выборка = Запрос.Выполнить().Выбрать();
1 yalex
 
10.09.07
12:28
ЭтотОбъект.Ссылка
2 Kamili
 
10.09.07
12:29
Заведи реквизит формы внешней обработки, в который и передавай, при открытии, ссылку на свой документ.
3 sl_sl
 
10.09.07
12:34
Вот так Написал.    
Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ДокументСсылка", СсылкаНаОбъект.Ссылка);
   Запрос.Текст =
"ВЫБРАТЬ
|    ПриемНаРаботуВОрганизацию.Дата КАК Дата,
|    ПриемНаРаботуВОрганизацию.РаботникиОрганизации.(
|        ТрудовойДоговор.Номер,
|        ФизЛицо КАК ФизЛицо
|    ),
|    ТрудовойДоговор.Дата КАК Дата1,
|    ТрудовойДоговор.Номер,
|    ТрудовойДоговор.ФизЛицо КАК ФизЛицо
|ИЗ
|    Документ.ТрудовойДоговор КАК ТрудовойДоговор
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
|        ПО ТрудовойДоговор.Номер = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.Номер
|            И ТрудовойДоговор.ФизЛицо.Наименование = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.ФизЛицо.Наименование
|            И ТрудовойДоговор.ФизЛицо = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.ФизЛицо
|УПОРЯДОЧИТЬ ПО
|    ФизЛицо
|    ГДЕ
|    ПриемНаРаботуВОрганизацию.Ссылка = &ДокументСсылка";
Ругается так : Ошибка при вызове метода контекста (Выполнить): {(18, 2)}: Синтаксическая ошибка "ГДЕ"
<<?>>ГДЕ
СсылкаНаОбъект обязательный реквизит с таким именем и его тип:ДокументОбъект.ПриемНаРаботуВОрганизацию

(2) чуть подробней если можно..., я так понял форму создать которая буде открываться при нажатии печать и в ней я буду указывать конкретный док?
4 sl_sl
 
10.09.07
12:37
по поводу (2) не спортивно как-то..., есть же наверняка вариант при котором будет получатся ссылка на док без доп. форм
5 sl_sl
 
10.09.07
13:04
Хелп
Поменял тип СсылкаНаОбъект на:ДокументСсылка.ПриемНаРаботуВОрганизацию
тож нефига...
Помогите: Как получить ссылку на док в котором запускается обработка, чтоб вытащить именно из этого дока данные?
6 Stepa86
 
10.09.07
13:11
Так запусти отладку и глянь че лежит в СсылкаНаОбъект. У меня вот Запрос.УстановитьПараметр("ДокументСсылка", СсылкаНаОбъект.Ссылка);
работает как надо (в моей форме)
7 Divemaster
 
10.09.07
13:14
Ну так тебе уже все написали: Ругается так : Ошибка при вызове метода контекста (Выполнить): {(18, 2)}: Синтаксическая ошибка "ГДЕ"
<<?>>ГДЕ
Посмотри как ты условие используешь...
8 sl_sl
 
10.09.07
13:18
при запросе в (3), выдает : Ошибка при вызове метода контекста (Выполнить): {(18, 2)}: Синтаксическая ошибка "ГДЕ"
<<?>>ГДЕ, Не могу найти ошибки...
(6) Во внешней обработке отладчик не работает же...
9 Divemaster
 
10.09.07
13:21
А если так:

ВЫБРАТЬ
   ПриемНаРаботуВОрганизацию.Дата КАК Дата,
   ПриемНаРаботуВОрганизацию.РаботникиОрганизации.(
       ТрудовойДоговор.Номер,
       ФизЛицо КАК ФизЛицо
   ),
   ТрудовойДоговор.Дата КАК Дата1,
   ТрудовойДоговор.Номер,
   ТрудовойДоговор.ФизЛицо КАК ФизЛицо
ИЗ
   Документ.ТрудовойДоговор КАК ТрудовойДоговор
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
       ПО ТрудовойДоговор.Номер = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.Номер
           И ТрудовойДоговор.ФизЛицо.Наименование = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.ФизЛицо.Наименование
           И ТрудовойДоговор.ФизЛицо = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.ФизЛицо
ГДЕ
   ПриемНаРаботуВОрганизацию.Ссылка = &ДокументСсылка            
УПОРЯДОЧИТЬ ПО
   ФизЛицо
10 sl_sl
 
10.09.07
13:27
(9) спасибо подсказали тоже написал так
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ДокументСсылка", СсылкаНаОбъект.Ссылка);
   Запрос.Текст =
"ВЫБРАТЬ
|    ПриемНаРаботуВОрганизацию.Дата КАК Дата,
|    ПриемНаРаботуВОрганизацию.РаботникиОрганизации.(
|        ТрудовойДоговор.Номер,
|        ФизЛицо КАК ФизЛицо
|    ),
|    ТрудовойДоговор.Дата КАК Дата1,
|    ТрудовойДоговор.Номер,
|    ТрудовойДоговор.ФизЛицо КАК ФизЛицо
|ИЗ
|    Документ.ТрудовойДоговор КАК ТрудовойДоговор
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
|        ПО ТрудовойДоговор.Номер = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.Номер
|            И ТрудовойДоговор.ФизЛицо.Наименование = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.ФизЛицо.Наименование
|            И ТрудовойДоговор.ФизЛицо = ПриемНаРаботуВОрганизацию.РаботникиОрганизации.ТрудовойДоговор.ФизЛицо
|    ГДЕ
|    ПриемНаРаботуВОрганизацию.Ссылка = &ДокументСсылка
|УПОРЯДОЧИТЬ ПО
|    ФизЛицо";
11 Stepa86
 
10.09.07
13:28
(8)Обработчик работает, только точку останова надо ставить в событии печать, где внешнюю обработку вызывает
12 sl_sl
 
10.09.07
13:28
Но зато теперь работает корректно, только первый документ из журнала а последующие кроме первого не видит данные... :(
13 sl_sl
 
10.09.07
14:10
Всем спасибо, разобрался
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший