Пользователь открывает обработку, выбирает маршрутное задание из списка и проставляет флажки накладным, которые связаны с этим маршрутным заданием .Нужно чтобы при повторном открытии этого документа,даже если обработка была закрыта, а потом открыта, проставленные галочки сохранялись и при повторном открытии автоматически проставлялись. Для этого использую:
СохранитьЗначение(<Имя>, <Значение>)
ВосстановитьЗначение(<Имя>)
При повтором открытии значения сохраняются, но при восстановлении флажки не стоят там где в прошлый раз было проставлено,а просто проставляет подряд все флажки в одном или двух колонках.
Почему так восстанавливает?
И можно сделать так, чтобы флажки сохранялись во всех открытых и проставленных документах, а не только последний открытый и проставленный документ сохранял?

Так сохраняю:

```1c
    Процедура ПриЗакрытии()

    Для Каждого Значения Из ТаблицаСтатуса Цикл
    ВыборСсылки=ВыборМЗ.Ссылка;
    СохранитьЗначение("ВыборМЗ",ВыборСсылки);
    СохранитьЗначение("Вернул",Значения.Вернул);
    СохранитьЗначение("НакладнаяЗакрыта",Значения.НакладнаяЗакрыта);
    СохранитьЗначение("БезПечати",Значения.БезПечати);
    СохранитьЗначение("ИзменениеЦены",Значения.ИзменениеЦены);
    СохранитьЗначение("НакладнаяСКорректировкой",Значения.НакладнаяСКорректировкой);
    КонецЦикла;
    КонецПроцедуры
```

Так восстанавливаю:

```1c
    ВыборСсылки=ВосстановитьЗначение("ВыборМЗ");
    Ссылка=ВыборМЗ.Ссылка;
    Если Ссылка=ВыборСсылки Тогда

    Вернул=ВосстановитьЗначение("Вернул");
    НакладнаяЗакрыта=ВосстановитьЗначение("НакладнаяЗакрыта");
    БезПечати=ВосстановитьЗначение("БезПечати");
    ИзменениеЦены=ВосстановитьЗначение("ИзменениеЦены");
    НакладнаяСКорректировкой=ВосстановитьЗначение("НакладнаяСКорректировкой");

    Для Каждого Строка Из ТаблицаСтатуса Цикл
    Строка.Вернул=Вернул;
    Строка.НакладнаяЗакрыта=НакладнаяЗакрыта;
    Строка.БезПечати=БезПечати;
    Строка.ИзменениеЦены=ИзменениеЦены;
    Строка.НакладнаяСКорректировкой=НакладнаяСКорректировкой;
    КонецЦикла;
    КонецЕсли;
```
---
ну раз пошла такая жара, можно в ключ добавлять УИД документа тоже)
инд = 0;
УИД = Строка(ВыборМЗ.Ссылка.УникальныйИдентификатор());
СохранитьЗначение("КоличествоЭлементов",ТаблицаСтатуса.Количество());
Для Каждого Значения Из ТаблицаСтатуса Цикл
ВыборСсылки=ВыборМЗ.Ссылка;
СохранитьЗначение("ВыборМЗ"+УИД ,ВыборСсылки);
СохранитьЗначение("Вернул"+УИД +инд,Значения.Вернул);
СохранитьЗначение("НакладнаяЗакрыта"+УИД +инд,Значения.НакладнаяЗакрыта);
СохранитьЗначение("БезПечати"+УИД +инд,Значения.БезПечати);
СохранитьЗначение("ИзменениеЦены"+УИД +инд,Значения.ИзменениеЦены);
СохранитьЗначение("НакладнаяСКорректировкой"+УИД +инд,Значения.НакладнаяСКорректировкой);
инд = инд + 1;
КонецЦикла;

аналогично действуем при чтении
---
добавил код прямо в обработку, но конфигурация другая - реквизиты формы слетели на строковой тип, поэтому скопируйте код из нее в свою обработку.
---
у вас в какой то момент потерялась логика)
значения вы сохраняете в цикле, но в каждой итерации в один и тот же ключ, поэтому в конце в хранилище остаются данные из последней строки таблицы. Потом вы их считываете в цикле, и это сохраненное значение восстанавливается в каждую строку одно и то же. Подумайте над ключом сохранения для каждого значения, имхо проще выгружать в таблицу значений и ее сохранять уже в хранилище
---
можно пример, как с помощью таблицы значения сделать?
---
```1c
    СохранитьЗначение("ТабличнаяЧасть", ТабличнаяЧасть.Выгрузить());
    ТабличнаяЧасть.Загрузить(ВосстановитьЗначение("ТабличнаяЧасть"));
```
---
Загрузить и Выгрузить нету, есть только ВыгрузитьКолонку и ЗагрузитьКолонку
---
Процедура ПриЗакрытии()

инд = 0;
СохранитьЗначение("КоличествоЭлементов",ТаблицаСтатуса.Количество());
Для Каждого Значения Из ТаблицаСтатуса Цикл
ВыборСсылки=ВыборМЗ.Ссылка;
СохранитьЗначение("ВыборМЗ",ВыборСсылки);
СохранитьЗначение("Вернул"+инд,Значения.Вернул);
СохранитьЗначение("НакладнаяЗакрыта"+инд,Значения.НакладнаяЗакрыта);
СохранитьЗначение("БезПечати"+инд,Значения.БезПечати);
СохранитьЗначение("ИзменениеЦены"+инд,Значения.ИзменениеЦены);
СохранитьЗначение("НакладнаяСКорректировкой"+инд,Значения.НакладнаяСКорректировкой);
инд = инд + 1;
КонецЦикла;
КонецПроцедуры

хотя бы так можно сделать, потом при загрузке соответственно грузить по индексам аналогично
---
спасибо, получилось.Можно сделать так, чтобы можно сделать так, чтобы флажки сохранялись во всех открытых и проставленных документах, а не только последний открытый и проставленный документ сохранял?
---
хотя итак сохраняет все документы)
---
а нет, неправильно ставит). Во всех документах ставит флажки, насколько я понял там где количество колонок совпадает, ставит даже в тех документах, которые не были открыты.Может кто-нибудь знает почему так происходит?
так сохраняю:

```1c
    инд = 0;
    СохранитьЗначение("КоличествоЭлементов",ТаблицаСтатуса.Количество());
    Для Каждого Значения Из ТаблицаСтатуса Цикл
    ВыборСсылки=ВыборМЗ.Ссылка;
    СохранитьЗначение("ВыборМЗ",ВыборСсылки);
    СохранитьЗначение("Вернул"+инд,Значения.Вернул);
    СохранитьЗначение("НакладнаяЗакрыта"+инд,Значения.НакладнаяЗакрыта);
    СохранитьЗначение("БезПечати"+инд,Значения.БезПечати);
    СохранитьЗначение("ИзменениеЦены"+инд,Значения.ИзменениеЦены);
    СохранитьЗначение("НакладнаяСКорректировкой"+инд,Значения.НакладнаяСКорректировкой);
    инд = инд + 1;
    КонецЦикла;
```

так восстанавливаю:

```1c
    инд = 0;
    Восс=ВосстановитьЗначение("КоличествоЭлементов");
    Для Каждого Значения Из ТаблицаСтатуса Цикл
    Значения.Вернул=ВосстановитьЗначение("Вернул"+инд);
    Значения.НакладнаяЗакрыта=ВосстановитьЗначение("НакладнаяЗакрыта"+инд);
    Значения.БезПечати=ВосстановитьЗначение("БезПечати"+инд);
    Значения.ИзменениеЦены=ВосстановитьЗначение("ИзменениеЦены"+инд);
    Значения.НакладнаяСКорректировкой=ВосстановитьЗначение("НакладнаяСКорректировкой"+инд);
    инд = инд + 1;
    КонецЦикла;
```
---
Можно целиком сохранить ТаблицуЗначений

```1c
    СохранитьЗначение("ТаблицаСтатуса", ТаблицаСтатуса);
```

Также на формах есть возможность сохранять значения, например, на обычной форме свойство "СохраняемыеЗначения".
---
ну раз пошла такая жара, можно в ключ добавлять УИД документа тоже)
инд = 0;
УИД = Строка(ВыборМЗ.Ссылка.УникальныйИдентификатор());
СохранитьЗначение("КоличествоЭлементов",ТаблицаСтатуса.Количество());
Для Каждого Значения Из ТаблицаСтатуса Цикл
ВыборСсылки=ВыборМЗ.Ссылка;
СохранитьЗначение("ВыборМЗ"+УИД ,ВыборСсылки);
СохранитьЗначение("Вернул"+УИД +инд,Значения.Вернул);
СохранитьЗначение("НакладнаяЗакрыта"+УИД +инд,Значения.НакладнаяЗакрыта);
СохранитьЗначение("БезПечати"+УИД +инд,Значения.БезПечати);
СохранитьЗначение("ИзменениеЦены"+УИД +инд,Значения.ИзменениеЦены);
СохранитьЗначение("НакладнаяСКорректировкой"+УИД +инд,Значения.НакладнаяСКорректировкой);
инд = инд + 1;
КонецЦикла;

аналогично действуем при чтении
---
открываю обработку, в нескольких маршрутных заданиях, накладным ставлю флажки,но флажки сохраняются только в последнем документе, в котором ставил флажки.То есть в том документе, при котором нажал на кнопку закрыть. Как сделать так, чтобы во всех документах сохранял флажки?
---
"Не то, чтобы это всё было нужно в реальной задаче, но раз начал сохранять поля, то иди в своём увлечении до конца"
---
Если хотите, чтобы вам предложили грамотное решение, то нужно предоставить все необходимые данные для решения задачи. Напишите версию платформы, версию конфигурацию. Опишите что за обработка у вас, как она должна работать и как сейчас работает и лучше приложите саму обработку в виде файла к комментарию
---
с помощью обработки пользователь ставит статусы накладным, которые указаны в маршрутном задании.Например накладная закрыта, если накладная корректировалась, ставится статус "накладная с корректировкой", если в накладная вернулась без печати, то ставится статус "без печати" и т.д
УТ 10, 8.3. Обычная форма.
В данной обработке,значение флажков сохраняются только в последнем документе. Сохраняются флажки документа, при котором была нажата кнопка "закрыть".
Как сделать так, чтобы флажки сохранялись во всех документах, в которых были проставлены флажки?
---
ага, теперь понятней. Смотрите, правильней будет сделать так:
1) создать функцию записи данных из таблицы в хранилище, причем записывать по ключу документа из табличной части, а не МЗ. Зачем именно так - один и тот же документ может входить в разные МЗ, а также состав и количество документов в МЗ может меняться, поэтому нужен разрез именно по документам. Индекс в ключе не нужен при этом
2) создать функцию загрузки данных из хранилища в таблицу, также по ключу документа из данных, полученных вашим запросом
3) вызывать функцию сохранения при изменении МЗ на форме, перед выполнением запроса по новому МЗ и при закрытии формы.
4) вызывать функцию загрузки при изменении МЗ на форме, после выполнения запроса по новому МЗ
---
не очень понял).Можно пример?
---
флакжки сохраняются только у тех документов,которые были открыты , когда была нажата кнопка "закрыть"
---
добавил код прямо в обработку, но конфигурация другая - реквизиты формы слетели на строковой тип, поэтому скопируйте код из нее в свою обработку.
---
спасибо большое. Работает как нужно)