Несоответствие типов (параметр номер '1')
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 2 из 2

Комбинированный просмотр

  1. #1
    Гость форума

    Регистрация
    02.07.2018
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Несоответствие типов (параметр номер '1')

    Здравствуйте, помогите пожалуйста с проблемой.
    У меня внешняя обработка, загрузка xml файла в дерево значений, и выдает ошибку {Обработка.Обработка1.Форма .Форма.Форма(37)}: Ошибка при вызове метода контекста (УстановитьСтроку)
    Чтение.УстановитьСтроку(Те кстXML);
    по причине:
    Несоответствие типов (параметр номер '1')
    Что нужно сделать?? Я начинающий программист в 1с, и поэтому не очень сильна в этом.

    Вот полностью мой код модуля.

    &НаКлиенте
    Процедура Файл(Команда)
    Диалог = Новый ДиалогВыбораФайла(РежимДи� �логаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбор документа";
    Диалог.Фильтр = "Документы XML (*.xml, *.xdr, *.xsd, *.xsl)|*.xml;*.xdr;*.xsd;*.xsl|Все файлы|*.*|";
    Если Диалог.Выбрать() Тогда
    ТекстXML.Прочитать(Диалог.По лноеИмяФайла);
    Документ = ТекстXML.ПолучитьТекст();
    Заголовок = "Просмотр XML-документа: " + Диалог.ПолноеИмяФайла;


    КонецЕсли;

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



    &НаКлиенте
    Процедура КнИмпорт(Команда)
    Если НЕ ПустаяСтрока(ТекстXML) Тогда
    Дерево = Импорт1();



    Если Объект.Дерево.Строки.Колич� �ство() > 0 Тогда
    ЭлементДерево = ТекстXML.Объект.Дерево;
    ЭлементДерево.СоздатьКоло� �ки();
    ЭлементДерево.Колонки.Удал ить(ЭлементДерево.Колонки["Атрибуты"]);

    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    &НаСервере
    Функция Импорт1() Экспорт
    Чтение = Новый ЧтениеXML();
    Чтение.УстановитьСтроку(Те кстXML);
    ДеревоЗначений = Новый ДеревоЗначений();

    ДеревоЗначений.Колонки.Доб авить("Элемент");
    ДеревоЗначений.Колонки.Доб авить("Текст");
    ДеревоЗначений.Колонки.Доб авить("Атрибуты");
    Корень = ДеревоЗначений.Строки.Доба вить();
    Корень.Элемент = Чтение.Имя;
    Рекурсия(Корень, Чтение);
    Возврат ДеревоЗначений;
    КонецФункции
    Процедура Рекурсия(СтрокаДерева, Чтение)
    Если Чтение.КоличествоАтрибуто� �() > 0 Тогда
    АтрибутыСоответствие = Новый Соответствие();
    Пока Чтение.ПрочитатьАтрибут() Цикл
    АтрибутыСоответствие.Вста� �ить(Чтение.Имя, Чтение.Значение);
    КонецЦикла;
    СтрокаДерева.Атрибуты = АтрибутыСоответствие;
    КонецЕсли;
    //Состояние(Чтение.Имя);
    Пока Чтение.Прочитать() Цикл
    Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
    Прервать;
    ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
    СтрокаДерева.Текст = Чтение.Значение;
    ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
    Дочерний = СтрокаДерева.Строки.Добави ть();
    Дочерний.Элемент = Чтение.Имя;
    Рекурсия(Дочерний, Чтение);
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры



    &НаКлиенте
    Процедура Дерево1ПриАктивизацииСтро� �и(Элемент)
    Объект.Атрибуты.Очистить();
    Данные = Элемент.ТекущиеДанные;
    Если Данные <> Неопределено Тогда
    АтрибутыДерева = Данные.Атрибуты;
    Если ТипЗнч(АтрибутыДерева) = Тип("Соответствие") Тогда
    Для каждого АтрибутДерева из АтрибутыДерева Цикл
    СтрокаТаблицы = Объект.Атрибуты.Добавить();
    СтрокаТаблицы.Атрибут = АтрибутДерева.Ключ;
    СтрокаТаблицы.ЗначениеАтр� �бута = АтрибутДерева.Значение;
    КонецЦикла;
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура Дерево1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    ОткрытьЗначение(Выбранная� �трока.Текст);
    КонецПроцедуры

    &НаКлиенте
    Процедура АтрибутыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    ОткрытьЗначение(Выбранная� �трока.ЗначениеАтрибута);


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


    Процедура ОчиститьТаблицы() Экспорт
    Объект.Дерево.Строки.Очист� �ть();
    Объект.Дерево.Колонки.Очис� �ить();
    Объект.Атрибуты.Очистить();
    КонецПроцедуры

  2. #2
    Пришел за помощью

    Регистрация
    16.10.2015
    Сообщений
    7
    Сказал(а) спасибо
    2
    Поблагодарили 1 раз в 1 сообщении

    По умолчанию Re: Несоответствие типов (параметр номер '1')

    Цитата Сообщение от Марочка98 Посмотреть сообщение
    Здравствуйте, помогите пожалуйста с проблемой.
    У меня внешняя обработка, загрузка xml файла в дерево значений, и выдает ошибку {Обработка.Обработка1.Форма .Форма.Форма(37)}: Ошибка при вызове метода контекста (УстановитьСтроку)
    Чтение.УстановитьСтроку(Те кстXML);
    по причине:
    Несоответствие типов (параметр номер '1')
    Что нужно сделать?? Я начинающий программист в 1с, и поэтому не очень сильна в этом.

    Вот полностью мой код модуля.

    &НаКлиенте
    Процедура Файл(Команда)
    Диалог = Новый ДиалогВыбораФайла(РежимДи� �логаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбор документа";
    Диалог.Фильтр = "Документы XML (*.xml, *.xdr, *.xsd, *.xsl)|*.xml;*.xdr;*.xsd;*.xsl|Все файлы|*.*|";
    Если Диалог.Выбрать() Тогда
    ТекстXML.Прочитать(Диалог.По лноеИмяФайла);
    Документ = ТекстXML.ПолучитьТекст();
    Заголовок = "Просмотр XML-документа: " + Диалог.ПолноеИмяФайла;


    КонецЕсли;

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



    &НаКлиенте
    Процедура КнИмпорт(Команда)
    Если НЕ ПустаяСтрока(ТекстXML) Тогда
    Дерево = Импорт1();



    Если Объект.Дерево.Строки.Колич� �ство() > 0 Тогда
    ЭлементДерево = ТекстXML.Объект.Дерево;
    ЭлементДерево.СоздатьКоло� �ки();
    ЭлементДерево.Колонки.Удал ить(ЭлементДерево.Колонки["Атрибуты"]);

    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    &НаСервере
    Функция Импорт1() Экспорт
    Чтение = Новый ЧтениеXML();
    Чтение.УстановитьСтроку(Те кстXML);
    ДеревоЗначений = Новый ДеревоЗначений();

    ДеревоЗначений.Колонки.Доб авить("Элемент");
    ДеревоЗначений.Колонки.Доб авить("Текст");
    ДеревоЗначений.Колонки.Доб авить("Атрибуты");
    Корень = ДеревоЗначений.Строки.Доба вить();
    Корень.Элемент = Чтение.Имя;
    Рекурсия(Корень, Чтение);
    Возврат ДеревоЗначений;
    КонецФункции
    Процедура Рекурсия(СтрокаДерева, Чтение)
    Если Чтение.КоличествоАтрибуто� �() > 0 Тогда
    АтрибутыСоответствие = Новый Соответствие();
    Пока Чтение.ПрочитатьАтрибут() Цикл
    АтрибутыСоответствие.Вста� �ить(Чтение.Имя, Чтение.Значение);
    КонецЦикла;
    СтрокаДерева.Атрибуты = АтрибутыСоответствие;
    КонецЕсли;
    //Состояние(Чтение.Имя);
    Пока Чтение.Прочитать() Цикл
    Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
    Прервать;
    ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
    СтрокаДерева.Текст = Чтение.Значение;
    ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
    Дочерний = СтрокаДерева.Строки.Добави ть();
    Дочерний.Элемент = Чтение.Имя;
    Рекурсия(Дочерний, Чтение);
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры



    &НаКлиенте
    Процедура Дерево1ПриАктивизацииСтро� �и(Элемент)
    Объект.Атрибуты.Очистить();
    Данные = Элемент.ТекущиеДанные;
    Если Данные <> Неопределено Тогда
    АтрибутыДерева = Данные.Атрибуты;
    Если ТипЗнч(АтрибутыДерева) = Тип("Соответствие") Тогда
    Для каждого АтрибутДерева из АтрибутыДерева Цикл
    СтрокаТаблицы = Объект.Атрибуты.Добавить();
    СтрокаТаблицы.Атрибут = АтрибутДерева.Ключ;
    СтрокаТаблицы.ЗначениеАтр� �бута = АтрибутДерева.Значение;
    КонецЦикла;
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура Дерево1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    ОткрытьЗначение(Выбранная� �трока.Текст);
    КонецПроцедуры

    &НаКлиенте
    Процедура АтрибутыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    ОткрытьЗначение(Выбранная� �трока.ЗначениеАтрибута);


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


    Процедура ОчиститьТаблицы() Экспорт
    Объект.Дерево.Строки.Очист� �ть();
    Объект.Дерево.Колонки.Очис� �ить();
    Объект.Атрибуты.Очистить();
    КонецПроцедуры

    Поставить бряку на
    Чтение.УстановитьСтроку(Те кстXML);

    И посмотреть Shift+F9 выделив Те кстXML - Что же скрывается под этой переменной.

Похожие темы

  1. вставить параметр в заголовок отчета
    от Artemcreed в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 4
    Последнее сообщение: 23.11.2016, 11:46
  2. Несоответствие макета и печати
    от alexosv в разделе 1С - Предприятие 7.7
    Ответов: 1
    Последнее сообщение: 14.01.2014, 10:11
  3. Не удается установить параметр на запрос
    от pleasure в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 1
    Последнее сообщение: 05.12.2013, 15:10
  4. Ответов: 0
    Последнее сообщение: 29.08.2011, 14:00

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •