Имя: Пароль:
1C
1С v8
Передача ссылки во внешней обработке
0 manti
 
25.02.13
12:15
Создаю внешнюю обработку по заполнению ТЧ документа. Нужно проверить - по ссылке на документ его модийицированность и новый ли он

Функция  Печать()
Если СсылкаНаОбъект.ЭтоНовый() Тогда
       Предупреждение("Документ можно распечатать только после его записи");
       Возврат неопределено;
   КонецЕсли;

   Если Не РаботаСДиалогами.ПроверитьМодифицированность(СсылкаНаОбъект) Тогда
       Возврат неопределено;
   КонецЕсли;
КонецФункции // ПечатьИНВ19()

Функция ПроверитьМодифицированность(Документ) Экспорт

   Результат = Ложь;

   Если Документ.Модифицированность() Тогда

       Проведен    = Метаданные.Документы.Содержит(Документ.Метаданные()) И Документ.Проведен;
       СтрПроведен = ?(Проведен, " и провести","");
КонецФункции // ПроверитьМодифицированность()

В итоге ругается:
1) Метод объекта не обнаружен (ЭтоНовый)
Если СсылкаНаОбъект.ЭтоНовый() Тогда
2)Метод объекта не обнаружен (Модифицированность)
   Если Документ.Модифицированность() Тогда
1 manti
 
25.02.13
12:15
СсылкаНаОбъект=ДокументСсылка.ИнвентаризацияТоваровНаСкладе
2 Defender aka LINN
 
25.02.13
12:16
(1) Молодец
3 manti
 
25.02.13
12:24
СсылкаНаОбъект.ПолучитьОбъект().ЭтоНовый() - вроде прокатило)
4 Defender aka LINN
 
25.02.13
12:29
(3) Рукалицо...
Напиши вместо ЭТОГО "Ложь". Идиотизма одинаково, а работать быстрее будет
5 PLUT
 
25.02.13
12:31
если внешнюю обормотку по заполнению ТЧ вызвал, полюбому независимо от результата у документа Модифицированность установится
6 Serg_1960
 
25.02.13
13:01
(0) "Создаю внешнюю обработку по заполнению ТЧ документа" - тогда зачем взял "за основу" внешнюю печатную форму?

Неудачный выбор у вас, однако :))

Для обработки печати - передаётся ссылка, для обработки заполнения ТЧ - объект.

"Я сам себе злобный Буратино"(с)
7 GANR
 
25.02.13
13:09
Сам факт существования ссылки опровергает "новость" объекта (как ПРАВИЛО). Это для ДокументОбъект.ЭтоНовый() имеет смысл.
8 GANR
 
25.02.13
13:10
"Новый" значит не записан на диск, а (1) всегда будет = Ложь
9 GANR
 
25.02.13
13:10
(8) к (3)
10 GANR
 
25.02.13
13:14
(0) Добейся, чтобы вместо ссылки ДокументОбъект пересылался в процедуру. "Отладка\Стек вызовов" в помощь.
11 Cube
 
25.02.13
13:14
(3) Ахахаха))) Жги ищо!!)))
12 GANR
 
25.02.13
13:15
А чтобы остановиться в коде обработки - смоделируй ошибку и "Остановка по ошибке" (деление на 0, к примеру).
13 GANR
 
25.02.13
13:18
(11) Тебе смешно))). (4) и (7) в ярость бросило.
14 Defender aka LINN
 
25.02.13
13:27
(12) Извращенец :)
Что мешает форму нарисовать?
15 GANR
 
25.02.13
13:50
(14) А чего? (12) это неплохой прием отладки.
16 Defender aka LINN
 
25.02.13
13:58
(15) Еще раз:
1. Делаешь форму у обработки.
2. На формы высовываешь "СсылкаНаОбъект"
3. По кнопке "Выполнить" вызываешь процедуру "Печать"
4. ?????
5. PROFIT

Инструменты отладки, my ass...
17 Cube
 
25.02.13
13:58
(15) Эх ты... :)
18 GANR
 
25.02.13
14:06
(16) Это, конечно, хорошо, но надо бы понять по каким принципам можно в обработку ДокОбъект (не ссылка) передать, учитывая особенности подсистемы "Доп. отчеты и обработки". А дальше ДокОбъект.ЭтоНовый() и проверить (0).
19 Defender aka LINN
 
25.02.13
14:33
(18) Объект передается обработке заполнения, а не печати, если что.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.