Имя: Пароль:
1C
1С v8
И снова про передачу данных из формы.
0 ArturR
 
07.04.12
00:56
Здрасте!
Пересмотрел все что нашел по форуму по данной теме. Однако так и понял как сделать, просто и без путей окольных.
Итак. Все просто:
1. Есть документ "Приход" и его форма на которой есть кнопка "НовоеИзделие".
2. По кнопочке "НовоеИзделие" открывается форма элемента справочника "Изделия", для создания нового изделия.
3. В форме справочника "Изделие" создали новое изделие.
Требуется:
После того как в форме справочника "Изделие" создали новое изделие и нажали кнопку "ЗАПИСАТЬ" в табличную часть документа "Приход" была добавлена строка с только что созданным новым изделием.

Открываю форму так:  

НовоеИзделие = Справочники.Изделие;
Форма = НовоеИзделие.ПолучитьФормуНовогоЭлемента("ВводНовогоЭлемента");
Форма.Открыть();
1 le_
 
07.04.12
01:00
Форму выбора открывай.
В ней добавляешь новый элемент и нажимаешь кнопку "Выбрать".
2 jsmith
 
07.04.12
01:03
(1) тема убита одним выстрелом. как жена, дети?
3 GROOVY
 
07.04.12
01:03
(0) Все не так.

В форме документа открывай форму через метод глобального контекста (!) ОткрытьФорму(). В метод передавай владельца (форму документа, ЭтаФОрма).

В форме элемента которая открывается опиши процедуру которая будет вызываться при нажатии кнопки "Ок", ну ясно что она будет не стандартной. В ней записывай элемент, ссылку передавай в форму-владелец в экспортную процедуру модуля формы как параметр.
4 GROOVY
 
07.04.12
01:04
+3 хм... наверно можно и в событии "ПослеЗаписи" (она на клиенте есть?) передать ссылку...
5 ArturR
 
07.04.12
01:06
(1) Не, я думаю так пойдет. В смысле, что сделать так можно, придется искать только что созданные изделия и велика возможность ошибки. Более того есть необходимость использовать форму создания нового элемента не единожды, а для создания нескольких похожих изделий только с разными серийными номерами, т.е. нажимать кнопку "ЗАПИСАТЬ", а не "ОК"
6 ArturR
 
07.04.12
01:09
Может кто код подкинет? Если не затруднит.
7 ArturR
 
07.04.12
01:16
Где специалисты? Спят что ли? Идей нет больше?
8 GROOVY
 
07.04.12
01:20
Я тебе в (3) расписал все... Кода там 10 строчек... Не ленись!
9 jsmith
 
07.04.12
01:24
а нахрена такая муть не детская
что мешает сделать создать новый элемент через форму выбора
тупость пользователей?
10 ArturR
 
07.04.12
01:26
(9) Именно тупость. Свести к минимуму тыканье мышой пользователя
11 ArturR
 
07.04.12
01:31
(3) (8) попробую
12 vmv
 
07.04.12
01:56
(10) это не тупость - эдо здравый рационализм типичного пользователя. к сожалению слищком большая гибкость и варинты действий, чаще минус 1С с точки зрения радового пользовтеля и в этом я их поддерживаю, затавая формы на единствинный вариант действий
13 ArturR
 
07.04.12
11:17
Уважаемый GROOVY а нельзя ли поподробнее описать (3)...
тока не ругай сильно
14 ArturR
 
07.04.12
11:19
В метод передавай владельца (форму документа, ЭтаФОрма).

этот кусок в частности
15 GROOVY
 
07.04.12
13:33
ОткрытьФорму("ТУТУИМЯФОРМЫ", ТУТПАРАМЕТРЫ, ЭтаФорма);

Вроде так.
16 GROOVY
 
07.04.12
13:55
17 ArturR
 
07.04.12
14:39
(16) А для какой версии эта выгрузка, что-то я в 8.1.11.67 и в 8.2.8.256 пробовал,
"Неверный формат данных для загрузки информационной базы" пишет мне
18 Юрий Лазаренко
 
07.04.12
14:41
(0) При записи нового элемента вызывай Оповестить, а в форме документа отлавливай оповещение и добавляй строку.
19 ArturR
 
07.04.12
14:43
(18) Ну-ка, ну-ка поподробнее про это. Где-то мне такое на глаза попадалось.
20 GROOVY
 
07.04.12
14:46
(17) 8,2,15,301
21 ArturR
 
07.04.12
14:49
(20) М-да. Ты реально круче! Неужели так разятся версии, что у меня уже не понимает?
22 ArturR
 
07.04.12
14:50
(16) А что там было-то хоть?
23 GROOVY
 
07.04.12
14:51
Могу выгрузить в режиме совместимости 8.2.13, не уверен что тебе поможет :)
24 GROOVY
 
07.04.12
14:52
(22) 2 формы, в первой кнопка, открывающая форму нового элемента. Во второй при записи элемента передается ссылка на него в первую форму и там добавляется строка в ТЧ.
25 GROOVY
 
07.04.12
14:53
(22) Постевь себе свежую учетную версию и глянь: http://1c-dn.com/files/1c_new.zip
26 ArturR
 
07.04.12
14:53
(24) А-А-А-А! Хочу!!!!! Давай попробуй, хоть что-нить!
27 GROOVY
 
07.04.12
14:56
1. Скачай платформу: http://1c-dn.com/files/1c_new.zip
2. Установи ее
3. Создай пустую базу
4. Загрузи в нее http://narod.ru/disk/45433303001.c811a82698fe72efaeca6930651a65d0/1Cv8.dt.html
5. Открой модули форм (их там всего две).
28 ArturR
 
07.04.12
14:56
(22) (27) Ща скачаю, гляну. Качать 30 минут будет. Там свистну. Может пока код из модулей скинь? А? Не бросай меня, а? Может по коду разберусь, пока качать будет...
29 ArturR
 
07.04.12
14:58
(25) (27) За ссылку на версию свежую отдельное спасибо
30 GROOVY
 
07.04.12
14:59
Форма документа:


&НаКлиенте
Процедура НовыйТовар(Команда)
   ОткрытьФОрму("Справочник.Номенклатура.Форма.ФормаНовогоЭлемента",, ЭтаФорма);
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьТовар(Ссылка) Экспорт
   Стр = Объект.ТабличнаяЧасть.Добавить();
   Стр.Номенклатура = Ссылка;
КонецПроцедуры


Форма элемента справочника:

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
   ВладелецФормы.ОбработатьТовар(Объект.Ссылка);
КонецПроцедуры
31 ArturR
 
07.04.12
15:02
Пока можно вопрос такой.
Когда я осваивал семерку мне очень помог некий сборник всяких примеров, сделанных в виде внешних обработках. Маленькие такие примеры, но очень нужная в хозяйстве вещь скажу я вам.
Так вот не встречалась ли тебе такой вот сборник маленьких примеров, но для восьмерки?
32 ArturR
 
07.04.12
15:02
(30)Спасибо, ща попробую разобраться...
33 GROOVY
 
07.04.12
15:03
34 ArturR
 
07.04.12
15:08
(33) Да ну?! Видел книжки эти, но не читал и даже не просматривал. Думал не подойдет мне. Но раз такой совет дал, абавязкова гляну. Спасибо.
35 ArturR
 
07.04.12
21:25
Сделано.
Вот мой код, может пригодится кому.
Итак в модуле формы документа:

Процедура КоманднаяПанель1НовоеИзделие(Кнопка)
   ОткрытьФорму("Справочник.Изделие.Форма.Элемент",,ЭтаФорма);
КонецПроцедуры

Процедура ОбработатьТовар(Ссылка) Экспорт
   ЭлементыФормы.Изделие.ДобавитьСтроку();
   СтрокаТабличнойЧасти = ЭлементыФормы.Изделие.ТекущиеДанные;
   СтрокаТабличнойЧасти.Изделие = Ссылка;    
КонецПроцедуры

В модуле формы Справочника

Процедура ПриЗаписи(Отказ)
ВладелецФормы.ОбработатьТовар(Ссылка);
КонецПроцедуры

Спасибо GROOVY, за предоставленный код и помощь.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн