Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Класс "Форма" (число прочтений - 4399 )
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Класс "Форма"
31. Марта 2008 :: 13:09
Печать  
Сделал внешний отчет, который должен открываться как форма.
Сделал этот отчет классом (1С++)
Как мне форму запустить, до этого в классах только процедуры и функции использовал.

DefCls.prm
//#include Classes\Podbor.prm


Podbor.prm
класс ПодборТов  =  podbor\tov\tov.ert
{

};
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "Форма"
Ответ #1 - 31. Марта 2008 :: 13:13
Печать  
Bagirius писал(а) 31. Марта 2008 :: 13:09:
Сделал внешний отчет, который должен открываться как форма.

Отлично.

Цитата:
Сделал этот отчет классом (1С++)

Зачем?

Цитата:
Как мне форму запустить

ОткрытьФорму()
  
Наверх
www  
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Класс "Форма"
Ответ #2 - 31. Марта 2008 :: 13:26
Печать  
Если делать ОткрытьФорму(..ВнешнийОтчет...), то не всегда этот отчет открывается, бывает ошибка, типо ошибка создания отчета (редко, но бывает).
А классы, на сколько я знаю, при старте 1С создаются, значит вызываются быстрее.

Делаю Так:
ПодборТов = СоздатьОбъект("ПодборТов"); //Это мой класс - Форма

Как открыть форму?

ОткрытьФорму(ПодборТов) - не пашет, само-собой.
  
Наверх
ICQ  
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Класс "Форма"
Ответ #3 - 31. Марта 2008 :: 14:02
Печать  
Суть такова, мне надо открыть подбор из внешнего отчета


ОткрытьПодбор()

Как мне открыть подбор, форма подбора - это внешний отчет
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "Форма"
Ответ #4 - 31. Марта 2008 :: 14:13
Печать  
У класса нет формы. Класс это данные и методы для работы с этими данными.

"Ошибка создания отчета" - скорее всего у тебя обработка во внешнем файле. И ошибка возникает при совместном доступе пользователей к нему. Попробуй поиспользовать обработку из состава конфигурации.

P.S. А у классов формы нет.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "Форма"
Ответ #5 - 31. Марта 2008 :: 14:13
Печать  
Bagirius писал(а) 31. Марта 2008 :: 13:26:
А классы, на сколько я знаю, при старте 1С создаются, значит вызываются быстрее.

Полная чушь.
  
Наверх
www  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "Форма"
Ответ #6 - 31. Марта 2008 :: 14:21
Печать  
Если я тебя правильно понял, то можно сделать так (в модуле класса):
Код
Выбрать все
Процедура Открыть(фМодально=0) Экспорт
	стрПуть=Сам(Контекст).ПолучитьПуть();
	спПараметры=СоздатьОбъект("СписокЗначений");
	спПараметры.Установить("ТвойКласс", Сам(Контекст)); //Контекст
	Если Прав(стрПуть, 3)="@MD" Тогда
		Если фМодально=0 Тогда
			ОткрытьФорму		("Обработка."+СтрЗаменить(стрПуть, "@MD", ""), спПараметры);
		Иначе
			ОткрытьФормуМодально("Обработка."+СтрЗаменить(стрПуть, "@MD", ""), спПараметры);
		КонецЕсли;
	    
	Иначе
		Если фМодально=0 Тогда
			ОткрытьФорму		("Обработка.ИмяОбраюотки", спПараметры);
		Иначе
			ОткрытьФормуМодально("Обработка.ИмяОбработки", спПараметры);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
//--------------------------------------------


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

(с) noprogrammer

А вообще Федор правильно заметил. Если у тебя этот "класс" используется только для визуального подбора товара, то лучше сделать обычный отчет/обработку
  
Наверх
 
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Класс "Форма"
Ответ #7 - 31. Марта 2008 :: 14:33
Печать  
JohnyDeath писал(а) 31. Марта 2008 :: 14:21:
А вообще Федор правильно заметил. Если у тебя этот "класс" используется только для визуального подбора товара, то лучше сделать обычный отчет/обработку


С классам я понял, что с ним не получится, но я бы хотел отчет/обработку хранить во внешнем файле, т.к. внешний отчет проще обновлять, не надо md обновлять.

Как мне вызвать подбор этим внешним отчетом?
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "Форма"
Ответ #8 - 31. Марта 2008 :: 14:38
Печать  
Bagirius писал(а) 31. Марта 2008 :: 14:33:
Как мне вызвать подбор этим внешним отчетом?

А в чем проблема-то?
  
Наверх
 
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Класс "Форма"
Ответ #9 - 31. Марта 2008 :: 14:44
Печать  
JohnyDeath писал(а) 31. Марта 2008 :: 14:38:
Bagirius писал(а) 31. Марта 2008 :: 14:33:
Как мне вызвать подбор этим внешним отчетом?

А в чем проблема-то?


Туплю, не могу реализовать Улыбка
  
Наверх
ICQ  
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Класс "Форма"
Ответ #10 - 31. Марта 2008 :: 14:52
Печать  
надо что-то типо этого

ОткрытьПодбор("Отчет",КаталогИБ() + "\ExtForms\Spr\Tov\Tov.ert",Параметры,1,);
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "Форма"
Ответ #11 - 31. Марта 2008 :: 14:58
Печать  
Ну а чем
Код
Выбрать все
ОткрытьФорму("Отчет",Параметры,КаталогИБ() + "\ExtForms\Spr\Tov\Tov.ert"); 


не нравится?
  
Наверх
 
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Класс "Форма"
Ответ #12 - 31. Марта 2008 :: 15:13
Печать  
JohnyDeath писал(а) 31. Марта 2008 :: 14:58:
Ну а чем
Код
Выбрать все
ОткрытьФорму("Отчет",Параметры,КаталогИБ() + "\ExtForms\Spr\Tov\Tov.ert"); 


не нравится?


Да уж, Понедельник!!!
Передал в параметры СЗ, в котором одно из значений Контекст формы, и работает как Подбор.

Говорил же ТУПЛЮ  Улыбка

Спасибо, за помощь!!!
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать