Перейти к содержимому


Немного не понемаю ОБъясните ПЛЗ


Сообщений в теме: 9

#1 Мор

    Прохожий


  • 10 сообщений

Отправлено 21 февраля 2012 - 23:55

Подскажите плз!!!
Сдел внешнюю печатную форму , работает как надо проблема встала когда пришлось прикрутить на форму документа кнопку , что бы формировалась печать по моей ВПФ
Делаю так :
Процедура Кнопка Нажатие(Элемент)
ВнешняяОбработка=ВнешниеОбработки.Создать("C:\Documents and Settings\Рабочий\ ВПФ.epf");
ВнешняяОбработка.Печать();
КонецПроцедуры
Процедура Печать() - это (экспорт) функция моей ВПФ там запрос , только в него не чего не поподает(( и в следствии не проходит по условию дальше .Ну а если получаю через кнопку форму ВПФ : ВнешняяОбработка.ПолучитьФорму().Открыть(); или напрямую через файл, все поподает в запрос как надо .Почему так присходит хотелось бы знать и что же делать?

Сообщение отредактировал Мор: 21 февраля 2012 - 23:57


#2 Fart

    Активист


  • 377 сообщений

Отправлено 22 февраля 2012 - 01:41

А в обработчике при(перед) открытии формы обработки никакие переменные связанные с запросом не инициализируются?

Сообщение отредактировал Fart: 22 февраля 2012 - 01:41


#3 1cUserAndrew

    Ветеран


  • 2 692 сообщений

Отправлено 22 февраля 2012 - 07:08

Не понял, а зачем для ВПФ кнопку на форме документа создавать. ВПФ - они ведь подключаются через меню Сервис - Дополнительные обработки...
Как приятно знать, что ты что-то узнал!

#4 Мор

    Прохожий


  • 10 сообщений

Отправлено 22 февраля 2012 - 08:45

Просмотр сообщенияFart (22 февраля 2012 - 01:41) писал:

А в обработчике при(перед) открытии формы обработки никакие переменные связанные с запросом не инициализируются?
Нет . Подключаю как норм ВПФ работает.

Просмотр сообщения1cUserAndrew (22 февраля 2012 - 07:08) писал:

Не понял, а зачем для ВПФ кнопку на форме документа создавать. ВПФ - они ведь подключаются через меню Сервис - Дополнительные обработки...
Ну вот такой слчай ,эта кнопка далее при конкретном условии должна становиться недоступной.

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

Выборка   = Запрос.Выполнить();
Результат = Выборка.Выбрать();
Пока Результат.Следующий() Цикл
	//Задача№1		  
	Если  Выборка.Группа1 = Строка("Услуги 1С")Или  Выборка.Группа2 = Строка("Услуги 1С")
		Тогда
		НашДок=ПечатьАнкетаУстановкаПП();



Сообщение отредактировал Мор: 22 февраля 2012 - 08:46


#5 Мор

    Прохожий


  • 10 сообщений

Отправлено 22 февраля 2012 - 10:25

Распишу поподробней:
Есть ВПФ в ней прописаны функции.
Функция Печать()Экспорт - вней тот самый запрос каторый работает и как при открытии на прямую и как при подключении ее как внешнию.
функция ПечатьАнкетаУстановкаПП()Экспорт - вней заполняется макет....(ну до етого пока не доходит)
Делаю дополнительную кнопку прописываю код:
ВнешняяОбработка=ВнешниеОбработки.Создать("C:\Documents and Settings\Рабочий\ ВПФ.epf");
ВнешняяОбработка.Печать();
Отладчиком смотрю проходит по запросу но нечего не возращает.
При попытке изменить параметр
Запрос.УстановитьПараметр("ТекущийДокумент",СсылкаНаОбъект.Ссылка);
на
Запрос.УстановитьПараметр("ТекущийДокумент",ЭтотОбъект);
не проходит


#6 1cUserAndrew

    Ветеран


  • 2 692 сообщений

Отправлено 22 февраля 2012 - 10:37

По проблеме сказать ничего не могу...
Продолжу отговаривать Вас от кнопки :smile:
Какой смысл от внешней обработки, если все равно приходится вносить изменения в конфигурацию?
Как я понял, при определенном условии Вам надо, чтобы не было возможности напечатать документ, так?
Это можно сделать, если вставить это условие прямо внутрь функции Печать() Экспорт.
При выполнении условия пишите
Возврат Неопределено;
Ну и сообщение пользователю, почему отказываемся печатать.
Иначе - код формирования процедуры, и в конце как обычно
Возврат ТабДокумент;

Сообщение отредактировал 1cUserAndrew: 22 февраля 2012 - 10:40

Как приятно знать, что ты что-то узнал!

#7 1cUserAndrew

    Ветеран


  • 2 692 сообщений

Отправлено 22 февраля 2012 - 10:46

Просмотр сообщения1cUserAndrew (22 февраля 2012 - 10:37) писал:

Иначе - код формирования процедуры
В смысле, код формирования печатной формы ))
Ну вы поняли :-))
Как приятно знать, что ты что-то узнал!

#8 uza

    1С, VBA (EXCEL), VB (.NET + WEB)


  • 1 338 сообщений

Отправлено 22 февраля 2012 - 10:48

Fart уже наталкивал вас на мысль.
Когда вы открываете эту печать по страндартному пути, то
Запрос.УстановитьПараметр("ТекущийДокумент",ЭтотОбъект);
Работает. Т.к. в реквизитах обработки есть этот ЭтотОбъект, и к моменту формирования запроса он УЖЕ инициализирован (!= Неопределено)

А вот когда вы инициализируете обрботку из другой обработки - этот параметр остается не инициализированным.

Нужно как то так наверное
ВнешняяОбработка=ВнешниеОбработки.Создать("C:\Documents and Settings\Рабочий\ ВПФ.epf");
ВнешняяОбработка.ЭтотОбъект = ...;
ВнешняяОбработка.Печать();

Ну или как то так.


Против кнопки отговаривать не буду. Ибо действительно иногда нужна отдельная кнопка, аналог "Большой Красной Кнопки". И если она не будет работать, то логичнее ее делать недоступной, чтобы юзер не обламывался воспылав надеждами.

т.е. в ряде случаев указанный подход оправдан.

Сообщение отредактировал uza: 22 февраля 2012 - 10:51

Не все полезно - что в БД залезло

#9 1cUserAndrew

    Ветеран


  • 2 692 сообщений

Отправлено 22 февраля 2012 - 11:03

Просмотр сообщенияuza (22 февраля 2012 - 10:48) писал:

не обламывался воспылав надеждами.
:icon_daumenhoch:

Поэтично ))

Ну если с этой целью, тогда да..:)))
Как приятно знать, что ты что-то узнал!

#10 Мор

    Прохожий


  • 10 сообщений

Отправлено 22 февраля 2012 - 11:07

Буду пробывать спс






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных