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 9 10.01.17 13:01 Сейчас в теме +0.1 $m
(3) Вот возьмите это Ваше. Я там постарался подробно описать действия в комментариях. Правда не совсем по Вашему ТЗ. Вопросы будут - обращайтесь.
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
x_maxim_x; +1 Ответить
9. vadim1011985 56 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 9 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 9 10.01.17 14:04 Сейчас в теме
(7) Вот так можно:
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) //на форме укажите это событие
    СохранитьНастройки(Отказ, СтандартнаяОбработка);
КонецПроцедуры

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

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

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


ПыСы: На свойтсвах формы обязательно флаг "АвтоматическоеСохранениеДанныхВНастройках" - Использовать
10. vadim1011985 56 10.01.17 14:06 Сейчас в теме
(8) можно даже код не писать )))
11. Denis_CFO 9 10.01.17 14:11 Сейчас в теме
(10) Можно и так. Пусть ТС выбирает, как ему удобно.
12. x_maxim_x 10.01.17 14:25 Сейчас в теме
(10) Нет, это я уже пробовал. С таблицей значений это не проходит.
9. vadim1011985 56 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 9 10.01.17 20:23 Сейчас в теме
(16) Спасибо. Рад, что помог. Обращайтесь.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Разработчик 1С
Москва
зарплата от 100 000 руб. до 160 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день