Здравствуйте.

Пишу обработку сопоставления значений.

На форме есть две таблицы значений. При активизации строки Таблицы значений 1 заполняется определенными значениями Таблица значений 2. При активизации другой строки Таблицы значений 1 ТЗ2 нужно как-то сохранить. Чтобы потом, если будет активизирована строка ТЗ1, ТЗ2 заполнилась сохраненными значениями.

Не знаю реализовать сохранение Таблиц значений 2. Их может быть множество. Возможно мой подход к решению задачи в корне неверный. Не решал еще подобные...
---
вам уже не однократно говорили о том, что не нужно вам сохранять отдельно ТЗ2 для строки ТЗ1.
Если нужно сохранять данные ТЗ(любой), то сохраняйте ТЗ полностью.

Как еще вам объяснить, что не нужно делать то, что вы хотите?

У вас в итоге в ТЧ1 должно быть что-то вроде:

НомерСтроки1|Значение1_1|Значение1_2
НомерСтроки2|Значение2_1|Значение2_2
НомерСтроки3|Значение3_1|Значение3_2
НомерСтроки4|Значение4_1|Значение2_2

при этом в ТЧ2 должно быть:
НомерСтроки1|НомерСтрокиТЧ1_1|Значение1_1|Значение1_2
НомерСтроки2|НомерСтрокиТЧ1_2|Значение2_1|Значение2_2
НомерСтроки3|НомерСтрокиТЧ1_3|Значение3_1|Значение3_2
НомерСтроки4|НомерСтрокиТЧ1_4|Значение4_1|Значение2_2

При активизации строки ТЧ1 вы в ТЧ2 устанавливаете отбор по колонке с НомерСтрокиТЧ1 по номеру текущей строки ТЧ1 и получаете все "подчиненные" значения.

Для добавления строк в ТЧ используйте также номер текущей строки ТЧ1 и присваиваете ее в колонку НомерСтрокиТЧ1

ВСЕ. НИКАКИХ очищений и восстановлений значений.
---
Такие задачи решаются вводом колонки в "подчиненную таблицу" с идентификатором строки "мастер-таблицы".
---
Хранить ТЗ№2 в строке ТЗ№1. Только проблема, что передавать таблицы значений с клиента на сервер и обратно не получится.
---
сделай в тз1 колонку с типом "Произвольный", и пиши туда массив Структур,

при перемещении по тз1 восстанавливай тз2 из этого массива
---
спасибо всем. буду пробовать.
---
зачем промежуточно сохранять?
Все данные в таблице 2 а при активизации отбор строк накладывать на таблицу 2, чтобы работать только с нужными данными.
А уже дальше как до записи дело дойдет - разберете эту таблицу общую.
Короче как советовал nomad_irk (1) по определенному идентификатору
---
ТЗ2 очищается при активизации строки ТЗ1.

я в постановке задачи маху дал. у меня не таблицы значений, а табличные части. и проблема сейчас в том, чтобы указать колонке табличной части правильный тип для сохранения в ней данных ТЧ2. если еще кто-то читает, подскажите решение.

я попробовал использовать ЗначениеВСтрокуВнутр. Запись происходит, а восстановление нет - значчение Неопределено.
---
обычно для идентификатора строки используется целое число, если параноить, то можно UUID использовать.
Для чего очищать ТЗ2 при активации строки ТЗ1 - не совсем понятно.
---
ну такой алгоритм я придумал из-за нехватки знаний) сохранить всю ТЧ2 в ячейку ТЧ1 возможно?
---
В таких задачах используются 2 табличные части. Они связываются по ключу.
То есть в таблицу 1 добавляется колонка ключа - для идентификатора строки (например, уникальный идентификатор), если существующие колонки нельзя использовать для этого. Далее в таблицу 2 добавляется такая же колонка.
Таблица 2 содержит записи для всех строк таблицы 1. Чтобы определить, какие записи таблицы 2 относятся к строке таблицы 1 используется колонка ключа.

В форме при активизации строки таблицы 1 устанавливается отбор по значению ключа на таблицу 2.
При добавлении строки в таблицу 2 значение ключа в заполняется ключом текущей строки таблицы 1.
Все.
---
понял, спасибо. когда-то делал подобное (нашел старую свою обработку). сейчас интересно - можно ли все данные ТЧ2 сохранить в ячейку ТЧ1. технически это возможно? так было бы проще наверное.
---
можно, но ЗАЧЕМ?
---
чтобы при активизировании строки ТЧ1 ТЧ2 заполнилась данными из ячейки ТЧ1.
---
При подходе в (9) для этого достаточно написать 1 строку кода.
Элементы.Таблица2.ОтборСтрок = нужный отбор по значению ключа текущей строки таблицы 1.
---
бизнес-процесс с ТЧ2 на этом заканчивается? ТЧ2 никак не редактируется пользователем интерактивно?
---
да, редактируется. нужно было мне сразу упомянуть об этом...
---
подскажите, пожалуйста, как это сделать?
---
Вы говорите, что у вас недостаток знаний, и вы придумали хрень.
При этом продолжаете настаивать, что хотите делать исключительно хрень, не обращая внимания на комментарии, что так делать не стоит.
Ну ок, удачи.
---
я в (9) сказал, что понял, нашел пример и знаю как сделать. далее я хотел узнать то, что хотел - можно ли сохранить в ячейку. вместо ответа - нравоучения. ну ок, спасибо и удачи взаимно.
---
В ячейку можно сохранить только 1 значение какого-либо типа.
Таблицу значений в ячейку без преобразований не засунуть, если мы говорим именно о хранении данных в базе, а не на форме.
Для того, чтобы в одном значении хранить что-то неформализованное, можно использовать ХранилищеЗначений.
То есть в таблице 1 добавить реквизит типа ХранилищеЗначений и помещать таблицу значений него.

У данного варианта много минусов.
---
вот и все дела - (27)
---
так было бы проще наверное.
Так будет НЕ проще.
---
тогда мне нужно будет переписывать всю логику обработки. я опишгу принцип работы. возможно это прояснит ситуацию.

заполняем ТЧ1, кликаем на строку, ТЧ2 заполняется, ИЗМЕНЯЕМ ТЧ2, сохраняем ТЧ2 в ТЧ1. именно из-за того, что в ТЧ2 вносятся изменения мне нужно ее сохранять и восстанавливать.
---
А зачем вам вообще сохранять ТЧ2 в ТЧ1?
---
вам уже не однократно говорили о том, что не нужно вам сохранять отдельно ТЗ2 для строки ТЗ1.
Если нужно сохранять данные ТЗ(любой), то сохраняйте ТЗ полностью.

Как еще вам объяснить, что не нужно делать то, что вы хотите?

У вас в итоге в ТЧ1 должно быть что-то вроде:

НомерСтроки1|Значение1_1|Значение1_2
НомерСтроки2|Значение2_1|Значение2_2
НомерСтроки3|Значение3_1|Значение3_2
НомерСтроки4|Значение4_1|Значение2_2

при этом в ТЧ2 должно быть:
НомерСтроки1|НомерСтрокиТЧ1_1|Значение1_1|Значение1_2
НомерСтроки2|НомерСтрокиТЧ1_2|Значение2_1|Значение2_2
НомерСтроки3|НомерСтрокиТЧ1_3|Значение3_1|Значение3_2
НомерСтроки4|НомерСтрокиТЧ1_4|Значение4_1|Значение2_2

При активизации строки ТЧ1 вы в ТЧ2 устанавливаете отбор по колонке с НомерСтрокиТЧ1 по номеру текущей строки ТЧ1 и получаете все "подчиненные" значения.

Для добавления строк в ТЧ используйте также номер текущей строки ТЧ1 и присваиваете ее в колонку НомерСтрокиТЧ1

ВСЕ. НИКАКИХ очищений и восстановлений значений.
---
все это я понимаю и знаю. спасибо за подсказки. жаль, что я так и не услышал ответ на (9)...
---
Можно - делаете строковый реквизит. Выгружаете данные из ТЧ через ПоместитьВоВременноеХранилище, в строковый реквизит заносите адрес этого хранилища.
---
уже сам разобрался. но все равно спасибо вам за ответ)

```1c
    &НаСервере
    функция тчдопспрПриИзмененииНаСервере()
    ТЗврем = отчет.тчдоп.Выгрузить();
    возврат ЗначениеВСтрокуВнутр(ТЗврем);
    Конецфункции

    &НаКлиенте
    Процедура тчдопспрПриИзменении(Элемент)
    тчдопспрПриИзмененииНаСервере();
    элементы.тч.ТекущиеДанные.хран = тчдопспрПриИзмененииНаСервере();
    КонецПроцедуры
```