Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отследить какую клавишу нажал пользователь на форме (1с 8.2.19.106)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
andrew76
Доброе всем утро !

Имеется табличная часть справочника с названием Состав_Семьи.Так как реквизитов в в этой ТЧ много и они большие по длине,
решил сделать следующее - редактировать форму записей этой ТЧ в диалоге.При редактировании записи запускается форма элемента ТЧ,
(предварительно заполняю реквизиты этой формы из текущей строки ТЧ).Всё работает ,правда в одном варианте-в независимости от того,
нажал ли пользователь кнопку "Сохранить" или "Отмена" на форме элемента ТЧ,данные реквизитов из формы приходится заливать
в текущую строку ТЧ-т.к. не могу отследить что нажал пользователь на форме элемента ТЧ.

Процедура Состав_СемьиПередНачаломИзменения(Элемент, Отказ)
        
СтандартнаяОбработка = Ложь;    
Форма = Справочники.ФизическоеЛицо.ПолучитьФорму("ФормаСоставСемьи");
Строка = ЭтаФорма.ЭлементыФормы.Состав_Семьи.ТекущиеДанные;
ЗаполнитьЗначенияСвойств(Форма, Строка);            //заполняю элементы формы значениями из текущей строки ТЧ
РЗ=Форма.ОткрытьМодально();
ЗаполнитьЗначенияСвойств(Строка,Форма);       //заполняю текущую строку ТЧ значениями из формы
Отказ = Истина;    

КонецПроцедуры
Vofka
Если я правильно понял, то в форме редактирования при нажатии на Сохранить сделайте

Закрыть(Истина);


А при Отмена просто

Закрыть();


И тогда как-то так:

Процедура Состав_СемьиПередНачаломИзменения(Элемент, Отказ)
        
   СтандартнаяОбработка = Ложь;    
   Форма = Справочники.ФизическоеЛицо.ПолучитьФорму("ФормаСоставСемьи");
   Строка = ЭтаФорма.ЭлементыФормы.Состав_Семьи.ТекущиеДанные;
   ЗаполнитьЗначенияСвойств(Форма, Строка);            //заполняю элементы формы значениями из текущей строки ТЧ
   РЗ=ФормаСТР.ОткрытьМодально();
   Если РЗ = Истина Тогда
      ЗаполнитьЗначенияСвойств(Строка,Форма);       //заполняю текущую строку ТЧ значениями из формы
   Иначе
      Отказ = Истина;    
   КонецЕсли;
КонецПроцедуры
andrew76
Спасибо,всё работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.