Передача данных между формами одной обработки

1. Максим Ломакин (x_maxim_x) 10.01.17 09:11 Сейчас в теме
Добрый день!
Подскажите пожалуйста: создал внешнюю обработку с несколькими формами, из главной формы по кнопке "Создать" должна вызываться дополнительная форма обработки, в ней выбираются значения реквизитов, по кнопкам "Записать..." данные должны сохраниться в основной форме в таблице значений.
При нажатии кнопки изменить должна открыться дополнительная форма с сохраненным ранее значением.
Открытие окна дополнительной формы по нажатию кнопки "Создать" я сделал, но почему то окно открывается с именем основной формы, а не со своим и что делать далее я не знаю.

Только изучаю программирование на 1С поэтому очень прошу показать как это сделать на приложенном мной примере.
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
Вознаграждение за ответ
Показать полностью
Найденные решения
2. antz Петров (antz) 10.01.17 10:40 Сейчас в теме
Вот.
Прикрепленные файлы:
5. Денис Ан (Denis_CFO) 6 10.01.17 13:01 Сейчас в теме +0.1 $m
(3) Вот возьмите это Ваше. Я там постарался подробно описать действия в комментариях. Правда не совсем по Вашему ТЗ. Вопросы будут - обращайтесь.
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
9. Вадим Мориков (vadim1011985) 42 10.01.17 14:05 Сейчас в теме
(7)
1) При редактировании через доп. параметры формы передавайте значение текущей строки в доп. форму

2) В свойствах формы свойство - АвтоматичнескоеСохранениеДанныхВНастройках. После чего в правом окне (реквизиты) появится колонка "сохранение" напротив нужных реквизитов ставите галочки и все будет сохранятся

13. Антон Гвоздикин (Ганс) 10.01.17 14:27 Сейчас в теме
Посмотри это
По кнопке "изменить", подставляется нужное значение во вторую форму?
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
Остальные ответы
2. antz Петров (antz) 10.01.17 10:40 Сейчас в теме
Вот.
Прикрепленные файлы:
3. Максим Ломакин (x_maxim_x) 10.01.17 10:55 Сейчас в теме
(2) Да, с заголовком понятно. Спасибо. Как быть с данными?
4. Антон Гвоздикин (Ганс) 10.01.17 11:16 Сейчас в теме
В подчинённой форме:

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

Если вы хотите открыть форму с заполненным реквизитом "Поставщик" то надо его добавить в структуру, которую вы передаёте в ОткрытьФорму(ПолучитьПолноеИмяФормы("КонфигурацияПоставщика"), ПараметрыФормы, ЭтаФорма);

что-то типа того:
ПараметрыФормы = Новый Структура();
ПараметрыФормы.вставить("Поставщик", ПоставщиквыбранойСтроки);
ОткрытьФорму(ПолучитьПолноеИмяФормы("КонфигурацияПоставщика"), ПараметрыФормы, ЭтаФорма);
5. Денис Ан (Denis_CFO) 6 10.01.17 13:01 Сейчас в теме +0.1 $m
(3) Вот возьмите это Ваше. Я там постарался подробно описать действия в комментариях. Правда не совсем по Вашему ТЗ. Вопросы будут - обращайтесь.
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
6. Максим Ломакин (x_maxim_x) 10.01.17 13:14 Сейчас в теме
(4) Записать получается, открыть форму с заполненным реквизитом не выходит.
7. Максим Ломакин (x_maxim_x) 10.01.17 13:43 Сейчас в теме
(5) У Вас более продумано - при редактировании происходит именно изменение поля, но при редактировании в дополнительной форме все же поле "Поставщик" не заполнено
И еще вопрос: как сохранить данные в таблице значений при закрытии основной формы?
Я по этому вопросу вот здесь http://forum.infostart.ru/forum9/topic53814/ читаю, но если честно пока никак не соображу как это к моей таблице привязать.
8. Денис Ан (Denis_CFO) 6 10.01.17 14:04 Сейчас в теме
(7) Вот так можно:
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) //на форме укажите это событие
    СохранитьНастройки(Отказ, СтандартнаяОбработка);
КонецПроцедуры

&НаСервере
Процедура СохранитьНастройки(Отказ, СтандартнаяОбработка) Экспорт
    НастройкиСохранения = Новый Структура("ТаблицаКонфигураций", ЗначениеВСтрокуВнутр(ТаблицаКонфигураций.Выгрузить()));
    ХранилищеНастроекДанныхФорм.Сохранить("ЭтаФорма.ТаблицаКонфигураций", "ТаблицаКонфигураций", НастройкиСохранения);
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //на форме укажите это событие
	ЗагрузитьНастройки();
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьНастройки()
    НастройкиВосстановления = ХранилищеНастроекДанныхФорм.Загрузить("ЭтаФорма.ТаблицаКонфигураций", "ТаблицаКонфигураций");
    Попытка
        ТаблицаКонфигураций.Загрузить(ЗначениеИзСтрокиВнутр(НастройкиВосстановления["ТаблицаКонфигураций"]))
    Исключение
    КонецПопытки;
КонецПроцедуры
...Показать Скрыть


ПыСы: На свойтсвах формы обязательно флаг "АвтоматическоеСохранениеДанныхВНастройках" - Использовать
9. Вадим Мориков (vadim1011985) 42 10.01.17 14:05 Сейчас в теме
(7)
1) При редактировании через доп. параметры формы передавайте значение текущей строки в доп. форму

2) В свойствах формы свойство - АвтоматичнескоеСохранениеДанныхВНастройках. После чего в правом окне (реквизиты) появится колонка "сохранение" напротив нужных реквизитов ставите галочки и все будет сохранятся

10. Вадим Мориков (vadim1011985) 42 10.01.17 14:06 Сейчас в теме
(8) можно даже код не писать )))
11. Денис Ан (Denis_CFO) 6 10.01.17 14:11 Сейчас в теме
(10) Можно и так. Пусть ТС выбирает, как ему удобно.
12. Максим Ломакин (x_maxim_x) 10.01.17 14:25 Сейчас в теме
(10) Нет, это я уже пробовал. С таблицей значений это не проходит.
13. Антон Гвоздикин (Ганс) 10.01.17 14:27 Сейчас в теме
Посмотри это
По кнопке "изменить", подставляется нужное значение во вторую форму?
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
14. Максим Ломакин (x_maxim_x) 10.01.17 14:35 Сейчас в теме
(13) Да спасибо - так поле заполняется.
Вот этого кода не хватало в доп. форме
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Параметры.Свойство("Поставщик") Тогда  		
		Поставщик = Параметры.Поставщик; 
	КонецЕсли;
КонецПроцедуры
...Показать Скрыть


Теперь совмещу с тем, что Денис прислал и будет то, что нужно. Спасибо Вам огромное!

Еще сохранение данных предложенное Денисом не пробовал.
15. Максим Ломакин (x_maxim_x) 10.01.17 15:56 Сейчас в теме
(9) По автосохранению Вы верно написали это я не там галочки ставил. Спасибо.
16. Максим Ломакин (x_maxim_x) 10.01.17 20:17 Сейчас в теме
(14) Для тех кто будет интересоваться данной темой:
Самый хороший и правильный вариант (5). Только там создание и редактирование сделано на одной кнопке (поделить несложно) и во вторую форму нужно добавить следующий код:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Поставщик = ОписаниеОповещенияОЗакрытии.ДополнительныеПараметры.ПоставщикПерваяФорма;
КонецПроцедуры
...Показать Скрыть
17. Денис Ан (Denis_CFO) 6 10.01.17 20:23 Сейчас в теме
(16) Спасибо. Рад, что помог. Обращайтесь.
Оставьте свое сообщение