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

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

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

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

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

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

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

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


ПыСы: На свойтсвах формы обязательно флаг "АвтоматическоеСохранениеДанныхВНастройках" - Использовать
+
10. vadim1011985 99 10.01.17 14:06 Сейчас в теме
(8) можно даже код не писать )))
+
11. Denis_CFO 48 10.01.17 14:11 Сейчас в теме
(10) Можно и так. Пусть ТС выбирает, как ему удобно.
+
12. x_maxim_x 10.01.17 14:25 Сейчас в теме
(10) Нет, это я уже пробовал. С таблицей значений это не проходит.
+
9. vadim1011985 99 10.01.17 14:05 Сейчас в теме
(7)
1) При редактировании через доп. параметры формы передавайте значение текущей строки в доп. форму

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

x_maxim_x; +1
15. x_maxim_x 10.01.17 15:56 Сейчас в теме
(9) По автосохранению Вы верно написали это я не там галочки ставил. Спасибо.
+
4. Ганс 10.01.17 11:16 Сейчас в теме
В подчинённой форме:

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

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

что-то типа того:
ПараметрыФормы = Новый Структура();
ПараметрыФормы.вставить("Поставщик", ПоставщиквыбранойСтроки);
ОткрытьФорму(ПолучитьПолноеИмяФормы("КонфигурацияПоставщика"), ПараметрыФормы, ЭтаФорма);
+
6. x_maxim_x 10.01.17 13:14 Сейчас в теме
(4) Записать получается, открыть форму с заполненным реквизитом не выходит.
+
13. Ганс 10.01.17 14:27 Сейчас в теме
Посмотри это
По кнопке "изменить", подставляется нужное значение во вторую форму?
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
x_maxim_x; +1
14. x_maxim_x 10.01.17 14:35 Сейчас в теме
(13) Да спасибо - так поле заполняется.
Вот этого кода не хватало в доп. форме
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Параметры.Свойство("Поставщик") Тогда  		
		Поставщик = Параметры.Поставщик; 
	КонецЕсли;
КонецПроцедуры


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

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот