Имя: Пароль:
1C
1C 7.7
v7: Как узнать содержится ли строка ТЧ объекта 8.2 из 7.7?
,
0 mega1c
 
19.11.13
10:30
Как узнать содержится ли строка ТЧ объекта 8.2 из 7.7? Как представить в 7.7 значение "Неопределено"?
1 ДенисЧ
 
19.11.13
10:30
1. Чо?
2. В 77 нет неопределено
2 mega1c
 
19.11.13
10:34
я знаю, что нет неопределено.. Я подключаюсь из 7.7 по OLE к 8.2. Пытаюсь найти по реквизиту строку табличной части объекта из 8.2. как мне узнать ,нашла я его или нет?
3 ДенисЧ
 
19.11.13
10:34
А что в реквизите?
4 ДенисЧ
 
19.11.13
10:34
И кстати... Личная карточка не заполнена...
5 mega1c
 
19.11.13
10:35
строка обычная email
6 ДенисЧ
 
19.11.13
10:37
ну если строка, тогда просто Найти()
7 oslokot
 
19.11.13
10:37
(0) ПустаяСтрока(СтрокаТЧ.РеквизитСтрока)
8 ДенисЧ
 
19.11.13
10:37
Или НайтиСтроки()
9 Wobland
 
19.11.13
10:37
(2) зависит от того, как ищешь
10 oslokot
 
19.11.13
10:37
(7) а, не. Найти() (6)
11 mega1c
 
19.11.13
10:38
Объект.Контакты.Найти(СокрЛП(СпрЭлАдреса.email), "Email") = -1
С чем сравнивать то? с -1 не то..
12 ДенисЧ
 
19.11.13
10:39
(11) Справку читать не модно? НАпример, что возвращает Найти()....
13 mega1c
 
19.11.13
10:40
в 7ке в отладчике просто пусто
14 ДенисЧ
 
19.11.13
10:41
Значит, не нашло
15 Wobland
 
19.11.13
10:42
(13) или там ком-объект?
16 Wobland
 
19.11.13
10:42
в фотографии, кстати, тоже пусто. казалось бы, какая тут связь?..
17 mega1c
 
19.11.13
10:42
(15) там ole
18 mega1c
 
19.11.13
10:51
я так понимаю, никто не знает..
19 ДенисЧ
 
19.11.13
10:52
(17) так пусто или оле-объект?
20 mega1c
 
19.11.13
10:54
оле-объект
21 mega1c
 
19.11.13
10:55
либо если не нашел, то пусто
22 ДенисЧ
 
19.11.13
10:56
(21) Если пустое - значит, не нашёл, если объект - значит нашёл.
Вот и ответ на вопрос из (0)
23 Wobland
 
19.11.13
10:57
хм.. это самое пусто какого типа?
24 mega1c
 
19.11.13
11:00
OLE-объект
25 Salimbek
 
19.11.13
11:07
(24) Дык...
Объект.Контакты.Найти(СокрЛП(СпрЭлАдреса.email), "Email") - это вернет тебе строку ТЧ.
а это: Объект.Контакты.Найти(СокрЛП(СпрЭлАдреса.email), "Email").EMail - вероятно, значение поля типа "Строка", которое ты сможешь поймать в 7.7.

В любом случае, при работе по ОЛЕ, надо опускаться до примитивного типа, т.е. вы результате не должно быть ссылки, а только "Строка", "Число" и т.д. Например нельзя "Номенклатура.Ссылка", но можно "Номенклатура.Наименование".
26 mega1c
 
19.11.13
11:18
(25) да это работает, если элемент находит, а если не находит, то там "неопределено" восьмерочное, попытка исключение в этом случае только помогла..
27 Wobland
 
19.11.13
11:19
v8.Неопределено
28 mega1c
 
19.11.13
11:25
на v8.Неопределено ошибка в выражении пишет
29 ЧессМастер
 
19.11.13
11:30
(0) в строке ТЧ объекта есть объекты. у объектов есть Код и Наименование - вот эти реквизиты получай по ОЛЕ и сравнивай
30 ЧессМастер
 
19.11.13
11:31
(24) сравнивай Код или Наименование (или другие реквизиты) 77 и 82
31 mega1c
 
19.11.13
11:50
(30) когда в табличной части строка не найдена, 8ка возвращает "неопределено", соответственно в этом случае код, наименование и др реквизиты получить нельзя..
32 ЧессМастер
 
19.11.13
11:55
(31) ну можно перебрать строки в цикле. можно сделать еще круче - по ОЛЕ выполнить запрос в 82 с поиском нужной строки и результат вернуть в 77
33 Salimbek
 
19.11.13
21:46
(31) Ну тут можно потестировать и другие варианты. Например написать экспортную функцию в общем модуле, которая будет возвращать Неопределено
Хотя может и (27) сработать, только вместо v8, разумеется, надо подставлять твое ОЛЕ соединение с базой.

т.е. типа:

Если Объект.Контакты.Найти(СокрЛП(СпрЭлАдреса.email), "Email") = (твоеОЛЕ).Неопределено Тогда ...
или
Объект.Контакты.Найти(СокрЛП(СпрЭлАдреса.email), "Email") = (твоеОЛЕ).омОбщийМодульДля7_7.НеопределеноДля7_7()...

где в модуле омОбщийМодульДля7_7

Функция НеопределеноДля7_7() Экспорт
  Возврат Неопределено;
КонецФункции

и т.д. решить можно по-разному
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.