Имя: Пароль:
1C
1С v8
Как из документа, открыть управляемую форму этого же документа 8.3 (БП 3.0)
0 ILLUMI
 
16.12.14
15:24
Добрый день! Изучая 3.0 возник простой вопрос, который изрядно подтрепала нервишки.

Как из документа, открыть управляемую форму этого же документа, передать в нее данные, изменить их и сохранить?
Попыталась примерно изобразить:
http://trueimages.ru/img/f2/21/8f0ef845.png
Алгоритм представляю следующий:
1.Открываем документ (форма1а)
2.Заполняем реквизиты 1 и 2
3.Добавляем человека в Табл.Часть
4.Нажимаем кнопку "ФОРМАРЕДСТРОКИ"
- Должна открыться форма и в ней все должно быть заполнено.
- В нужных полях данные изменяем и нажав кнопку "ГОТОВО"сохраняем
!!!Не изменяя табличную часть.
Форму открываю


&НаКлиенте
процедура ОткрываемФорму()
СтрокаТЧ = Элементы.ДанныеЛюдей.ТекущиеДанны;
Форма1б = ПолучитьФорму("Документ.люди.форма.Форма1б");
Форма1б.Объект.Реквизит1 = Объект.Реквизит1;
Форма1б.Объект.Реквизит2 = Объект.Реквизит2;
Форма1б.Имя = СтрокаТЧ.Имя
Форма1б.Открыть();
КонецПроцедуры

Ну к примеру, она открывается, но наверное это не правильно, подскажите, как сделать лучше, правильнее :) и как внести изменения и сохранить? Что бы при повторном открытии они показались?
:)
1 DirecTwiX
 
16.12.14
15:28
Смысл манипуляции в чем?
1) Либо меня реквизиты у объекта, записывай и открывай форму
2) Либо попробуй сначала открыть форму, а потом изменить её реквизиты
2 ILLUMI
 
16.12.14
15:54
(1) ну форму отрыла, левая колонка заполнена значениями, которые передала. а в правой колонке, как сделать так, что бы при изменении реквизитов, данные в Форма1б сохранились?
(дальше планирую запись измененных данных в регистр)
3 ILLUMI
 
16.12.14
16:01
(1) и, да, дело в том, что в Форма1а реквизиты не должны меняться. Они должны измениться только в правой колонке Форма1б.
4 Krolik Bezobraznik
 
16.12.14
16:56
В зачем открывать форму редактирования строки ТЧ? Нельзя ли в форме документа редактировать строку ТЧ?
5 ILLUMI
 
16.12.14
17:45
(4) такого условие, что внешний вид данных в ТЧ НЕ ИЗМЕННЫ, формаРедСтроки, как раз для поправок, которые  при определённых условиях ложатся в нужные регистры :)
6 Garykom
 
гуру
16.12.14
17:49
(5) но все равно непонятно почему бы не писать сразу в документ вместо изменять на форме?
7 Garykom
 
гуру
16.12.14
17:50
Уточнить что за документ можно?
8 ILLUMI
 
16.12.14
17:57
(7) Документ "ПеремещениеОС"
9 ILLUMI
 
16.12.14
18:06
Может быть логика выполнения задачи не внятно поставлена. Уточню, упрощу.
ФормаА - Реквизиты формы, ТЧ.
ФормаБ - РеквизитыФормы (в две группы ДО И ПОСЛЕ), реквизиты созданы на самой управляемой форме.
При вызове Из формыА - управляемую формуБ, Данные ТЧ и Данные реквизитов формыА должны попасть на формуБ в группу  ДО (она без ТЧ) а группа после (пустая).
Заполняем реквизиты формыБ, группа после. Сохраняем.
ВСЕ.
10 banco
 
16.12.14
20:40
(9)  в той же БП 3.0 полно таких примеров, посмотри как сделано
11 ILLUMI
 
17.12.14
16:59
Ребята, в 2.0 БП такой код работает на ура, а в 3.0 ругается на данныеформыколлекций, как правильно написать?

Процедура ОСВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    Если ЭлементыФормы.КоманднаяПанельОС.Кнопки.РедактированиеВДиалоге.Пометка Тогда
        
        Отказ = Истина;
        
        Форма = ДокументОбъект.ПолучитьФорму("ФормаРедактированияСтроки", Элемент, "Документ_ПеремещениеОС_ФормаРедактированияСтроки_" + СокрЛП(Элемент.ТекущиеДанные.НомерСтроки));
        
        Форма.ДокументОбъект = ДокументОбъект;
        Форма.ТекущиеДанные  = Элемент.ТекущиеДанные;
        
        Форма.Открыть();
        
    КонецЕсли;
    
КонецПроцедуры
12 ILLUMI
 
17.12.14
17:00
ну плюс понятное дело, что получить форму надо так
ПолучитьФорму("Документ.ДОК.Форма.ФормаредСтроки

А что делать с ДокументОбъект?
13 ILLUMI
 
24.12.14
02:21
Ок. Ребят. Задачу для решения переформулировала, убедила.
Вопрос.
Из формы-А с табличной частью, открываю форму-Б с реквизитами формы, и передаю данные из ТЧ Формы-А в реквизиты Формы-Б.
На форме-Б изменяю данные и вопрос - Как загнать данные из формы-Б (из реквизитов) в форму-А (табличную часть)?
8.3 - УФ.
1. Через оповещение? ПОдскажите, как?
На форме-Б изменила реквизит "Фамилия"
Процедура ПриНажатииОК(Команда)
Оповестить("ПередачаДАнных",ФАмилия,ЭтаФорма);
КонецПроцедуры

2. А что писать в форме-А? Ребят, все обучение на месте топчется из-за этой проблемы, скоро косы повыдергиваю ;)

3. А если я на ФОрме-Б меня 10 реквизитов и более? Как их через оповещение передать?
14 ILLUMI
 
24.12.14
03:00
Ребята, все вопросы закрыты кроме одного.

3. А если я на ФОрме-Б меня 10 реквизитов и более? Как их через оповещение передать?
15 Любопытная
 
24.12.14
05:18
(14) в структуру собрать конечно жк
16 ILLUMI
 
24.12.14
05:46
(15) Ок, а если у меня на формеА в ТЧ несколько строк, как указать, что только текущую нужно изменить?
17 Oleg_ka
 
24.12.14
05:50
Наверное через ТекущиеДанные()
18 Oleg_ka
 
24.12.14
05:53
У Вас же прямо в первом сообщении написано
СтрокаТЧ = Элементы.ДанныеЛюдей.ТекущиеДанны;
19 ILLUMI
 
24.12.14
06:12
(18) Это да, открыла форму строки по текущим данным, а вот записать не могу. Точнее не могу сообразить где и как код написать, записывать мне фамилии у всех кто в ТЧ находится =D
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший