Имя: Пароль:
1C
1С v8
Поиск ДокументОбъекта а ТаблицеЗначений
0 varyag
 
30.05.14
05:27
Есть ТаблицаЗначений ТЗ_КэшЗНиСФ :

    ТЗ_КэшЗНиСФ = Новый ТаблицаЗначений;
    ТЗ_КэшЗНиСФ.Колонки.Добавить("ЗаказНаряд");
    ТЗ_КэшЗНиСФ.Колонки.Добавить("СчетФактура");

Пытаюсь найти в ней ДокументОбъект:
ТЗ_КэшЗНиСФ.ВыгрузитьКолонку("ЗаказНаряд").Найти(Ссылка.ПолучитьОбъект())
и так даже пробовал:
ТЗ_КэшЗНиСФ.Найти(Ссылка.ПолучитьОбъект(),"ЗаказНаряд");

Но возвращает Неопределено, хотя в отладчике смотрю - в ТЗ этот документ есть, даже на уникальные идентификаторы уже проверил искомый документ и тот, что в ТЗ - одинаковые.

Что за глюк не подскажите? что я не учел здесь?
1 Любопытная
 
30.05.14
05:28
Ты уверен, что у тебя объект в ТЗ, а не ссылка?
2 varyag
 
30.05.14
05:39
(1) Да. Т.к. сначала по ссылке искал, потом когда не находит, вспомнил что заполнял объектами, проверил в ТЗ - ДокументОбъект тип
3 varyag
 
30.05.14
05:39
Неуникальность тоже исключается, в ТЗ вообще одна строка в данном случае
4 Любопытная
 
30.05.14
05:50
Что-то помнится мне, что объекты, полученные из разных ссылок, платформа воспринимает по-разному. Типа объект, полученный от выборки, не равен объекту, полученному по прямой ссылке
5 nddru
 
30.05.14
05:59
надо больше кода ) особенно интересует код заполнения тз и откуда получается объект который ты ищешь в тз.
6 varyag
 
30.05.14
06:13
(4) короче надо пробовать таблицу заполнять ссылками)
(5) Заполняется создаваемым объектом, а ищется объектом полученным из ссылки, щас скриншот пытаюсь загрузить, че то сайт itmages.ru гонит
7 Любопытная
 
30.05.14
06:15
(6) заполняй ссылками и будет тебе счастье. Или ищи по уникальным идентификатором. Счастье тоже будет, вероятно)
8 varyag
 
30.05.14
06:15
9 Cube
 
30.05.14
06:23
А по-моему, объекты никогда нельзя сравнить через простую операцию сравнения. То есть, сравнение одного и того же объекта всегда будет выдавать ложь...
Для этого в платформе есть механизм - СравнениеЗначений:

СравнениеЗначений (CompareValues)

Методы:
Сравнить (Compare)

Конструкторы:
По умолчанию

Описание:
Объект для сравнения значений по правилам, совпадающим с правилами сравнения значений в базе:
- Элементы, чьи типы не совпадают, сравниваются по коду типа
- Элементы простых типов сравниваются по значению
- Объекты сравниваются по идентификатору
- Моменты времени сравниваются по дате и идентификатору объекта
- Элементы остальных типов сравниваются по строковому представлению.


Доступность:
Сервер, толстый клиент, внешнее соединение.
10 Cube
 
30.05.14
06:24
(7) +1
11 kosts
 
30.05.14
06:28
Я бы добавил колонку со ссылкой. Если уж объект должен быть в ТЗ.
12 Любопытная
 
30.05.14
06:29
(9)сравнение одного и того же объекта всегда будет выдавать ложь... Похоже на правду
http://i.imgur.com/2VeCfna.png
13 varyag
 
30.05.14
07:18
Сделал заполнение таблицы ссылками, все заработало. Буду теперь знать))
14 varyag
 
30.05.14
07:21
(11) да нет, здесь не принципиально) так что заменил объект на ссылки, просто при обращении потом делаю ПолучитьОбъект()
15 hhhh
 
30.05.14
09:12
(14) когда делаешь ПолучитьОбъект(), это уже другой объект. То есть два клона в памяти и они не равны друг другу.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой