Автор Тема: После записи объекта элементы формы ведут себя, как будто объект не записан  (Прочитано 1666 раз)

0 Пользователей и 1 Гость просматривают эту тему.

alexa19

  • Новичок
  • *
  • Сообщений: 2
Добрый день!
Вопрос связан с управляемыми формами.
Форме элемента справочника добавлен реквизит с типом Динамический список у которого основная таблица Регистр сведений. Динамический список перенесен на форму, т. е. на форме появилась таблица, привязанная к динамическому списку. При этом при перетаскивании динамического списка на форму вместе с таблицей появилась командная панель с кнопкой Создать. При нажатии на эту кнопку открывается форма записи регистра сведений, т. е. из формы элемента справочника можно добавить запись в регистр.
Все работает замечательно.

Попытался обыграть такую ситуацию в форме записи регистра:
при попытке добавить запись в регистр для не записанного элемент справочника выдавать вопрос: "Элемент не записан. Записать?" И если ответ "Да" то записываем элемент справочника и потом продолжаем вводить запись регистра. Опять все сработало хорошо.

Хочу заметить, что элемент справочника был записан программно, но форма элемента еще ни разу не закрывалась.

Следующие действия: еще раз нажимаю на кнопку Создать, чтобы ввести следующую запись в регистр сведений. И опять появляется вопрос "Элемент не записан. Записать?" Хотя элемент уже записан в базу.

Помогите разобраться что я упускаю!

Вот код формы записи регистра:
&НаКлиенте
Процедура ОбработкаОтвета(Результат, ВладелецОбъект) Экспорт

    Если Результат = КодВозвратаДиалога.Нет Тогда
        ЭтаФорма.Закрыть();   
    Иначе
        ЗаписатьОбъект(ВладелецОбъект);
       
        Запись.Контакт = ВладелецОбъект.Ссылка;
       
        ВладелецФормы.Родитель.Родитель.Модифицированность = Ложь;
       
    КонецЕсли;

КонецПроцедуры // ОбработкаОтвета()

&НаСервере
Процедура ЗаписатьОбъект(Объект)

    ОбъектБазы = ДанныеФормыВЗначение(Объект, Тип("СправочникОбъект.КонтактныеЛица"));
    ОбъектБазы.Записать();
   
    ЗначениеВДанныеФормы(ОбъектБазы,Объект);


КонецПроцедуры
 

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