Версия для печати темы (https://pro1c.org.ua/index.php?s=dead337429d6e09b85a40f48777e7a33&showtopic=30051)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ После записи объекта элементы формы ведут себя, как будто объект не записан

Автор: alexa191 30.05.16, 6:20

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

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

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

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

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

Вот код формы записи регистра:

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

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

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

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

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


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


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



 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 9
 

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua