Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Форма нового элемента справочника (число прочтений - 5326 )
EugenVitla
Junior Member
**
Отсутствует


школьнег

Сообщений: 82
Местоположение: Москва
Зарегистрирован: 21. Марта 2008
Пол: Мужской
Форма нового элемента справочника
09. Октября 2008 :: 13:34
Печать  
Даже прямо и не знаю, куда писать-то... Решаю тут задачку одну, наткнулся на грабельки...
Если я скажу 1Сине
Код
Выбрать все
	дог1 = СоздатьОбъект("Справочник.Договоры");
	дог2 = СоздатьОбъект("Справочник.Договоры");
	дог1.Новый();
	дог2.Новый(); 


то она все поймет правильно и нормально. И доступ к реквизитам (программный) будет нормальным...
А вот форму этих элементов я никак нормально увидеть не смогу. И юзеру показать тоже. А надо бы... Как?
Призадумался я... И единственный вариант, который надумал - отдавать контекст свежесозданного элемента в какую-нить обработку, которая продублирует элементы диалога формы элемента справочника, да корректно контекст этого самого элемента вернет по нажатию пимпы "Ок"...
Но это ж извращение полное  Плачущий

Можно тут что-то сделать?
  
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #1 - 09. Октября 2008 :: 13:45
Печать  
Читай про стандартный метод 1с "ОткрытьФорму"
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #2 - 09. Октября 2008 :: 13:48
Печать  
Цитата:
ОткрытьФорму(<?>,,,,)
Синтаксис:
лементВладелец>)
Назначение:
Открывает визуальную форму ввода нового элемента справочника
Возвращает:
1 - если действие выполнено, 0 - иначе.
Параметры:
<ОписательОбъекта> - Строковое выражение. ''Элемент.ХХХХХ'', где ХХХХХ - вид справочника;
<КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. После исполнения данного метода система вернет в данную переменную контекст открытой формы (необязателен);
<ГруппаРодитель> - необязательный параметр. Выражение типа ''справочник'', задающее родительскую группу для открытия формы ввода нового элемента (группы) справочника.
<ФлагГруппы> - необязательный параметр. Числовое выражение, задающее форму ввода нового элемента (группы) справочника: 1 - ввод новой группы, 0 - ввод нового элемента. По умолчанию - 0.
<ЭлементВладелец> - необязательный параметр. Выражение типа ''справочник'', задающее элемент справочника-владельца для открытия формы ввода нового элемента (группы) подчиненного справочника.
Замечание:
Пока форма открыта, тип значения параметра <КонтекстФормы> равен 100, когда закрыта - 0.


А TurboBL даст доступ к реквизитам и даже методам открытой формы.
  
Наверх
www  
IP записан
 
EugenVitla
Junior Member
**
Отсутствует


школьнег

Сообщений: 82
Местоположение: Москва
Зарегистрирован: 21. Марта 2008
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #3 - 09. Октября 2008 :: 14:13
Печать  
Код
Выбрать все
	конт1 = ""; конт2 = "";

	ОткрытьФорму("Элемент.Контрагенты#", конт1);
	конт1.Наименование = "1";
	конт1.Форма.Обновить(0);

	ОткрытьФорму("Элемент.Контрагенты#", конт2);
	конт2.Наименование = "2";
	конт2.Форма.Обновить(0);
 


имею ОДНУ форму нового элемента. причем наименование будет "2". скушно Печаль
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #4 - 09. Октября 2008 :: 14:21
Печать  
более одной формы нового элемента справочника одного вида, равно как и документа, в семерке открыть невозможно.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #5 - 09. Октября 2008 :: 14:25
Печать  
EugenVitla писал(а) 09. Октября 2008 :: 14:13:
имею ОДНУ форму нового элемента. причем наименование будет "2". скушно Печаль

да, все так и есть. Печаль
Второй вызов ОткрытьФорму() активизирует уже открытую форму нового и в конт2 возвращает конт1.
Можешь проверить, что конт1=конт2
  

1&&2&&3
Наверх
 
IP записан
 
EugenVitla
Junior Member
**
Отсутствует


школьнег

Сообщений: 82
Местоположение: Москва
Зарегистрирован: 21. Марта 2008
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #6 - 09. Октября 2008 :: 14:32
Печать  
вот именно эту траблу я и хочу порешить. ну хоть как-то Улыбка
и другого варианта, кроме как копирования формы элемента в какую-то обработку, просто не вижу. но блииин, это ж так геморройно... опять-таки, дублирование кода не есть гутт...

как вариант - вынести целиком всю форму куда-то во внешнюю обработку, и при необходимости ее и вызывать, даже для стандартных нужд?
сразу думается о классе. однако как к классу присобачить визуальную форму?
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #7 - 10. Октября 2008 :: 05:26
Печать  
Способ довольно простого решения:
Элементы записываешь, открываешь их формы, для записанных элементов откроются несколько форм.

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

Например, на инфорстарте свежий пример - http://infostart.ru/blogs/631
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
EugenVitla
Junior Member
**
Отсутствует


школьнег

Сообщений: 82
Местоположение: Москва
Зарегистрирован: 21. Марта 2008
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #8 - 10. Октября 2008 :: 07:22
Печать  
короче, тем либо иным образом придется создавать паразитную нагрузку на сервер БД Улыбка

ладно, буду еще думать. тему можно (наверное) закрывать.
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #9 - 28. Октября 2008 :: 06:45
Печать  
trad писал(а) 09. Октября 2008 :: 14:21:
более одной формы нового элемента справочника одного вида, равно как и документа, в семерке открыть невозможно.

был не прав Печаль
оказывается можно http://www.forum.mista.ru/topic.php?id=369868 (пост 21)
проверил, работает.
  

1&&2&&3
Наверх
 
IP записан
 
EugenVitla
Junior Member
**
Отсутствует


школьнег

Сообщений: 82
Местоположение: Москва
Зарегистрирован: 21. Марта 2008
Пол: Мужской
Re: Форма нового элемента справочника
Ответ #10 - 28. Октября 2008 :: 08:24
Печать  
обалденный способ. я даже тут себе памятку оставлю, можно? Подмигивание
открыть несколько форм нового документа
Код
Выбрать все
ОткрытьФорму("Документ.НужныйВид",10); 


в доке
Код
Выбрать все
Процедура ВВодНового()
   Если Форма.Параметр>0 Тогда
     ОткрытьФорму("Документ."+Вид(),Форма.Параметр-1);  
   КонецЕсли;
КонецПроцедуры 

  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать