Имя: Пароль:
1C
1C 7.7
v7: Документ OLE , не строка
,
0 Vld
 
31.12.12
11:55
К документу OLE обращаюсь ДокOLE.Реквизит, это когда строка
А если реквизит документа - Справочник, как обратиться?
1 Тьма
 
31.12.12
11:57
ДокOLE.Реквизит.Наименование или ДокOLE.Реквизит.Код или ДокOLE.Реквизит.РеквизитСправочника. Чего надо то?
2 Обработка
 
31.12.12
12:15
Через оле вы можете на свою сторону перетащить только простые типы данных 1 число 2 дата 3 текст. И все. А вот объекты справочники или документы только через внутренний код идентифицировать если база клон (копия). Иначе только кодом или номером снихронизироать
3 Vld
 
31.12.12
12:38
(2) Про простые типы понятно все. Что значит идентифицировать через внутренний код?
4 Обработка
 
31.12.12
12:53
(3) Какова ваша цель подключение через ОЛЕ?
Обычно подключатся к копии базы чтоб какие-то данные сверить перенести заново. А еще перенести данные из одной конфы в другую. Если базы разнородные то при обращении с одной базы в другоую вы витие всего лищь ссылку на оле объект из чужой базы. С этим объектом вы можете работаь прочитав код или номер или дату документа или наименование справочника других действий вы не  сможете сделать Ведь объекта этого в текущей базы нет и быть не может. При переносе просто сверяете по коду или по номерам.
5 craxx
 
31.12.12
13:21
(0) непонятно изначально что хотите-то.
можно по внутреннему представлению идентифицировать.
но опять же. для каких целей.
6 ALoHA
 
31.12.12
13:56
(4) чтоб все Врум-Врум)
7 Злопчинский
 
31.12.12
14:11
(2) ничего подобного
8 Злопчинский
 
31.12.12
14:14
В исходной родной базе, определи ТЗ, но не типизируй реквизиты.
После этого совершенно спокойно юзай
ТЗ.ССылкаОле = БазаОле.АгрегатныйТипНапримерСправочник;
.
и потом хоть обсравнивайсяТЗ.ССылкаОле безо всяких кодов и наименований
9 craxx
 
31.12.12
14:21
(8) не проканает
я делал так
Функция Равенство(БазаОле,Об1,Об2)
Возврат БазаОле.ЗначениеВСтрокуВнутр(Об1) = БазаОЛе.ЗначениеВСтрокуВнутр(Об2);

КонецФункции
10 Злопчинский
 
31.12.12
14:26
(9) хз.. у меня вроде канало... хотя сейчас гляну попристальнее
11 Злопчинский
 
31.12.12
14:32
(9) согласен, фигню сказал. Посмотрел - у меня по Идам идет... но что-то было у меня в башке по поводу нетипизированной ТЗ при работе с ОЛЕ. а ну и фиг с ним...
12 Холст
 
31.12.12
15:37
поработаю слегка дедом морозом
http://www.mista.ru/articles1c/hare/article.15.html
13 craxx
 
31.12.12
16:37
(12) не работает там сравнение двух агрегатных типов!
только как я указал в (9)
14 Torquader
 
31.12.12
23:29
Если вам нужно сравнивать хранимые типы 1С, то можно использовать ЗначениеВСтрокуВнутр, которая вернёт хранимое описание объекта. Если же объект не хранимый (как, например, ТаблицаЗначений), то тут могут быть сложности.
Если следовать описаниям OLE, то любые OLE-объекты сравниваются с запросом IUnknown у каждого объекта, но в этом случае мы получаем равно, если мы имеем две ссылки на один OLE-объект (то есть две ссылки на одну таблицу значений совпадут), а вот для двух спозиционированных элементов справочника (полученных через ТекущийЭлемент) мы можем получить несовпадение, так как у нас просто будут два разных OLE-объекта, содержащих внутри одно и то же.
15 Vld
 
02.01.13
18:47
Один из реквизитов содержит ссылку на перечисление, в базе из которой связываемся аналогичный набор перечислений есть.
Как в объект базы прописать нужную ссылку на свое перечисление?
16 Cthulhu
 
02.01.13
18:57
(15): значение по идентификатору.
17 Тьма
 
02.01.13
18:57
(15)Используй метод значения перечисления ПорядковыйНомер() и метод вида перечисления ЗначениеПоНомеру()
18 Рэйв
 
02.01.13
19:00
(0)Обращайся через точку. Только оно тоже оле будет
19 Рэйв
 
02.01.13
19:01
а вообще к 8-ке рекомендую конектится через СОМ
20 Vld
 
02.01.13
19:06
(17) т.е. если в поле дока, реквизит - ссылкаСправочник, у когорого реквизит перечисление:

вот так вроде работает, дает значение
ДокOLE.СправочникСсылкаИмя.РеквизитИмя.ЗначениеПоИдетификатору();
21 Vld
 
02.01.13
19:07
(19) через COM с 7-кой?
22 Vld
 
02.01.13
19:09
(20) Сори, не по идентификатору, наоборот работает ПорядковыйНомер()
23 Vld
 
02.01.13
19:39
Из чужой базы номер перечисления получен через ном=ДокOLE.СправочникСсылкаИмя.РеквизитИмя.ПорядковыйНомер(),

а в своей
ДокOLE.СправочникСсылкаИмя.РеквизитИмя[ном]

ЗнгачениеПоНомеру() и ЗначениеПоИдентификатору() не заработали
24 Токарь
 
02.01.13
22:01
(11)Если функция заполнения ТЗ (и объявления ТЗ) сидят в базе Источник, то такой способ работает.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.