Имя: Пароль:
1C
 
Различные данные в ссылке и объекте
0 SssR
 
27.04.15
10:34
Парадоксальная ситуация, но факт. Есть ДокументОбъект. Отладчиком вижу что у него в табличной части Товар Количество 10. Также отладчиком захожу в ДокументОбъект.Ссылка.Товары и вижу Товар Количество 5. Данные в объекте верные. Но когда хочу объект записать  ТО значения из ссылки переписывают данные объекты, и становятся не верными. Перепробовал массу вариантов, Прошу совета как выйти из данной ситуации.
1 AntonH851
 
27.04.15
10:36
ДокументОбъект и ДокументОбъект.Ссылка.Товары - Это разные объекты?
2 rabbidX
 
27.04.15
10:37
Объект.Модифицированность()?
3 SUA
 
27.04.15
10:37
(0)проверяй что записываешь
4 SssR
 
27.04.15
10:38
нет это все в рамках одного Документа - Заказа например № 5, загружаемого с сайта, если быть точнее
5 SssR
 
27.04.15
10:38
(2) интерактивно юзер с ним не работает
6 AntonH851
 
27.04.15
10:40
(4) Код можешь показать?
7 SssR
 
27.04.15
10:41
не вдаваясь в подробности могу сказать что при загрузке запускаются кое какие модули, работающие правильно / неправильно, думаю не важно, но локализовав проблему пришел к (0)
8 SssR
 
27.04.15
10:42
(7) кое какие модули обрабатывая данные работают в качестве параметра именно с ДокументОбъект
9 SssR
 
27.04.15
10:44
Док.ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);

//не понятно но на данный момент данные в ОБЪЕКТЕ и ОБЪЕКТЕ.ССЫЛКА по товарам разные

СсылкаНаДокумент = Док.ДокументОбъект.Ссылка;
        
        СтруктураСтатистики.Загружено.Добавить(СсылкаНаДокумент);
        
        СвойстваЗаказаОбновлены(СсылкаНаДокумент, СвойстваЗаказа, ОписаниеОшибки);
        
        ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
        
        Если не ЗначениеЗаполнено(СсылкаНаДокумент.ДатаОтгрузки) и ЗначениеЗаполнено(СсылкаНаДокумент.ДатаДоставки) Тогда
                        
            ДокументОбъект.ДатаОтгрузки = ДокументОбъект.ДатаДоставки;
            
        КонецЕсли;
        
        Для Каждого Стр из ДокументОбъект.Товары Цикл
            Стр.ДатаОтгрузки = ДокументОбъект.ДатаОтгрузки;
        КонецЦикла;
        
        Попытка
                
            ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
        Исключение
                
        КонецПопытки;
10 SssR
 
27.04.15
10:45
Вторая запись уже берет данные в объект из ссылки
11 AntonH851
 
27.04.15
10:48
Если у тебя в Док.ДокументОбъект уже объект, зачем ты его еще раз получаешь в ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
12 AntonH851
 
27.04.15
10:49
Такое ощущение что Док.ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
не срабатывает, иначе бы при получении объекта в ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект(); из базы бы считались свешезаписанные данные
13 SssR
 
27.04.15
10:52
(12) в этом то и пародкс, даже если я перезаписываю не по ссылке 2 раз , а просто
Док.ДокументОбъект.Записать(РежимЗаписиДокумента.Запись); при открытии этого заказа уже в 1С (не программно, а глазами) я вижу данные заказа - неправильные, то есть как раз те которые хранятся в ссылке
14 rabbidX
 
27.04.15
11:02
Скорее всего лишний раз получаешь объект. Проверь что в меняется ли документСсылка.Товары.Количество() после первой записи, может, запись не проходит. Непосредственно перед второй записью посмотри ДокументОбъект.Товары.Количество()
15 Apokalipsec
 
27.04.15
11:05
Надо сначала разобраться что там за Док.)
Очень странно потому что обращаться к объекту через точку - Док.ДокументОбъект - я думаю ошибка прячется где-то там.)
16 SssR
 
27.04.15
11:07
(15)Док - это строка дерева
Для Каждого Док Из ДеревоДокументов.Строки Цикл
17 fishb1
 
27.04.15
11:37
(16) Как тебе удалось запихать ДокументОбъект в реквизит ДЗ?
18 AntonH851
 
27.04.15
11:44
(17) Кстати да... но вот вопрос, там скорее всего не объект а именно ссылка, но тогда на Записать() должна ошибка вылетать
19 rabbidX
 
27.04.15
11:44
(17) а в чем проблема?
СтрокаДереваЗначений (ValueTreeRow)
<Имя колонки> (<Column name>)
Использование:

Чтение и запись.
Описание:

Тип: Произвольный.

В базу-то не надо записывать, если б реквизит объекта или ТЧ был, тогда нельзя
20 rabbidX
 
27.04.15
11:45
Дерево объектов - это почти массив объектов. Только дерево.
21 AntonH851
 
27.04.15
11:50
Там может при записи данные где нибудь меняются
22 rabbidX
 
27.04.15
11:58
(21) Перед записью, при записи уже записано все.
23 fishb1
 
27.04.15
12:01
(19) ну раз так, то ОК. Просто приходилось пользоваться ДЗ только как реквизитом элемента формы, а там нельзя Объекты использовать, только ссылки.
24 Рэйв
 
27.04.15
12:02
(0)ссылка отличается от объекта пока тот не записан,если в объект внесеныы изменения.Это же азбука
25 raykom
 
27.04.15
12:45
(0)Не читал, но возражаю.

какая нафиг разница, что там куда пишет не пишет.
Сама суть в том, что ссылка это таки путь к объекту (или запомненный муть с запомненным массивом данных и контекстом) и не более. Она априори не должна содержать того, чего нет в объекте.

П.С, по сути сказать ни чего не могу ... Просто возмущен ...

(24)Воот. Пока ... Но тогда уместно у ТСа спросить, а количество 5 вообще когда ни будь имело место ? Или это вообще левая цифра которой в природе не было в этом объекте ?