Имя: Пароль:
1C
1С v8
Объясните почему не работает?
0 Aswed
 
22.02.17
15:39
Делаю обычную внешнюю печатную форму. Там есть кусок примитивного кода, без всяких излишеств

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

Когда запускаю эту форму в режиме отладки и интерактивно нажимаю "Напечатать" то все отрабатывает как и должно. Но вот как только подключаю её через "Внешние формы" этот кусок кода не выполняется. Такое ощущение что запрос не дает никакого результата.

Может кто нибудь разъяснить что за полтергейст?

ЗЫ 8.1
1 Лефмихалыч
 
22.02.17
15:41
ссылка пустая
или ссылка на объект другого типа
или весь вышестоящий код завернут в #Если КЛиент
или еще 100500 вариантов, все из которых лежат до этого кода
2 Митяйский
 
22.02.17
15:41
Новые заморочки с запуском внешних обработок. Нету прав на их запуск, скорее всего.
3 DrShad
 
22.02.17
15:42
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Ссылка);
4 Naf2017
 
22.02.17
15:42
Возврат ТабДокумент;
5 Лефмихалыч
 
22.02.17
15:42
(3) это ни чего не меняет
6 СамыйУмный
 
22.02.17
15:42
Если ты подключаешь внешнюю печатную форму, если не ошибаюсь, у тебя должна быть в модуле обработки функция Печать(), которая должна возвращать табличную часть
7 Лефмихалыч
 
22.02.17
15:43
(2) новые заморочки в 8.1?
8 СамыйУмный
 
22.02.17
15:43
Печать() Экспорт
Вот так
9 Hmster
 
22.02.17
15:43
одно время 81 падала на конструкции

|ГДЕ
|    СчетНаОплатуТовары.Ссылка.Ссылка = &Ссылка"


А вообще в чем проблема зайти отладчиком и посмотреть что происходит?
10 DrShad
 
22.02.17
15:43
(6) что!?
11 anatoly
 
22.02.17
15:44
(0) этот код в модуле формы или в модуле объекта?
в какой процедуре?
12 Лефмихалыч
 
22.02.17
15:44
(10) чо ты к словам придираешься?
13 youalex
 
22.02.17
15:44
В отладке можешь посмотреть (чтобы работала отладка, нужно чтобы оно сохраняло внешники  с разрешением .epf (стандартно - сохраняет как .tmp))
14 СамыйУмный
 
22.02.17
15:45
(10) например в УТ 10.3, когда подключаешь внешнюю печатную форму,
у тебя во внешней обработки должна быть функция Печать экспортная, которая возвращает табличнуючасть, далее обработку подключаешь и она печатает.
15 Лефмихалыч
 
22.02.17
15:47
(14) табличный документ, а не табличную часть - он об этом
16 СамыйУмный
 
22.02.17
15:48
И еще, должен быть реквизит СсылкаНаОбъект с типом документа, и тогда этот кусок кода исправь:
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Ссылка) на
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
17 СамыйУмный
 
22.02.17
15:48
(15) Спасибо, это я и имел ввиду.
18 DrShad
 
22.02.17
15:48
(14) какую ТЧ и куда возвращает? и самое интересное нафейхоа?
19 СамыйУмный
 
22.02.17
15:49
(18) Не ТЧ а ТД, я ошибся.
20 Aswed
 
22.02.17
15:59
(6) Она и есть. Этот код оттуда.
21 Лефмихалыч
 
22.02.17
16:00
(20) этот код рабочий. Проблема либо в другом коде, либо в параметре
22 Aswed
 
22.02.17
16:00
(9) В том что когда запускаю ее отдельно, не в составе справочника, она отрабатывает как надо.
А когда подключаю к справочнику, кусок кода тупо пролетает, как будто запрос не возвращает результата.
23 Aswed
 
22.02.17
16:01
(11) Модуль объекта.
Процедура Печать() Экспорт
24 DrShad
 
22.02.17
16:03
(22) ну так запрос не даст результата только если параметр неверный
25 DrShad
 
22.02.17
16:03
напиши Сообщить(СсылкаНаОбъект.Ссылка)  и глянь что там
26 Лефмихалыч
 
22.02.17
16:04
(25) в 8.1, кажется, упадет это с грохотом. Надо ЗаписьЖурналаРегистрации()
27 Aswed
 
22.02.17
16:07
(25) Только что сделал.
выскочила что не обнаружена процедура "Печать"
28 DrShad
 
22.02.17
16:08
(27) а вот тут поподробней )))
29 Aswed
 
22.02.17
16:09
(28) Ну судя по всему при попытке посмотреть что там такое процедура Печать() выпадет с ошибкой.
А там запуск этой процедуры через Попытку.
30 Hmster
 
22.02.17
16:09
(27) слово Экспорт есть?
31 Лефмихалыч
 
22.02.17
16:09
pfff!
32 Лефмихалыч
 
22.02.17
16:10
говорил же, что ошибка выше.
Перенести свою эту печать из модуля формы в модуль объекта
33 СамыйУмный
 
22.02.17
16:10
Почему процедура если функция должна быть?
34 Aswed
 
22.02.17
16:11
(32) Она там и есть.
(33) Ясен пень что функция.
35 DrShad
 
22.02.17
16:11
[А там запуск этой процедуры через Попытку.] вот это поворот
36 Aswed
 
22.02.17
16:12
+ (34) Не могу понять что же тогда передается в эту процедуру в качестве Объекта, если другие подобные формы работают без проблем. Вызываемые из того же справочника.
37 Aswed
 
22.02.17
16:12
(35) В чем поворот?
Из модуля справочника с внешними печатными формами

    Попытка
        ТабДокумент = ВнешниеОбработки.Создать(ИмяФайлаПечатнойФормы).Печать(ДокументОбъект,ТабДокумент);
    Исключение
        ТабДокумент = ВнешниеОтчеты.Создать(ИмяФайлаПечатнойФормы).Печать(ДокументОбъект,ТабДокумент);
    КонецПопытки;
38 Жан Пердежон
 
22.02.17
16:15
попробуй выключить и включить (с)
39 youalex
 
22.02.17
16:18
(37) посмотри конфигурятником файл, который ИмяФайлаПечатнойФормы

попробуй темп почистить
40 DrShad
 
22.02.17
16:21
(39) +1
скорее всего кэш что-то не то исполняет
41 Hmster
 
22.02.17
16:27
Вообще ДокументОбъект печатать это круто, по феншую положено ДокументСсылка
42 Aswed
 
22.02.17
16:54
(41) Это мать его АльфаАвто((((
43 Aswed
 
22.02.17
17:00
Посмотрел в момент вызова процедуры Печать передается документ объект СчетНаОплату, не пойму что там не так
44 h-sp
 
22.02.17
17:02
(43) может у него ссылка пустая. проверь
45 DrShad
 
22.02.17
17:12
(44) +1
он может быть не записан еще