Имя: Пароль:
1C
1С v8
Не обновляется значение на форме, после вызова диалога (обычные формы)
0 1Сергей
 
11.11.15
13:08
реквизит формы ПутьККаталогу строка неограниченной длины, имеет кнопку выбора. По этой кнопке открывается диалог выбора каталога, в отладчике вижу, что значение ПутьККаталогу изменилось, на форме ничего не меняется.

Процедура ВыбратьФайл(ИмяФайла, ВыбратьКаталог = Ложь)
    
    Если ВыбратьКаталог Тогда
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Иначе
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    КонецЕсли;
    ДиалогОткрытияФайла.ПолноеИмяФайла = ИмяФайла;
    ДиалогОткрытияФайла.Фильтр = "Все файлы(*.*)|*.*|Текст с разделителями(*.csv)|*.csv|Файлы excel (*.xls, *.xlsx)|*.xls;*.xlsx";
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
    ДиалогОткрытияФайла.Заголовок = "Выберите файл";
    Если ДиалогОткрытияФайла.Выбрать() Тогда
        Если ВыбратьКаталог Тогда
            ИмяФайла = ДиалогОткрытияФайла.Каталог;
        Иначе
            ИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Процедура ПутьККаталогуНачалоВыбора(Элемент, СтандартнаяОбработка)
    ВыбратьФайл(ПутьККаталогу, Истина);
    ЭтаФорма.Обновить();
КонецПроцедуры

Как исправить, чтобы менялось на форме?
1 cw014
 
11.11.15
13:09
А реквизит формы привязан к полю формы? И случайно у тебя не дублируется реквизит формы  реквизитом объекта?
2 1Сергей
 
11.11.15
13:10
(1) точно! вот в чем причина.
Спасибо огромное!
3 Горогуля
 
11.11.15
13:12
на всякий случай, что в ДиалогОткрытияФайла.ПолноеИмяФайла в режиме выбора каталога?
4 1Сергей
 
11.11.15
13:13
(3) пусто там. Уже переделал

Процедура ВыбратьФайл(ИмяФайла, ВыбратьКаталог = Ложь)
    
    Если ВыбратьКаталог Тогда
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
        ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
        ДиалогОткрытияФайла.Каталог = ИмяФайла;
    Иначе
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
        ДиалогОткрытияФайла.Заголовок = "Выберите файл";
        ДиалогОткрытияФайла.ПолноеИмяФайла = ИмяФайла;
        ДиалогОткрытияФайла.Фильтр = "Все файлы(*.*)|*.*|Текст с разделителями(*.csv)|*.csv|Файлы excel (*.xls, *.xlsx)|*.xls;*.xlsx";
        ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
    КонецЕсли;
    Если ДиалогОткрытияФайла.Выбрать() Тогда
        Если ВыбратьКаталог Тогда
            ИмяФайла = ДиалогОткрытияФайла.Каталог;
        Иначе
            ИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.