Имя: Пароль:
1C
1С v8
как в функции печать внешней печатной формы получить именно "ЭтуФорму"
0 shlyahtich
 
05.11.13
09:15
это не совсем но продолжение темы
v8: Как с помощью внешней обработки добавить кнопку на форму?

читал справку, смотрел хелп но не понял
Вобщем я сделал обработку которая из внешней формы печати выполняет открытие хранилища и решает задачу сохранения фалов в томе. Почти решил, так как при открытии справочника с хранилищем, где хранятся присоединенные файлы и ссылки на объекты, к которым они относятся, необходимо определить владельца формы из которой он открывается

Так вот как в функции печать внешней печатной формы получить именно "ЭтуФорму" не нашел. Про ключи обчитался - вроде можно если даже открыто несколько форм одного документа определить нужную - как!?
Коллеги - хелп ми плиз - направьте в русло - ну никак не могу понять куда рыть

<Code
Процедура ОткрытьХранилищеДополнительнойИнформации(Ссылка,Владелец) Экспорт
    
    Если Ссылка.Пустая() Тогда
        Предупреждение("Сначала запишите документ.");
        Возврат;
    КонецЕсли;
    
    ФормаФайлов = Справочники.ХранилищеДополнительнойИнформации.ПолучитьФорму("ФормаСпискаФайловИИзображений", Владелец);
    
    ФормаФайлов.Изображения.Отбор.Объект.Использование                               = Истина;
    ФормаФайлов.Изображения.Отбор.Объект.Значение                                    = Ссылка;
    ФормаФайлов.ЭлементыФормы.Изображения.НастройкаОтбора.Объект.Доступность         = Ложь;
    ФормаФайлов.ЭлементыФормы.Изображения.Колонки.Объект.Видимость                   = Ложь;

    ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Использование                       = Истина;
    ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Значение                            = Ссылка;
    ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.НастройкаОтбора.Объект.Доступность = Ложь;
    ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.Колонки.Объект.Видимость           = Ложь;

    ФормаФайлов.СсылкаНаФайл.Отбор.Объект.Использование                       = Истина;
    ФормаФайлов.СсылкаНаФайл.Отбор.Объект.Значение                            = Ссылка;
    ФормаФайлов.ЭлементыФормы.СсылкаНаФайл.НастройкаОтбора.Объект.Доступность = Ложь;
    ФормаФайлов.ЭлементыФормы.СсылкаНаФайл.Колонки.Объект.Видимость           = Ложь;
    
    ОбязательныеОтборы = Новый Структура;
    ОбязательныеОтборы.Вставить("Объект",Ссылка);

    ФормаФайлов.ОбязательныеОтборы = ОбязательныеОтборы;
    
    ФормаФайлов.Открыть();
    
КонецПроцедуры    
Code>
1 1dvd
 
05.11.13
09:17
Зачем тебе форма документа? Его можно распечатать не открывая формы документа
2 shlyahtich
 
05.11.13
09:18
(1)
я не решаю задачу печати - надо прочитать коротку ссылку вначале
3 shlyahtich
 
05.11.13
09:25
up
4 shlyahtich
 
05.11.13
09:31
При открытии формы я могу получить и запомнить как параметр ее ключ? ммм... и передать как то этот параметр в функцию внешней  печатной формы Печать()?
5 1dvd
 
05.11.13
09:33
(4) ты сам задаешь ключ, когда создаешь форму
6 1dvd
 
05.11.13
09:33
см. параметры ПолучитьФорму("
7 shlyahtich
 
05.11.13
09:35
(5) то есть получается при открытии его надо задавать иначе ЭтаФорма.КлючУникальности = Неопределено
8 shlyahtich
 
05.11.13
09:36
Блин... натыкаюсь на разные грабли - задача в том чтоб не трогасть конфу на поддержке
9 shlyahtich
 
05.11.13
09:42
а параметр этот передать в ф-ю печати не могу тоже
10 1dvd
 
05.11.13
09:43
(9) очень трудно понять что тебе нужно всё-таки
11 shlyahtich
 
05.11.13
09:45
Поясню проще.
Представь что используешь ф-ю Печать() внешней печатной формы чтоб не добавлять лишних кнопок и не снимать с поддержки (конфа на замке)
12 shlyahtich
 
05.11.13
09:46
из этой ф-ии Печать() вызываешь процедуру открытия справочника. Но при этом необходимо передать в нее Владельца. То есть форму из которой вызвано открытие этого справочника
13 1dvd
 
05.11.13
09:48
1. Из формы элемента справочника открывается внешня обработка с функцией Печать?
2. Из Внешней обработки (по кнопке) открывается форма выбора элемента из другого справочника?
3. Нужно получить Форму того первого справочника?
14 shlyahtich
 
05.11.13
09:53
Нет Открывается документ и к нему именно "прилеплена" внешняя печ форма
15 shlyahtich
 
05.11.13
09:54
Т есть ВПФ зарегистрированна на документ
16 shlyahtich
 
05.11.13
09:55
и используется ТОЛЬКО чтоб появилась кнопка, на которую вешается обработчик открытия формы справочника
17 1dvd
 
05.11.13
09:55
остальные вопросы
18 shlyahtich
 
05.11.13
09:56
из внешней обработки открывается форма списка / выбора с отбором по данному объекту
19 1dvd
 
05.11.13
09:56
(16) тебе нужно в открытой форме выбора справочника Хранилище получить Форму документа?
20 shlyahtich
 
05.11.13
09:56
Нужно получить Форму документа
21 1dvd
 
05.11.13
09:57
ну, наконец-то
22 shlyahtich
 
05.11.13
09:57
(19) lf
23 shlyahtich
 
05.11.13
09:57
да
24 Oleg_ka
 
05.11.13
10:03
(18) Молодец!
Теперь пойми, что отбор в справочнике НЕ завязан на ф_о_р_м_у документа....
Буду помогать копать с двух сторон:
Вопрос 1: А что же происходит при нажатии на кнопку в той форме?
Вопрос 2: А на что завязан отбор в справочнике?
25 1dvd
 
05.11.13
10:03
(23) я не знаю как в Российских конфах, а в наших для таких дел используются внешние обработки заполнения ТЧ
26 shlyahtich
 
05.11.13
10:11
вобщем я сделал так вот - это не совсем верно но работает ща пришлю код. Суть в том что благодаря такой обработке и еще тому что я добавил
27 shlyahtich
 
05.11.13
10:12
<code
Функция Печать() Экспорт
    ЭтаФорма = СсылкаНаОбъект.ПолучитьФорму("ФормаДокумента",,);
    ОткрытьХранилищеДополнительнойИнформации(СсылкаНаОбъект,ЭтаФорма);
    УниверсальныеМеханизмы.НапечататьДокумент(, 0, Ложь, );

КонецФункции

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

    ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Использование                       = Истина;
    ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Значение                            = Ссылка;
    ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.НастройкаОтбора.Объект.Доступность = Ложь;
    ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.Колонки.Объект.Видимость           = Ложь;

    ФормаФайлов.СсылкаНаФайл.Отбор.Объект.Использование                       = Истина;
    ФормаФайлов.СсылкаНаФайл.Отбор.Объект.Значение                            = Ссылка;
    ФормаФайлов.ЭлементыФормы.СсылкаНаФайл.НастройкаОтбора.Объект.Доступность = Ложь;
    ФормаФайлов.ЭлементыФормы.СсылкаНаФайл.Колонки.Объект.Видимость           = Ложь;
    
    ОбязательныеОтборы = Новый Структура;
    ОбязательныеОтборы.Вставить("Объект",Ссылка);

    ФормаФайлов.ОбязательныеОтборы = ОбязательныеОтборы;
    
    ФормаФайлов.Открыть();
    
КонецПроцедуры    
code>
28 Dmitry1c
 
05.11.13
10:13
<code

тест

code>
29 Dmitry1c
 
05.11.13
10:13
wwtf
30 shlyahtich
 
05.11.13
10:30
(28)(29) переведи на русский
31 1dvd
 
05.11.13
10:30
-
-
32 1dvd
 
05.11.13
10:31
[ 1 C ]
[ / 1 C ]
33 1dvd
 
05.11.13
10:31
во, так надо. Только без пробелов
34 shlyahtich
 
05.11.13
10:36
ок - это я с другого форму по моему со скуля по привычке
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.