Передача данных между формами одной обработки
Добрый день!
Подскажите пожалуйста: создал внешнюю обработку с несколькими формами, из главной формы по кнопке "Создать" должна вызываться дополнительная форма обработки, в ней выбираются значения реквизитов, по кнопкам "Записать..." данные должны сохраниться в основной форме в таблице значений.
При нажатии кнопки изменить должна открыться дополнительная форма с сохраненным ранее значением.
Открытие окна дополнительной формы по нажатию кнопки "Создать" я сделал, но почему то окно открывается с именем основной формы, а не со своим и что делать далее я не знаю.
Только изучаю программирование на 1С поэтому очень прошу показать как это сделать на приложенном мной примере.
Подскажите пожалуйста: создал внешнюю обработку с несколькими формами, из главной формы по кнопке "Создать" должна вызываться дополнительная форма обработки, в ней выбираются значения реквизитов, по кнопкам "Записать..." данные должны сохраниться в основной форме в таблице значений.
При нажатии кнопки изменить должна открыться дополнительная форма с сохраненным ранее значением.
Открытие окна дополнительной формы по нажатию кнопки "Создать" я сделал, но почему то окно открывается с именем основной формы, а не со своим и что делать далее я не знаю.
Только изучаю программирование на 1С поэтому очень прошу показать как это сделать на приложенном мной примере.
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
По теме из базы знаний
- [УТ11] Интеркампани и расчет себестоимости или создание документов передачи товаров между организациями и закрытие периода
- Передача реквизитов, данных между формами (УФ)
- Обмен данными между базами 1С посредством передачи сообщений
- Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.
- Универсальный обмен данными между конфигурациями через http-сервис
Найденные решения
(3) Вот возьмите это Ваше. Я там постарался подробно описать действия в комментариях. Правда не совсем по Вашему ТЗ. Вопросы будут - обращайтесь.
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
(7)
1) При редактировании через доп. параметры формы передавайте значение текущей строки в доп. форму
2) В свойствах формы свойство - АвтоматичнескоеСохранениеДанныхВНастройках. После чего в правом окне (реквизиты) появится колонка "сохранение" напротив нужных реквизитов ставите галочки и все будет сохранятся
1) При редактировании через доп. параметры формы передавайте значение текущей строки в доп. форму
2) В свойствах формы свойство - АвтоматичнескоеСохранениеДанныхВНастройках. После чего в правом окне (реквизиты) появится колонка "сохранение" напротив нужных реквизитов ставите галочки и все будет сохранятся
Посмотри это
По кнопке "изменить", подставляется нужное значение во вторую форму?
По кнопке "изменить", подставляется нужное значение во вторую форму?
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Вот возьмите это Ваше. Я там постарался подробно описать действия в комментариях. Правда не совсем по Вашему ТЗ. Вопросы будут - обращайтесь.
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
(5) У Вас более продумано - при редактировании происходит именно изменение поля, но при редактировании в дополнительной форме все же поле "Поставщик" не заполнено
И еще вопрос: как сохранить данные в таблице значений при закрытии основной формы?
Я по этому вопросу вот здесьhttp://forum.infostart.ru/forum9/topic53814/ читаю, но если честно пока никак не соображу как это к моей таблице привязать.
И еще вопрос: как сохранить данные в таблице значений при закрытии основной формы?
Я по этому вопросу вот здесь
(7) Вот так можно:
ПыСы: На свойтсвах формы обязательно флаг "АвтоматическоеСохранениеДанныхВНастройках" - Использовать
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) //на форме укажите это событие
СохранитьНастройки(Отказ, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура СохранитьНастройки(Отказ, СтандартнаяОбработка) Экспорт
НастройкиСохранения = Новый Структура("ТаблицаКонфигураций", ЗначениеВСтрокуВнутр(ТаблицаКонфигураций.Выгрузить()));
ХранилищеНастроекДанныхФорм.Сохранить("ЭтаФорма.ТаблицаКонфигураций", "ТаблицаКонфигураций", НастройкиСохранения);
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //на форме укажите это событие
ЗагрузитьНастройки();
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьНастройки()
НастройкиВосстановления = ХранилищеНастроекДанныхФорм.Загрузить("ЭтаФорма.ТаблицаКонфигураций", "ТаблицаКонфигураций");
Попытка
ТаблицаКонфигураций.Загрузить(ЗначениеИзСтрокиВнутр(НастройкиВосстановления["ТаблицаКонфигураций"]))
Исключение
КонецПопытки;
КонецПроцедуры
ПоказатьПыСы: На свойтсвах формы обязательно флаг "АвтоматическоеСохранениеДанныхВНастройках" - Использовать
(7)
1) При редактировании через доп. параметры формы передавайте значение текущей строки в доп. форму
2) В свойствах формы свойство - АвтоматичнескоеСохранениеДанныхВНастройках. После чего в правом окне (реквизиты) появится колонка "сохранение" напротив нужных реквизитов ставите галочки и все будет сохранятся
1) При редактировании через доп. параметры формы передавайте значение текущей строки в доп. форму
2) В свойствах формы свойство - АвтоматичнескоеСохранениеДанныхВНастройках. После чего в правом окне (реквизиты) появится колонка "сохранение" напротив нужных реквизитов ставите галочки и все будет сохранятся
В подчинённой форме:
Если вы хотите открыть форму с заполненным реквизитом "Поставщик" то надо его добавить в структуру, которую вы передаёте в ОткрытьФорму(ПолучитьПолноеИмяФормы("КонфигурацияПоставщика"), ПараметрыФормы, ЭтаФорма);
что-то типа того:
Процедура ЗаписатьИЗакрыть(Команда)
Стр = ЭтаФорма.ВладелецФормы.ТаблицаКонфигураций.Добавить();
Стр.Поставщик = ЭтаФорма.Поставщик;
ЭтаФорма.Закрыть();
КонецПроцедуры
Если вы хотите открыть форму с заполненным реквизитом "Поставщик" то надо его добавить в структуру, которую вы передаёте в ОткрытьФорму(ПолучитьПолноеИмяФормы("КонфигурацияПоставщика"), ПараметрыФормы, ЭтаФорма);
что-то типа того:
ПараметрыФормы = Новый Структура();
ПараметрыФормы.вставить("Поставщик", ПоставщиквыбранойСтроки);
ОткрытьФорму(ПолучитьПолноеИмяФормы("КонфигурацияПоставщика"), ПараметрыФормы, ЭтаФорма);
Посмотри это
По кнопке "изменить", подставляется нужное значение во вторую форму?
По кнопке "изменить", подставляется нужное значение во вторую форму?
Прикрепленные файлы:
КонфигурацииПоставщиков1.epf
(13) Да спасибо - так поле заполняется.
Вот этого кода не хватало в доп. форме
Теперь совмещу с тем, что Денис прислал и будет то, что нужно. Спасибо Вам огромное!
Еще сохранение данных предложенное Денисом не пробовал.
Вот этого кода не хватало в доп. форме
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("Поставщик") Тогда
Поставщик = Параметры.Поставщик;
КонецЕсли;
КонецПроцедуры
Теперь совмещу с тем, что Денис прислал и будет то, что нужно. Спасибо Вам огромное!
Еще сохранение данных предложенное Денисом не пробовал.
(14) Для тех кто будет интересоваться данной темой:
Самый хороший и правильный вариант (5). Только там создание и редактирование сделано на одной кнопке (поделить несложно) и во вторую форму нужно добавить следующий код:
Самый хороший и правильный вариант (5). Только там создание и редактирование сделано на одной кнопке (поделить несложно) и во вторую форму нужно добавить следующий код:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Поставщик = ОписаниеОповещенияОЗакрытии.ДополнительныеПараметры.ПоставщикПерваяФорма;
КонецПроцедуры
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот