1 / 1 / 0
Регистрация: 15.10.2011
Сообщений: 34
1

Преобразование COm Объекта в строку

17.06.2012, 21:07. Показов 12085. Ответов 11
Метки нет (Все метки)

Искал, не нащёл. Как преобразовать ком объект в строку!? Строка() не помогает.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2012, 21:07
Ответы с готовыми решениями:

Преобразование объекта в строку
Есть некий класс Object. Как сделать так, чтобы он был полностью совместим со string? Чтобы...

Преобразование объекта в байты
в ActionScript есть тип ByteArray, то есть массив байтов и в него можно добавлять объекты var...

Преобразование строки в имя объекта
помогите плиз вот с таким вопросом: у меня есть следующая часть кода: Dim x as integer = 1 Dim...

Преобразование типов для объекта
Доброго времени суток. Хотелось бы услышать ответ на вопрос о преобразовании типов для объектов. ...

11
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
17.06.2012, 21:56 2
Преобразую на глазах: "ком объект" А что значит строковый синоним приложения для Вас?
Если б Вы попросили преобразовать в ссылку - я бы не смог ответить, хотя ссылка лежит себе в реестре. Может Вам УИН системы оттуда?
Попробуйте ещё ЗначениеВСтроку(), ЗначениеВСтрокуВнутр(), но это УИН объекта в 1с.

Добавлено через 7 минут
Вру: ЗначениеВСтроку() - это только в77
Из классики:
ЗначениеВСтрокуВнутр(<Значение>)
<Значение> (обязательный)Тип: Произвольный.
Возвращаемое значение: Строка.
Системное представление значения в информационной базе.
Описание:
Получает системное строковое представление переданного значения.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
    | СоответствиеСчетовСрезПоследних.СчетХозрасчетный,
    | ... 
    |ИЗ
    | РегистрСведений.СоответствиеСчетовБУиМСФО.СрезПоследних(&Период, ) КАК СоответствиеСчетовСрезПоследних";
Запрос.УстановитьПараметр("Период", Период);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
 
Файл = Новый ЗаписьXML;
Файл.ОткрытьФайл(ИмяФайла);
Файл.ЗаписатьОбъявлениеXML();
Файл.ЗаписатьНачалоЭлемента("СоответствиеСчетов");
Пока Выборка.Следующий() Цикл
    Файл.ЗаписатьНачалоЭлемента("Запись");
        Файл.ЗаписатьНачалоЭлемента("СчетХозрасчетный");
            Файл.ЗаписатьТекст(XMLСтрока(Выборка.СчетХозрасчетный));
        Файл.ЗаписатьКонецЭлемента();
        // ...
        Файл.ЗаписатьНачалоЭлемента("ЗначениеТип");
            Файл.ЗаписатьТекст(ЗначениеВСтрокуВнутр(ТипЗнч(Выборка.Значение)));
        Файл.ЗаписатьКонецЭлемента();
        Файл.ЗаписатьНачалоЭлемента("Значение");
            Файл.ЗаписатьТекст(XMLСтрока(Выборка.Значение));
        Файл.ЗаписатьКонецЭлемента();
        // ...
    Файл.ЗаписатьКонецЭлемента();
КонецЦикла;
Файл.ЗаписатьКонецЭлемента();
0
1 / 1 / 0
Регистрация: 15.10.2011
Сообщений: 34
17.06.2012, 23:10  [ТС] 3
Я как раз работаю в 7рке, чтоб было понятней могу рассказать для чего мне это у меня есть ком подключение и нужно сравнить :
1C
1
Если Док.Сотрудник.ТипВычета = База77.Перечисление.ТипыВычетов.Обычный Тогда
К сожалению он сравнивает, как я понял типы что мол это комобъект и они равны, а нужно сравнить значения в них, как это сделать вот!
0
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
18.06.2012, 01:02 4
Синхронизируйте объекты 1с из COM и из базы. И сравнивайте с "местными" аналогами.
1C
1
2
ТВ_Обычный=Перечисление.ТипыВычетов.ЗначениеПоИдентификатору(База77.Перечисление.ТипыВычетов.Идентификатор);
Если Док.Сотрудник.ТипВычета = ТВ_Обычный Тогда
для интереса получите UIN на тот и на другой
1C
1
Сообщить(ЗначениеВСтрокуВнутр(Перечисление.ТипыВычетов)+"=?="+ЗначениеВСтрокуВнутр(База77.Перечисление.ТипыВычетов);
Добавлено через 28 минут
Цитата Сообщение от Nikitac++ Посмотреть сообщение
Строка() не помогает.
Вообще, строка() по идее должна была помочь.
1C
1
Если ""+Док.Сотрудник.ТипВычета = ""+База77.Перечисление.ТипыВычетов.Обычный Тогда
1
1 / 1 / 0
Регистрация: 15.10.2011
Сообщений: 34
18.06.2012, 01:06  [ТС] 5
Спасибо, я обязательно попробую и отпишусь.
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
18.06.2012, 10:16 6
Все намного проще используйте функцию XMLСтрока(<Значение>).
В вашем случае:
1C
1
Если XMLСтрока(Док.Сотрудник.ТипВычета) = XMLСтрока(База77.Перечисление.ТипыВычетов.Обычный) Тогда
1
1 / 1 / 0
Регистрация: 15.10.2011
Сообщений: 34
18.06.2012, 10:17  [ТС] 7
в зупе 8 типы вычетов это не перечисление, это справочник(
Ну тогда Справочник.ТВ.НайтиПоНаименованию(...)
0
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
18.06.2012, 10:37 8
Прошу прощения: снёс случайно сообщение. Оказывается, импорт в ЗУП, а там справочник вместо перечисления. Тогда, естественно
1C
1
ТВ_Обычный=Справочник.ТВ.НайтиПоНаименованию(""+База77.Перечисление.ТипыВычетов.Обычный);
0
1 / 1 / 0
Регистрация: 15.10.2011
Сообщений: 34
18.06.2012, 22:12  [ТС] 9
Цитата Сообщение от Fenomen Посмотреть сообщение
Все намного проще используйте функцию XMLСтрока(<Значение>).
В вашем случае:
1C
1
Если XMLСтрока(Док.Сотрудник.ТипВычета) = XMLСтрока(База77.Перечисление.ТипыВычетов.Обычный) Тогда
Ошибка преобразования хмл

Добавлено через 6 минут
Цитата Сообщение от duk337 Посмотреть сообщение
Прошу прощения: снёс случайно сообщение. Оказывается, импорт в ЗУП, а там справочник вместо перечисления. Тогда, естественно
1C
1
ТВ_Обычный=Справочник.ТВ.НайтиПоНаименованию(""+База77.Перечисление.ТипыВычетов.Обычный);
Правильно понял?
1C
1
ТВ_Обычный=Справочники.ВычетыНДФЛ.НайтиПоНаименованию(""+База77.Перечисление.ТипыВычетов.Обычный);
В переменной пусто(
0
2954 / 1766 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
18.06.2012, 22:19 10
Наименование элемента справочника и идентификатора перечисления совпадают? Вряд ли, наверное. Надо остроумие проявить, как синхронизировать. Влепить в наименования имена перечисления. По артикулу... Ну, добавить атрибут, или табличку перекрёстных ссылок в тексте прямо прошить. По ситуации и по предпочтениям.
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
18.06.2012, 23:03 11
Цитата Сообщение от Nikitac++ Посмотреть сообщение
Ошибка преобразования хмл
Да с 7.7 не работает - это я так в 8-ке выходил из положения.

В принципе можно привести к строке так:
1C
1
База77.Перечисление.ТипыВычетов.Обычный.Идентификатор();
А проверять соответственно так:
1C
1
Если ВРег(Док.Сотрудник.ТипВычета.Наименование) = ВРег(База77.Перечисление.ТипыВычетов.Обычный.Идентификатор()) Тогда
С учетом того, что наименование справочника и значение перечисления совпадают.
0
Модератор
Эксперт 1С
3662 / 2887 / 566
Регистрация: 10.03.2011
Сообщений: 11,350
Записей в блоге: 1
19.06.2012, 02:46 12
ТипВычета периодический реквизит -
1C
1
Док.Сотр.ТипВычета.Получить(КакаяНужноДата) = Перечисление.ТипыВычетов.Обчный
Добавлено через 4 минуты
И кстати XMLзначение(<Значение>) не сработало - можно извратиться и попробовать через СериализаторXDTO
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2012, 02:46
Помогаю со студенческими работами здесь

Преобразование объекта типа Expression
Подскажите, как объект типа Expression&lt;Func&lt;First, bool&gt;&gt; expression преобразовать к типу...

Преобразование из строки в поле агрегатного объекта
Вот такой вопрос возник - можно ли из списка значений вытягивать выборочные реквизиты агрегатного...

Преобразование в числовой формат значений объекта Range
Подскажите,пож-ста,как преобразовать в числовой формат значения ячеек в объекте Range? То есть мне...

Word: преобразование графического объекта в нужный символ
Чисто теоретически возможно ли написать такой макрос, который распознавал бы формулу в виде...

Преобразование пользовательских типов, ссылка на объект не указывает на экземпляр объекта
Всем привет, в C# недавно, объясните пожалуйста почему так выходит. У нас есть некоторый класс ...

Преобразование в строку
файлик Info.txt должен переименоваться в &quot;имя пользователя&quot; + &quot;.txt&quot; , но выходит только имя без...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru