Имя: Пароль:
1C
1С v8
Подключение внешнего отчета в БП 2.0 (2.0.28.6) - исчезает принадлежность
0 SleepyHead
 
гуру
27.08.13
11:08
Клиент хочет прицепить внешнюю печатную форму для документа. Создаем внешний отчет, создаем в нем макет "Параметры_Авторегистрации", указываем вид документа.

При регистрации внешней печатной формы все в порядке, однако, она по факту не подцепляется - принадлежность исчезает (WTF???)

Посмотрел модуль формы справочника "ВнешниеОбработки", в процедуре "ОбновитьдоступностьПринадлежности" обнаружил такой код:

    Если ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка ИЛИ ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет ИЛИ ВидОбработки.Пустая() Тогда
        
        Если Не Принадлежность.Количество() = 0  Тогда
            Принадлежность.Очистить();
        КонецЕсли;


То есть, если добавляем отчет или обработку, принадлженость очищается. И как быть?
1 ale-sarin
 
27.08.13
11:11
Так вроде принадлежность нужна для печформ и заполнения табчасти. Не?
2 SleepyHead
 
гуру
27.08.13
11:13
(1) А мне и нужна печатная форма (нестандартный счет, а с учетом требований клиента).
3 SleepyHead
 
гуру
27.08.13
11:14
Кажется понял, на что намекаете, не туда добавляю.
4 ale-sarin
 
27.08.13
11:17
(3) ага. молодец.
5 SleepyHead
 
гуру
27.08.13
11:27
Теперь другая проблема,  Поле объекта не обнаружено (СсылкаНаОбъект)"

такой реквизит у обработки есть, тип реквизита: ДокументСсылка.СчетНаОплатуПокупателю

Что-то не пойму, почему не видит.. Насколько понял по модулю печати внешних форм, это должен быть реквизит обработки, что я и сделал.
6 ale-sarin
 
27.08.13
11:31
(5) Может очепятка, и совсем не СсялкаНаОбъект?
7 ale-sarin
 
27.08.13
11:32
+6 Во, мля, я и сам очепятался > СсылкаНаОбъект.
8 SleepyHead
 
гуру
27.08.13
11:34
Нет, точно не очепятка. Сам сначала так подумал. Потом скопировал из общего модуля из строки

Обработка.СсылкаНаОбъект = Ссылка;

уже само слово "СсылкаНаОбъект", заменил наименование реквизита, сохранил внешний отчет, заменил во внешних печатных формах файл - не помогло :(
9 ale-sarin
 
27.08.13
11:36
(8) Отладку запусти с этой самой строки Обработка.СсылкаНаОбъект = Ссылка
10 SleepyHead
 
гуру
27.08.13
11:38
(9) Запустил, смотрю выражение "Обработка", там нет реквизита "СсылкаНаОбъект", потому и ругается

Почему не видит, не пойму. Взять что ли сеанс отладки перезапустить?
11 SleepyHead
 
гуру
27.08.13
11:39
Не помогло, как не виден реквизит обработки был в прошлом сеансе отлаки, так и сейчас. Чего-то я не понимаю. реквизит есть, но его не видно...
12 ale-sarin
 
27.08.13
11:39
(10) Обработка не та?
Сохрани обработку из справочника в новый файл и посмотри на наличие реквизита.
13 SleepyHead
 
гуру
27.08.13
11:44
Пробовал, сохранял в другую папку, грузил оттуда, не помогает. Вообще что-то загадочное у меня получилось.

При открытии окна диалога выбора обработки самого файла не видно. Вводишь в маске *.* тогда видно :)

Попробую создать другую обработку заново и подцепить.
14 SleepyHead
 
гуру
27.08.13
11:49
Не помогло, реквизита "СсылкаНаОбъект" в упор не видит. :(
15 SleepyHead
 
гуру
27.08.13
11:49
Буду искать работающий пример.
16 SleepyHead
 
гуру
27.08.13
11:51
Насколько я понимаю, форму создавать не нужно? Реквизит "СсылкаНаОбъект" должен быть реквизитом внешнего отчета/обработки. Если все так, то непонятно, что не так делаю..
17 ale-sarin
 
27.08.13
11:55
Смотрел (12)?

(16) Да, верно понимаешь.
Я делаю так. Отлаживать-то надо как-то. Делаю форму, на ней реквизит обработки "СсылаНаОбъект". А из модуля формы по кнопке выполнить вызывается Функция Печать() из модуля обработки.
18 Starhan
 
27.08.13
11:56
Поставь тип реквизита любая ссылка
19 SleepyHead
 
гуру
27.08.13
11:56
Да, и (12) и (17) смотрел, не помогло. В отладчике смотрю значение "Обработка", реквизита "СсылкаНаОбъект" нет ...
20 ale-sarin
 
27.08.13
11:59
(19) Хочешь сказать, сохранил файл из справочника и в обработке сохраненной есть таки реквизит?
Кстати, а сколько печатных форм добавлено уже к этому документу? Наэкспериментировал может уже, надобавлял несколько.
21 SleepyHead
 
гуру
27.08.13
12:06
(20) Нет, все было нет так. Обработку я создал новую, в ней пока что есть только СсылкаНаОбъект и макет "Параметры_Авторегистрации", и пустая процедура Печать() в модуле обработки, все.

По подключению - подключен только один внешний отчет, других нет.

Для проверки ставлю точку останова в общем модуле "УниверсальныеМеханизмы", в процедуре "НапечататьВнешнююФорму", на строке

        Обработка = ВнешниеОбработки.Создать(ИмяФайла);
        Обработка.СсылкаНаОбъект = Ссылка;


И вот на второй строке из цитаты смотрю выражение "Обработка", реквизит "СсылкаНаобъект" отсутствует.
22 Starhan
 
27.08.13
12:07
Покажи скрин реквизита у обработки.
23 SleepyHead
 
гуру
27.08.13
12:08
попробовал подключить внешний отчет, скачанный с какого-то сайта, там реквизит виден :)

Проще похоже из скачанного отчета сделать, чем из моего пустого.
24 SleepyHead
 
гуру
27.08.13
12:10
(22) Как добавить файл?
25 ale-sarin
 
27.08.13
12:10
(21) Вот я и говорю: Теперь из справочника внешние обработки сохрани обработку в новый файл, открой новый файл обработки в конфигураторе и убедись в наличии/отсутствии реквизита.
26 SleepyHead
 
гуру
27.08.13
12:12
(25) Сделал так, реквизит есть, только почему-то изменился вид документа (стал "реализацияТоваровУслуг")
27 Starhan
 
27.08.13
12:13
Надо ставить любая ссылка.
Что бы не было таких проблем
28 SleepyHead
 
гуру
27.08.13
12:13
(25) Что-то я не понял, почему после сохранения в справочнике меняется структура обработки? Жесть..
29 SleepyHead
 
гуру
27.08.13
12:14
(27) Это не объясняет, почему не видит реквизит "СсылкаНаОбъект" вообще.
30 Starhan
 
27.08.13
12:16
(29) да в общем то дело в твоих руках, ты просто не договариваешь нам что-то :)
31 hhhh
 
27.08.13
12:17
(29) закрой предприятие и снова открой
32 SleepyHead
 
гуру
27.08.13
12:17
Для эксперимента создал обрабокту заново, подключил, сохранил в файл обратно - действительно пропадает реквизит "СсылкаНаОбъект".

WTF ??
33 SleepyHead
 
гуру
27.08.13
12:18
(31) Еще посоветуй выйти из кабинета и снова зайти :) Это уже было выше.
34 SleepyHead
 
гуру
27.08.13
12:18
(30) Говорю все как есть...
35 SleepyHead
 
гуру
27.08.13
12:20
Решил что проще всего сделать на базе работающего внешнего отчета. Что делаю не так при создании нового отчета - так и не понял, все как положено.

Там сложно ошибиться, при создании реквизита.

Но меня смущает, что я сохраняю новый внешний отчет, а в окне выбора файла (при добавлении во внешние печатные формы) файл вообще не виден, пока не задашь маску *.*
36 ale-sarin
 
27.08.13
12:21
(35) Создавать надо новую обработку, а не отчет. Может в этом весь и косяк.
37 SleepyHead
 
гуру
27.08.13
12:22
(36) И так и так пробовал, без разницы.
38 Starhan
 
27.08.13
12:24
так ты же обработку создал у нее раcширение ert, а у отчета erf
39 fmrlex
 
27.08.13
12:24
(35) ВПФ делают на основе внешней обработки.
40 SleepyHead
 
гуру
27.08.13
12:24
Вот, взял обработку, скачанную с сайта, заменил тип реквизита "СсылкаНаОбюъект" на нужный, все заработало.

Что было при создании новой обработки - так и не понял.
41 Starhan
 
27.08.13
12:25
(40) что все таки ты делаешь? ВПФ, отчет или обработку?
42 SleepyHead
 
гуру
27.08.13
12:25
(38) Я поражен (с)
43 SleepyHead
 
гуру
27.08.13
12:26
Всем спасибо, проблема решена
44 hhhh
 
27.08.13
12:26
(33) ну если у вас там реальный дурдом, то любые средства надо испробовать. Согласись: десятки тысяч программистов по России. Ни у кого еще реквизит ссылкаНаОбъект ни разу не пропал. За всю историю фирмы 1С.
45 hhhh
 
27.08.13
12:28
(43) дату изменения файла обработки отслеживайте. В Windows. Похоже - это разные файлы.
46 SleepyHead
 
гуру
27.08.13
12:29
(44) Я предпочитаю общаться с людьми, которые не привносят эмоции в работу, извините.
47 SleepyHead
 
гуру
27.08.13
13:31
Попробовал в другой базе, действительно, надо было создавать внешнюю обработку, а не внешний отчет.

Специально для (38) - и там, и там расширение EPF. Но как 1с82 отличает внешний отчет от внешней обработки при этом?
48 SleepyHead
 
гуру
27.08.13
13:35
Виноват, для внешнего отчета ERF, для внешней обработки EPF, теперь понятно
Независимо от того, куда вы едете — это в гору и против ветра!