0. vik070777 61 15.04.19 09:47 Сейчас в теме

Работа с ComОбъектом 1С 8.2; 8.3

Определение типов и значений через COM соединение между конфигурациями.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. zeegin 42 15.04.19 15:26 Сейчас в теме
При копировании процедур из БСП следует указывать, что они из БСП.

Attribution 4.0 International (CC BY 4.0)
Ответы на типовые вопросы по лицензированию "1С:Предприятия 8"
wowik; stako8; user733468; DAAbramov; +4 Ответить
2. ArchLord42 68 16.04.19 10:47 Сейчас в теме
Вот КД уже сколько лет существует, а люди все свои костылики пишут для обмена, да ещё и по ком, мде в общем..
artfa; wowik; dsdred; +3 Ответить
5. Кадош 17.04.19 12:58 Сейчас в теме
(2) вы еще мал и глуп, бывает ситуация разовых омбенов, когда проще и много быстрее реализовать костыльный обмен через ком.
7. ArchLord42 68 17.04.19 16:43 Сейчас в теме
(5) Очень приятно :) А Вы собственно кто будете? Большой и умный заядлый велосипидист, тот что делает "быстрые одноразовые" обмены ?:)
К сожалению, повидал на своем маленьком веку такие штуки, надеюсь не скоро еще увижу.
9. Кадош 17.04.19 17:34 Сейчас в теме
(7) абсолютно так. Написал быстренько обработку, загрузил нужные данные, помог заказчику, взял деньги, взял лесопед и пошел кататься. Все довольны - и я и заказчик. А вы сидите, отлаживайте днями ваши обмены, корпите значит. Видал я обмены таких корпунов, когда затирали данные в рабочей базе, надеюсь еще не скоро увижу.
astrallight; +1 Ответить
3. SlavaKron 16.04.19 17:08 Сейчас в теме
ИначеЕсли СтрДлина(_СтрокаXML) = 48 Тогда //Хранилище значения

Почему вы так решили? СтрокаXML от хранилища значения - это сырые данные (строка в формате base64). Её длина может быть какой угодно.
Для определения типа КомОбъекта следует пользоваться процедурами и функциями работы с XML (XMLТип, XMLТипЗнч, ИзXMLТипа).

_ПолныйТипОбъекта = РеквCOM.GetObject().Metadata().FullName();

Чтобы получить метаданные, объект получать не обязательно. У любой ссылки есть метод Метаданные.

Получить менеджер можно проще:
Менеджер = Новый (СтрЗаменить(ПолноеИмяМетаданных, ".", "Менеджер."));

Получение пустой ссылки логичнее делать через менеджер.

Хранилище значения переносится через XMLСтрока / XMLЗначение
4. vik070777 61 16.04.19 19:01 Сейчас в теме
(3) У любой ссылки есть Метаданные Вы правы но через COM соединение не все можно получить
ИначеЕсли СтрДлина(_СтрокаXML) = 48 Тогда //Хранилище значения
если рассматривать как просто отдельная строка то да сказать точно что это хранилище невозможно, но первое стоит проверка на наличие 4 дефисов что говорит о формате строки УИД, если не УИД то хранилище, иначе перечисление по другому я не сталкивался.
Что касаемо определение Менеджера, то в Вашем примере Вы должны точно знать уже имя менеджера ссылки чтоб произвести замену
в моем случае мы его знать не должны он определится автоматически.
Что касаемо самой статьи то я много искал и изучал вопрос и сталкивался с проблемами которые порой не описаны в инете, поэтому и решил поделится информацией. Никто не спорит что коды совершенны и их дорабатывать нельзя)
6. wowik 558 17.04.19 13:30 Сейчас в теме
Сложная статья для прочтения.

Когда-то тоже писал про это - https://infostart.ru/public/164976/

Как по мне, GetObject().Metadata().FullName() - здесь и в других аналогичных местах нужно использовать наименования на русском, глаз режет.
8. acanta 48 17.04.19 17:01 Сейчас в теме
Ком-соединение для сравнения остатков и оборотов тоже требует и поиска и идентификации объектов, иногда по тем же правилам, которые описаны в конвертации данных.
Ссылка с гуидом на данные не всегда сохраняется.
Статья очень полезная, спасибо.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 120 000 руб.
Полный день

Работа от Инфостарт
Санкт-Петербург
Временный (на проект)

Программист 1С
Новосибирск
зарплата от 80 000 руб.
Полный день

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день