Имя: Пароль:
1C
1С v8
Сравнение таблиц значений через "ЗначениеВСтрокуВнутр"
0 Andreyyy
 
03.06.18
14:31
Есть две таблицы значения с одинаковыми значениями, с одинаковым порядком строк, с одинаковыми колонками, с одинаковыми типами колонок (без составных с Null), с одинаковым отсутствием индексов. Колонки всего две, первая перечисление, вторая булево.

Ниже результат "ЗначенияВСтрокуВнутр", все идентично кроме четвертой строки снизу "},-1,2}" и "},1,2},".

{"#",acf6192e-81ca-46ef-93a6-5a6968b78663,
{9,
{2,
{0,"ОтборУслуги",
{"Pattern",
{"#",746021e1-31bf-435f-aa88-25683c07738f}
},"",20},
{1,"Включен",
{"Pattern",
{"B"}
},"",20}
},
{2,2,0,0,1,1,
{1,3,
{2,0,2,
{"#",746021e1-31bf-435f-aa88-25683c07738f,22593:84fcea3d17f963604fc0e4fbdce9de66},
{"B",1},0},
{2,1,2,
{"#",746021e1-31bf-435f-aa88-25683c07738f,22593:a8c5e9035e6b05a846841f3e7a0b70fe},
{"B",1},0},
{2,2,2,
{"#",746021e1-31bf-435f-aa88-25683c07738f,22593:af0b644a0189a4794259a8985f707275},
{"B",0},0}
},-1,2},
{0,0}
}
}

{"#",acf6192e-81ca-46ef-93a6-5a6968b78663,
{9,
{2,
{0,"ОтборУслуги",
{"Pattern",
{"#",746021e1-31bf-435f-aa88-25683c07738f}
},"",20},
{1,"Включен",
{"Pattern",
{"B"}
},"",20}
},
{2,2,0,0,1,1,
{1,3,
{2,0,2,
{"#",746021e1-31bf-435f-aa88-25683c07738f,22593:84fcea3d17f963604fc0e4fbdce9de66},
{"B",1},0},
{2,1,2,
{"#",746021e1-31bf-435f-aa88-25683c07738f,22593:a8c5e9035e6b05a846841f3e7a0b70fe},
{"B",1},0},
{2,2,2,
{"#",746021e1-31bf-435f-aa88-25683c07738f,22593:af0b644a0189a4794259a8985f707275},
{"B",0},0}
},1,2},
{0,0}
}
}

Что делаю не так, откуда отличие ?
1 mszsuz
 
03.06.18
14:50
а откуда они берутся?
2 Andreyyy
 
03.06.18
14:53
(1) Кто "они" ?
3 mszsuz
 
03.06.18
14:55
таблицы значений
4 АнализДанных
 
03.06.18
15:02
Закладка
5 Andreyyy
 
03.06.18
15:02
Одна из таблицы значений формы методом "Выгрузить".
Другая создается методом "СкопироватьКолонки" из первой, далее заполняется построчно из таблицы, которая выгружается из результата запроса (ничего умнее для того чтобы избавиться от составного поля Null не придумал).
6 mszsuz
 
03.06.18
15:23
(5) ,1,2} очень похоже на кол-во строк и колонок.
Попробуй другую сериализацию, н-р

Функция ЗначениеВСтрокуXML(Значение) Экспорт
    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение, НазначениеТипаXML.Явное);
    
    Возврат ЗаписьXML.Закрыть();
    
КонецФункции
7 mszsuz
 
03.06.18
15:27
(5) а таблица, в которой "},-1,2}" это выгруженная или заполненная?
8 mszsuz
 
03.06.18
15:40
Проверил, это заполненная.
Таким образом, у ТЗ, созданной с помощью .СкопироватьКолонки() при добавлении строк не обновляется показатель кол-ва строк при сохранении с помощью ЗначениеВСтрокуВнутр()
9 Andreyyy
 
03.06.18
15:47
(8) И ? Обе таблицы создавать методом "СкопироватьКолонки()" ? Или загонять в запрос временными таблицами ?

Может тыкнуть в какой метод и все устаканится ?
10 Andreyyy
 
03.06.18
15:48
(6) Спасибо, попробую, сейчас сделал сравнение перебором строк, там их максимум 5 штук, тормозов не будет.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший