Добрый день!
Вопрос связан с управляемыми формами.
Форме элемента справочника добавлен реквизит с типом Динамический список у которого основная таблица Регистр сведений. Динамический список перенесен на форму, т. е. на форме появилась таблица, привязанная к динамическому списку. При этом при перетаскивании динамического списка на форму вместе с таблицей появилась командная панель с кнопкой Создать. При нажатии на эту кнопку открывается форма записи регистра сведений, т. е. из формы элемента справочника можно добавить запись в регистр.
Все работает замечательно.
Попытался обыграть такую ситуацию в форме записи регистра:
при попытке добавить запись в регистр для не записанного элемент справочника выдавать вопрос: "Элемент не записан. Записать?" И если ответ "Да" то записываем элемент справочника и потом продолжаем вводить запись регистра. Опять все сработало хорошо.
Хочу заметить, что элемент справочника был записан программно, но форма элемента еще ни разу не закрывалась.
Следующие действия: еще раз нажимаю на кнопку Создать, чтобы ввести следующую запись в регистр сведений. И опять появляется вопрос "Элемент не записан. Записать?" Хотя элемент уже записан в базу.
Помогите разобраться что я упускаю!
Вот код формы записи регистра:
&НаКлиенте
Процедура ОбработкаОтвета(Результат, ВладелецОбъект) Экспорт
Если Результат = КодВозвратаДиалога.Нет Тогда
ЭтаФорма.Закрыть();
Иначе
ЗаписатьОбъект(ВладелецОбъект);
Запись.Контакт = ВладелецОбъект.Ссылка;
ВладелецФормы.Родитель.Родитель.Модифицированность = Ложь;
КонецЕсли;
КонецПроцедуры // ОбработкаОтвета()
&НаСервере
Процедура ЗаписатьОбъект(Объект)
ОбъектБазы = ДанныеФормыВЗначение(Объект, Тип("СправочникОбъект.КонтактныеЛица"));
ОбъектБазы.Записать();
ЗначениеВДанныеФормы(ОбъектБазы,Объект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ВладелецОбъект = ВладелецФормы.Родитель.Родитель.Объект;
Если ТипЗнч(ВладелецОбъект.Ссылка) = Тип("СправочникСсылка.КонтактныеЛица") Тогда
Если ВладелецОбъект.Ссылка.Пустая() Тогда
Оповещение = Новый ОписаниеОповещения("ОбработкаОтвета", ЭтотОбъект, ВладелецОбъект);
ПоказатьВопрос(Оповещение, "Элемент не записан. Записать?", РежимДиалогаВопрос.ДаНет);
Иначе
Запись.КонтактноеЛицо = ВладелецОбъект.Ссылка;
КонецЕсли;
КонецЕсли;
КонецПроцедуры