8.х Не видит поле ввода в управляемом приложении

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем MyNameNoName, 7 дек 2014.

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Доброе утро.
    Управляемое приложение:
    upload_2014-12-7_7-33-18.png
    Чтобы заполнить у поля Файл для загрузки Вид, ПутькДанным и т.д. пришлось создать реквизит:
    upload_2014-12-7_7-34-50.png
    Код модуля:
    Код:
    &НаКлиенте
    Процедура ФайлДляЗагрузкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
        ВыборФайла(ФайлДляЗагрузки, "Выберите файл", "xls");
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ВыборФайла(Файл, Заголовок, ТипФайла) Экспорт
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.Открытие);
        ДиалогОткрытияФайла.ПолноеИмяФайла = "";
        Если ТипФайла = "dbf" Тогда
            Фильтр = "Файл dbf(*.dbf)|*.dbf";
        ИначеЕсли ТипФайла = "txt" Тогда
            Фильтр = "Текстовый документ(*.txt)|*.txt";
        ИначеЕсли ТипФайла = "mxl" Тогда
            Фильтр = "Табличный документ(*.mxl)|*.mxl";
        ИначеЕсли ТипФайла = "xls" Тогда
            Фильтр = "Файлы Microsoft Excel (*.xls,*.xlsx)|*.xl*";
        КонецЕсли;
        ДиалогОткрытияФайла.Фильтр = Фильтр;
        ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
        ДиалогОткрытияФайла.Заголовок = Заголовок;
        Если ДиалогОткрытияФайла.Выбрать() тогда
            Файл = ДиалогОткрытияФайла.ПолноеИмяФайла;
        КонецЕсли;
    КонецПроцедуры
    
    Выдает ошибку:
    {Форма.Форма.Форма(4,13)}: Переменная не определена (ФайлДляЗагрузки)
    ВыборФайла(<<?>>ФайлДляЗагрузки, "Выберите файл", "xls"); (Проверка: Тонкий клиент)

    Как эту ошибку исправить? Получается не видит он этот реквизит.
    В обычном приложении данный код работал.
    Спасибо.
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.439
    Симпатии:
    374
    Баллы:
    104
    для начала
    зачем вам там выбор типа файла, если принудительно в коде передаёте xls? и зачем кстати переадёте
    ?
    и если ваши две заменить на одну?
    Код:
    &НаКлиенте
    Процедура ФайлДляЗагрузкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.Открытие);
        ДиалогОткрытияФайла.Фильтр = "Файл dbf(*.dbf)|*.dbf|Текстовый документ(*.txt)|*.txt|Табличный документ(*.mxl)|*.mxl|Файлы Microsoft Excel (*.xls,*.xlsx)|*.xl*";
        ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
        ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Выберите путь к файлу и файл для загрузки данных'");
        Если ДиалогОткрытияФайла.Выбрать() тогда
            ФайлДанных = ДиалогОткрытияФайла.ПолноеИмяФайла; // "Файл" в чистом виде нена до использовать, не забывайте про совпадение со служебными именами
        КонецЕсли;
    КонецПроцедуры
    
    MyNameNoName нравится это.
  3. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Заменить то можно, но ошибка остается:
    Переменная не определена (ФайлДляЗагрузки)
    --- Объединение сообщений, 7 дек 2014 ---
    Передаю для того, что сначала указывается xls файл, а затем из него данные грузятся.
  4. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.439
    Симпатии:
    374
    Баллы:
    104
    на скрине у меня "ФайлОтчетовПродаж"
    у вас должно быть ваше "ФайлДляЗагрузки"
    (это внешняя самописная обработка)
    upload_2014-12-7_16-43-56.png
    MyNameNoName нравится это.
  5. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    MyNameNoName, в Вашем случае "ФайлДляЗагрузки" - это реквизит самой обработки (а не реквизит формы). Поэтому обращаться к нему надо:
    Код:
    Объект.ФайлДляЗагрузки
    MyNameNoName нравится это.
  6. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Спасибо.
    Очень помогли. Нужно перепривыкнуть к 8.3.

Поделиться этой страницей