Обычные формы. С помощью этой обработки пользователи ставят статусы накладным маршрутного задания, например в пути, приехал без печати и т.д. Проставленные статусы сохраняются в РС(периодический-в пределах секунды и независимый).Для того, чтобы все пользователи видели статусы документов , пытаюсь восстановить уже записанные в РС статусы. Но пока что корректно брать нужные данные не получается.Может скажите, что делаю не так и покажите правильный пример

```1c
    Процедура ЗагрузитьСтатусыДокументов()

    Для каждого строкаТЗ Из ТаблицаСтатуса Цикл
    УИД2 =строкаТЗ.Документ;

    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | СтатусыДокументовСрезПоследних.Документ КАК Документ1,
    | СтатусыДокументовСрезПоследних.Вернул,
    | СтатусыДокументовСрезПоследних.НакладнаяЗакрыта,
    | СтатусыДокументовСрезПоследних.БезПечати,
    | СтатусыДокументовСрезПоследних.ИзменениеЦены,
    | СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой,
    | СтатусыДокументовСрезПоследних.Период
    |ИЗ
    | РегистрСведений.СтатусыДокументов.СрезПоследних КАК СтатусыДокументовСрезПоследних
    |ГДЕ
    | СтатусыДокументовСрезПоследних.Документ = &Документ";
    Запрос.УстановитьПараметр("Документ",УИД2);
    Выборка=Запрос.Выполнить().Выгрузить();

    Отбор = Новый Структура;
    Отбор.Вставить("Документ",УИД2);
    МассивСтрок=Выборка.НайтиСтроки(Отбор);
    КонецЦикла;

    Для Каждого СтрокаТаблицы Из ТаблицаСтатуса Цикл
    СтрокаТаблицы.Вернул=МассивСтрок[0].Вернул;
    СтрокаТаблицы.НакладнаяЗакрыта=МассивСтрок[0].НакладнаяЗакрыта;
    СтрокаТаблицы.БезПечати=МассивСтрок[0].БезПечати;
    СтрокаТаблицы.ИзменениеЦены=МассивСтрок[0].ИзменениеЦены;
    СтрокаТаблицы.НакладнаяСКорректировкой=МассивСтрок[0].НакладнаяСКорректировкой;

    КонецЦикла;
    КонецПроцедуры

    Процедура ПриОткрытии()
    Таблица=ТаблицаСтатуса;
    Таблица.Колонки.Добавить("Вернул", Новый ОписаниеТипов("Булево"));
    Таблица.Колонки.Добавить("НакладнаяЗакрыта", Новый ОписаниеТипов("Булево"),"Накладная закрыта");
    Таблица.Колонки.Добавить("БезПечати", Новый ОписаниеТипов("Булево"),"Без печати");
    Таблица.Колонки.Добавить("ИзменениеЦены", Новый ОписаниеТипов("Булево",),"Изменение цены");
    Таблица.Колонки.Добавить("НакладнаяСКорректировкой", Новый ОписаниеТипов("Булево"),"Накладная с корректировкой");
    Таблица.Колонки.Добавить("НомерНакладной", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(30)),"Номер накладной");
    Таблица.Колонки.Добавить("ДатаНакладной", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)),"Дата накладной");
    Таблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
    Таблица.Колонки.Добавить("СуммаНакладной", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)),"Сумма накладной");
    Таблица.Колонки.Добавить("НомерМаршрутногоЗадания", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(20)),"Номер маршрутного задания");
    Таблица.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
    Таблица.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(200)));
    ЭлементыФормы.ТаблицаСтатуса.СоздатьКолонки();

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

    ЗагрузитьСтатусыДокументов();
    КонецПроцедуры

    Процедура ВыборМЗПриИзменении(Элемент)

    ТаблицаСтатуса.Очистить();

    ЗагрузитьСтатусыДокументов();

    СсылкаМЗ=ВыборМЗ.Ссылка;
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    | ВложенныйЗапрос.Вернул,
    | ВложенныйЗапрос.НакладнаяЗакрыта,
    | ВложенныйЗапрос.БезПечати,
    | ВложенныйЗапрос.ИзменениеЦены,
    | ВложенныйЗапрос.НакладнаяСКорректировкой
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | СтатусыДокументов.Вернул КАК Вернул,
    | СтатусыДокументов.НакладнаяЗакрыта КАК НакладнаяЗакрыта,
    | СтатусыДокументов.БезПечати КАК БезПечати,
    | СтатусыДокументов.ИзменениеЦены КАК ИзменениеЦены,
    | СтатусыДокументов.НакладнаяСКорректировкой КАК НакладнаяСКорректировкой,
    | СтатусыДокументов.Документ КАК Документ
    | ИЗ
    | РегистрСведений.СтатусыДокументов КАК СтатусыДокументов) КАК ВложенныйЗапрос
    | ПО МаршрутноеЗаданиеДокументыРеализации.Ссылка = ВложенныйЗапрос.Документ
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
    | И НЕ МаршрутноеЗаданиеДокументыРеализации.Реализация.ПометкаУдаления";
    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    Выборка2=Запрос.Выполнить().Выгрузить();

    Выборка=Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл
    НовСтрока = ТаблицаСтатуса.Добавить();
    НовСтрока.НомерНакладной = Выборка.НомерНакладной;
    НовСтрока.ДатаНакладной = Выборка.ДатаНакладной;
    НовСтрока.Контрагент = Выборка.Контрагент;
    НовСтрока.СуммаНакладной = Выборка.СуммаНакладной;
    НовСтрока.НомерМаршрутногоЗадания = Выборка.НомерМаршрутногоЗадания;
    НовСтрока.Документ = Выборка.Документ;
    КонецЦикла;

    ЗаписатьДанные(Выборка);
    КонецПроцедуры

    Процедура ЗаписатьДанные(Выборка)

    Менеджер = РегистрыСведений.СтатусыДокументов.СоздатьМенеджерЗаписи();
    Пока Выборка.Следующий() Цикл
    СсылкаМЗ=Выборка.Документ;

    Менеджер.Документ=Выборка.Документ;
    Менеджер.Прочитать();

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

    КонецЦикла;
    КонецПроцедуры
```
---
Конечный результат.Может кому-то в будущем пригодится

```1c
    Процедура ЗагрузитьСтатусыДокументов()
    СсылкаМЗ=ВыборМЗ.Ссылка;
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.Вернул, "-") КАК Вернул,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.НакладнаяЗакрыта, "-") КАК НакладнаяЗакрыта,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.БезПечати, "-") КАК БезПечати,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.ИзменениеЦены, "-") КАК ИзменениеЦены,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой, "-") КАК НакладнаяСКорректировкой,
    | СтатусыДокументовСрезПоследних.Комментарий,
    | ЛОЖЬ КАК СохранятьИзменения
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, ) КАК СтатусыДокументовСрезПоследних
    | ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = СтатусыДокументовСрезПоследних.Документ
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    ТаблицаСтатуса=Запрос.Выполнить().Выгрузить();

    КонецПроцедуры

    Процедура ПриОткрытии()
    Таблица=ТаблицаСтатуса;
    Таблица.Колонки.Добавить("СохранятьИзменения", Новый ОписаниеТипов("Булево"),"Сохранять изменения");
    Таблица.Колонки.Добавить("Вернул", Новый ОписаниеТипов("Булево"));
    Таблица.Колонки.Добавить("НакладнаяЗакрыта", Новый ОписаниеТипов("Булево"),"Накладная закрыта");
    Таблица.Колонки.Добавить("БезПечати", Новый ОписаниеТипов("Булево"),"Без печати");
    Таблица.Колонки.Добавить("ИзменениеЦены", Новый ОписаниеТипов("Булево",),"Изменение цены");
    Таблица.Колонки.Добавить("НакладнаяСКорректировкой", Новый ОписаниеТипов("Булево"),"Накладная с корректировкой");
    Таблица.Колонки.Добавить("НомерНакладной", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(30)),"Номер накладной");
    Таблица.Колонки.Добавить("ДатаНакладной", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)),"Дата накладной");
    Таблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
    Таблица.Колонки.Добавить("СуммаНакладной", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)),"Сумма накладной");
    Таблица.Колонки.Добавить("НомерМаршрутногоЗадания", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(20)),"Номер маршрутного задания");
    Таблица.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
    Таблица.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(200)));
    ЭлементыФормы.ТаблицаСтатуса.СоздатьКолонки();

    КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("Вернул");

    КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
    КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
    КолонкаФлаг.ДанныеФлажка = "Вернул";
    КолонкаФлаг.Данные = ";
    КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("Вернул").ЦветТекстаПоля.Красный;

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

    ЗагрузитьСтатусыДокументов();
    КонецПроцедуры

    Процедура ВыборМЗПриИзменении(Элемент)
    ТаблицаСтатуса.Очистить();
    ЗагрузитьСтатусыДокументов();
    КонецПроцедуры

    Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл

    Если НЕ Строка.СохранятьИзменения Тогда Продолжить;
    КонецЕсли;

    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;

    НаборЗаписей.Прочитать();

    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать();

    КонецЦикла;

    КонецПроцедуры
```
---
- (5) накинулись как гиены.
Вы ведь зарезали талант на корню - это мог бы Малевич от 1С!
А теперь человек сопьется(
---
...сопьется. одим Гкодером меньше будет!
---
Дальше первой процедуры не осилила.
Запросы в цикле - зло, тем более в таком простом случае.
Запрос по каждой строке таблицы, а потом цикл по таблице и запись чего? Результата последнего запроса в каждую строку?
В запросе отбор по документу, а потом в выборке отбор по тому же документу - это занафига? Для надежности?

```1c
    Процедура ЗагрузитьСтатусыДокументов()

    Запрос=Новый Запрос;
    Запрос.Текст="Выбрать * поместить тз из &тз тз;
    |ВЫБРАТЬ * ,
    | СтатусыДокументовСрезПоследних.Вернул,
    | СтатусыДокументовСрезПоследних.НакладнаяЗакрыта,
    | СтатусыДокументовСрезПоследних.БезПечати,
    | СтатусыДокументовСрезПоследних.ИзменениеЦены,
    | СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой,
    | СтатусыДокументовСрезПоследних.Период
    |ИЗ
    | тз тз
    | левое соединение РегистрСведений.СтатусыДокументов.СрезПоследних КАК СтатусыДокументовСрезПоследних
    | по СтатусыДокументовСрезПоследних.Документ = тз.Документ";

    Запрос.УстановитьПараметр("тз",ТаблицаСтатуса );
    ТаблицаСтатуса.Загрузить(Запрос.Выполнить().Выгрузить());

    КонецПроцедуры
```

Вместо * в запросе перечислить поля таблицы.
---
Поразительно, что я тоже не осилил ничего после первой процедуры... )))))))))))))
Утомляет...
---
(3)Первую процедуру вроде правильно сделал:

```1c
    Процедура ЗагрузитьСтатусыДокументов()
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | ТЗ.Вернул,
    | ТЗ.НакладнаяЗакрыта,
    | ТЗ.БезПечати,
    | ТЗ.ИзменениеЦены,
    | ТЗ.НакладнаяСКорректировкой,
    | ТЗ.НомерНакладной,
    | ТЗ.ДатаНакладной,
    | ТЗ.Контрагент,
    | ТЗ.СуммаНакладной,
    | ТЗ.НомерМаршрутногоЗадания,
    | ТЗ.Документ,
    | ТЗ.Комментарий
    |ПОМЕСТИТЬ Таблица
    |ИЗ
    | &ТЗ КАК ТЗ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | СтатусыДокументовСрезПоследних.Вернул,
    | СтатусыДокументовСрезПоследних.НакладнаяЗакрыта,
    | СтатусыДокументовСрезПоследних.БезПечати,
    | СтатусыДокументовСрезПоследних.ИзменениеЦены,
    | СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой,
    | СтатусыДокументовСрезПоследних.Документ,
    | Таблица.НомерНакладной,
    | Таблица.ДатаНакладной,
    | Таблица.Контрагент,
    | Таблица.СуммаНакладной,
    | Таблица.НомерМаршрутногоЗадания,
    | Таблица.Комментарий
    |ИЗ
    | Таблица КАК Таблица
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, ) КАК СтатусыДокументовСрезПоследних
    | ПО СтатусыДокументовСрезПоследних.Документ = Таблица.Документ";

    Запрос.УстановитьПараметр("ТЗ",ТаблицаСтатуса);
    ТаблицаСтатуса=Запрос.Выполнить().Выгрузить();
    КонецПроцедуры
```

дальше как правильно сделать?
---
Сравните

```1c
    Выбрать * поместить тз из &тз тз;
```

с вашим кодом...

Зачем куча лишних строк????

Что вы дальше то хотите ?
Вы получили данные из РС , выгрузили их в свою Таблицу...
По условию вашей темы - все выполнено....
---
сейчас обработка не записывает данные в РС и не берет значения статусов для нужных документов.
Допустим в МЗ №1 есть 3 накладных (№1,№2,№3). 20.08.2019 с помощью этой обработки накладным №1,№2,№3 поставили статус "вернул".Потом 21.08.2019 открыли МЗ №1 , в этим накладных должны стоять статусы "вернул", то есть обработка взяла последнюю запись каждого из трех накладных и проставила.21.08.2019 добавили еще статусы "накладная с корректировкой". И при следующем открытии у этих трех накладных должны стоять статусы "вернул" и "накладная с корректировкой". У обработки сейчас не стоят эти уже проставленные статусы.
Надеюсь понятно объяснил

```1c
    Процедура ЗагрузитьСтатусыДокументов()
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | ТЗ.Вернул,
    | ТЗ.НакладнаяЗакрыта,
    | ТЗ.БезПечати,
    | ТЗ.ИзменениеЦены,
    | ТЗ.НакладнаяСКорректировкой,
    | ТЗ.НомерНакладной,
    | ТЗ.ДатаНакладной,
    | ТЗ.Контрагент,
    | ТЗ.СуммаНакладной,
    | ТЗ.НомерМаршрутногоЗадания,
    | ТЗ.Документ,
    | ТЗ.Комментарий
    |ПОМЕСТИТЬ Таблица
    |ИЗ
    | &ТЗ КАК ТЗ
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | СтатусыДокументовСрезПоследних.Вернул,
    | СтатусыДокументовСрезПоследних.НакладнаяЗакрыта,
    | СтатусыДокументовСрезПоследних.БезПечати,
    | СтатусыДокументовСрезПоследних.ИзменениеЦены,
    | СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой,
    | СтатусыДокументовСрезПоследних.Документ,
    | Таблица.НомерНакладной,
    | Таблица.ДатаНакладной,
    | Таблица.Контрагент,
    | Таблица.СуммаНакладной,
    | Таблица.НомерМаршрутногоЗадания,
    | Таблица.Комментарий
    |ИЗ
    | Таблица КАК Таблица
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, ) КАК СтатусыДокументовСрезПоследних
    | ПО СтатусыДокументовСрезПоследних.Документ = Таблица.Документ";

    Запрос.УстановитьПараметр("ТЗ",ТаблицаСтатуса);
    ТаблицаСтатуса=Запрос.Выполнить().Выгрузить();
    КонецПроцедуры

    Процедура ПриОткрытии()
    Таблица=ТаблицаСтатуса;
    Таблица.Колонки.Добавить("Вернул", Новый ОписаниеТипов("Булево"));
    Таблица.Колонки.Добавить("НакладнаяЗакрыта", Новый ОписаниеТипов("Булево"),"Накладная закрыта");
    Таблица.Колонки.Добавить("БезПечати", Новый ОписаниеТипов("Булево"),"Без печати");
    Таблица.Колонки.Добавить("ИзменениеЦены", Новый ОписаниеТипов("Булево",),"Изменение цены");
    Таблица.Колонки.Добавить("НакладнаяСКорректировкой", Новый ОписаниеТипов("Булево"),"Накладная с корректировкой");
    Таблица.Колонки.Добавить("НомерНакладной", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(30)),"Номер накладной");
    Таблица.Колонки.Добавить("ДатаНакладной", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)),"Дата накладной");
    Таблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
    Таблица.Колонки.Добавить("СуммаНакладной", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)),"Сумма накладной");
    Таблица.Колонки.Добавить("НомерМаршрутногоЗадания", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(20)),"Номер маршрутного задания");
    Таблица.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
    Таблица.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(200)));
    ЭлементыФормы.ТаблицаСтатуса.СоздатьКолонки();

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

    ЗагрузитьСтатусыДокументов();
    КонецПроцедуры

    Процедура ВыборМЗПриИзменении(Элемент)

    ТаблицаСтатуса.Очистить();

    ЗагрузитьСтатусыДокументов();

    СсылкаМЗ=ВыборМЗ.Ссылка;
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    | ВложенныйЗапрос.Вернул,
    | ВложенныйЗапрос.НакладнаяЗакрыта,
    | ВложенныйЗапрос.БезПечати,
    | ВложенныйЗапрос.ИзменениеЦены,
    | ВложенныйЗапрос.НакладнаяСКорректировкой
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | СтатусыДокументов.Вернул КАК Вернул,
    | СтатусыДокументов.НакладнаяЗакрыта КАК НакладнаяЗакрыта,
    | СтатусыДокументов.БезПечати КАК БезПечати,
    | СтатусыДокументов.ИзменениеЦены КАК ИзменениеЦены,
    | СтатусыДокументов.НакладнаяСКорректировкой КАК НакладнаяСКорректировкой,
    | СтатусыДокументов.Документ КАК Документ
    | ИЗ
    | РегистрСведений.СтатусыДокументов КАК СтатусыДокументов) КАК ВложенныйЗапрос
    | ПО МаршрутноеЗаданиеДокументыРеализации.Ссылка = ВложенныйЗапрос.Документ
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
    | И НЕ МаршрутноеЗаданиеДокументыРеализации.Реализация.ПометкаУдаления";
    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    Выборка2=Запрос.Выполнить().Выгрузить();

    Выборка=Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл
    НовСтрока = ТаблицаСтатуса.Добавить();
    НовСтрока.НомерНакладной = Выборка.НомерНакладной;
    НовСтрока.ДатаНакладной = Выборка.ДатаНакладной;
    НовСтрока.Контрагент = Выборка.Контрагент;
    НовСтрока.СуммаНакладной = Выборка.СуммаНакладной;
    НовСтрока.НомерМаршрутногоЗадания = Выборка.НомерМаршрутногоЗадания;
    НовСтрока.Документ = Выборка.Документ;
    КонецЦикла;

    ЗаписатьДанные(Выборка);
    КонецПроцедуры

    Процедура ЗаписатьДанные(Выборка)

    Менеджер = РегистрыСведений.СтатусыДокументов.СоздатьМенеджерЗаписи();
    Пока Выборка.Следующий() Цикл
    СсылкаМЗ=Выборка.Документ;

    Менеджер.Документ=Выборка.Документ;
    Менеджер.Прочитать();
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    | ВложенныйЗапрос.Вернул,
    | ВложенныйЗапрос.НакладнаяЗакрыта,
    | ВложенныйЗапрос.БезПечати,
    | ВложенныйЗапрос.ИзменениеЦены,
    | ВложенныйЗапрос.НакладнаяСКорректировкой
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | СтатусыДокументов.Вернул КАК Вернул,
    | СтатусыДокументов.НакладнаяЗакрыта КАК НакладнаяЗакрыта,
    | СтатусыДокументов.БезПечати КАК БезПечати,
    | СтатусыДокументов.ИзменениеЦены КАК ИзменениеЦены,
    | СтатусыДокументов.НакладнаяСКорректировкой КАК НакладнаяСКорректировкой,
    | СтатусыДокументов.Документ КАК Документ
    | ИЗ
    | РегистрСведений.СтатусыДокументов КАК СтатусыДокументов) КАК ВложенныйЗапрос
    | ПО МаршрутноеЗаданиеДокументыРеализации.Ссылка = ВложенныйЗапрос.Документ
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
    | И НЕ МаршрутноеЗаданиеДокументыРеализации.Реализация.ПометкаУдаления";
    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    Выборка=Запрос.Выполнить().Выбрать();
    КонецЦикла;

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

    КонецЦикла;
    КонецПроцедуры
```
---
У вас в теме Как прочитать данные РС и записать в таблицу?
Вы прочли с нашей помощью, и записали в таблицу...
Все!
Закрывайте тему...
Переосмыслите всю эту тему и может поднапрягитесь в чтении учебной литературы...
---
user614822
(2) catena
Спасибо большое
 у меня в описании темы:
"Проставленные статусы сохраняются в РС(периодический-в пределах секунды и независимый).Для того, чтобы все пользователи видели статусы документов , пытаюсь восстановить уже записанные в РС статусы"
---
сейчас могу получить только все записи РС. Как получить только те записи накладных, которые принадлежат выбранному МЗ?
---
Передавайте в виртуальную таблицу параметр и отбирайте только те что в вам нужны...
Вы же как -то отбирали ваши данные в МЗ, вот так же отбыирайте и из РС
---
в значение параметра не понимаю какую ссылку вставить, откуда брать
С МЗ я делал так:

```1c
    Процедура ВыборМЗПриИзменении(Элемент)

    СохранитьСтатусыДокументов();

    ТаблицаСтатуса.Очистить();
    СсылкаМЗ=ВыборМЗ.Ссылка;
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
    | И НЕ МаршрутноеЗаданиеДокументыРеализации.Реализация.ПометкаУдаления";
    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    Выборка=Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл
    НовСтрока = ТаблицаСтатуса.Добавить();
    НовСтрока.НомерНакладной = Выборка.НомерНакладной;
    НовСтрока.ДатаНакладной = Выборка.ДатаНакладной;
    НовСтрока.Контрагент = Выборка.Контрагент;
    НовСтрока.СуммаНакладной = Выборка.СуммаНакладной;
    НовСтрока.НомерМаршрутногоЗадания = Выборка.НомерМаршрутногоЗадания;
    НовСтрока.Документ = Выборка.Документ;
    КонецЦикла;

    ЗагрузитьСтатусыДокументов();

    КонецПроцедуры
```
---
Как в вашей обработке формируется изначально тот список документов, который видите?
По каким критериям? То есть каким образом фильтруется информация для просмотра?
---
в обработке выбирается документ маршрутное задание. И в таблице этой обработке, появляются накладные, которые включены в это МЗ. И этим накладным флажками присваиваются статусы
Я вот формировал и обработка работала, но статусы сохраняла только для того пользователя, кто проставил статусы, но оказалось, что все пользователи должны видеть проставленные статусы:

```1c
    Процедура ВыборМЗПриИзменении(Элемент)

    СохранитьСтатусыДокументов();

    ТаблицаСтатуса.Очистить();
    СсылкаМЗ=ВыборМЗ.Ссылка;
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
    | И НЕ МаршрутноеЗаданиеДокументыРеализации.Реализация.ПометкаУдаления";
    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    Выборка=Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл
    НовСтрока = ТаблицаСтатуса.Добавить();
    НовСтрока.НомерНакладной = Выборка.НомерНакладной;
    НовСтрока.ДатаНакладной = Выборка.ДатаНакладной;
    НовСтрока.Контрагент = Выборка.Контрагент;
    НовСтрока.СуммаНакладной = Выборка.СуммаНакладной;
    НовСтрока.НомерМаршрутногоЗадания = Выборка.НомерМаршрутногоЗадания;
    НовСтрока.Документ = Выборка.Документ;
    КонецЦикла;

    ЗагрузитьСтатусыДокументов();

    КонецПроцедуры
```
---
этот запрос, в консоле запросов получает то, что мне нужно.Но не получается тот результат, когда вставляю в обработку. Не понимаю, что делаю не так

```1c
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    | СтатусыДокументовСрезПоследних.Вернул,
    | СтатусыДокументовСрезПоследних.НакладнаяЗакрыта,
    | СтатусыДокументовСрезПоследних.БезПечати,
    | СтатусыДокументовСрезПоследних.ИзменениеЦены,
    | СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, ) КАК СтатусыДокументовСрезПоследних
    | ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = СтатусыДокументовСрезПоследних.Документ
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка";

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

```1c
    .................
    | РегистрСведений.СтатусыДокументов.СрезПоследних(,Документ=&Ссылка ) КАК СтатусыДокументовСрезПоследних
```
---
не понял как должен выглядеть запрос.У меня же СсылкаМЗ-это ссылка маршрутного задания. А документ РС статусы документов-ссылка накладного
---
ну значит так

```1c
    РегистрСведений.СтатусыДокументов.СрезПоследних(,Документ.Ссылка=&Ссылка ) КАК СтатусыДокументовСрезПоследних
```

Наоборот...
---
у меня в статусы документов нету Документ.Реализация
сможете привести полный запрос?вставить в моем запросе, куда нужно
---
Вы понимаете что такое Виртуальная таблица регистра?
---
да, срез первых и срез последних в РС. В РН обороты, остатки, остатки и обороты
---
Ссылку на накладную вставил в условие виртуальной таблицы

```1c
    ВЫБРАТЬ
    МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
    МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    СтатусыДокументовСрезПоследних.Вернул,
    СтатусыДокументовСрезПоследних.НакладнаяЗакрыта,
    СтатусыДокументовСрезПоследних.БезПечати,
    СтатусыДокументовСрезПоследних.ИзменениеЦены,
    СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой
    ИЗ
    Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, Документ.Ссылка = &Ссылка) КАК СтатусыДокументовСрезПоследних
    ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = СтатусыДокументовСрезПоследних.Документ
    ГДЕ
    МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
```
---
ну так теперь у вас условие аж в 2 местах....

```1c
    ГДЕ
    МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
```

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

```1c
    ВЫБРАТЬ
    СтатусыДокументовСрезПоследних.Вернул,
    СтатусыДокументовСрезПоследних.НакладнаяЗакрыта,
    СтатусыДокументовСрезПоследних.БезПечати,
    СтатусыДокументовСрезПоследних.ИзменениеЦены,
    СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой,
    СтатусыДокументовСрезПоследних.Документ,
    СтатусыДокументовСрезПоследних.НомерНакладной,
    СтатусыДокументовСрезПоследних.ДатаНакладной,
    СтатусыДокументовСрезПоследних.Контрагент,
    СтатусыДокументовСрезПоследних.СуммаНакладной,
    СтатусыДокументовСрезПоследних.НомерМаршрутногоЗадания
    ИЗ
    РегистрСведений.СтатусыДокументов.СрезПоследних(, Документ.Ссылка = &Ссылка) КАК СтатусыДокументовСрезПоследних
```
---
Имел , да ... )
Так работает хоть как-то?
---
работает то работает, но если накладных нету в РС, таблица в обработке пустая, так как берет только из РС
---
главное чтобы она хоть в какой-то чаксти работала корректно, а расширить ее работу всегда гораздо легче
---
вот обработка, может так легче будет
ресурсы статус и EDi лишние
---
почему реквизит формы ВыборМЗ имеет тип Строка? Хотя явно должна быть ссылка...
---
как строка?
у меня имеет тип ДокументСсылка.МаршрутноеЗадание
---
я уже понял, только вот не понял , вы прислали исходную версию обработки?
Или ту что вы сейчас уже доработали?
---
то,что я сейчас дорабатываю.Вот исходная обработка, которая работает как нужно, но сохраняет статусы только для того, кто проставил статусы
---
вам нужно было разобраться почему именно так происходит, а не пытаться глобально ее переделать...
---
я знаю почему так происходит .Потому что "сохранить значение" и "восстановить значение" сохраняет только для конкретного пользователя
---
Погорячился...
---
есть такие методы как сохранить значение и восстановить значение. Восстановить значение восстанавливает значения, которые были сохранены с помощью метода сохранить значение
---
Уже разобрался...
Никогда такой хрени не применял просто...
---
так что все-таки нужно из РС брать проставленные статусы,да?
---
ну конечно из РС, и туда же записывать, так что общее направление вы выбрали правильно на мой взгляд
---
давайте снова ...
На каком сейчас этапе ваша новая обработка?
Она загружает все корректно?
Или ничего не получает?
---
сейчас нужно откуда-то взять ссылки на накладные,чтобы передать в параметр запроса "Ссылка", но пока что не понимаю откуда взять. потом уже точно видно будет.В консоле запросов все корректно загружает
---
Попробуйте как я писал
МаршрутноеЗаданиеДокументыРеализации.Ссылка= &Ссылка
---
Вопрос еще по поводу вот этой строчки в конце процедуры ЗагрузитьСтатусыДокументов()

```1c
    ЗаписатьДанные(ТаблицаСтатуса);
```

Зачем она?
---
до этого я создавал тему. В этой теме посоветовали сделать отдельную процедуру, которая будет записывать данные в РС.И

```1c
    ЗаписатьДанные(ТаблицаСтатуса);
```

передает туда данные.
Изначально посоветовали сделать так:

```1c
    Процедура ЗагрузитьСтатусыДокументов()

    Запрос = новый запрос;
    Запрос.текст = "Выбрать * из РегистрСведений.Вашрегистр.СрезПоследних(,ОТБОР_ЕСЛИ_НУЖЕН) как таблица";

    ВашаТаблицаФормы = Запрос.Выполнить().Выгрузить();

    КонецПроцедуры

    Процедура ПриОткрытии()

    //....
    ЗагрузитьСтатусыДокументов();

    КонецПроцедуры

    Процедура ВыборМЗПриИзменении(Элемент)

    ТекущиеДанные = ЭлементыФормы.ВашаТаблицаФормы.ТекущиеДанные;
    ЗаписатьДанные(ТекущиеДанные);

    КонецПроцедуры

    процедура ЗаписатьДанные(ТекущиеДанные)

    Менеджер = РегистрыСведений.Вашрегистр.СоздатьМенеджерЗаписи();
    Менеджер.Измерение1 = ТекущиеДанные .Измерение1;
    //.......
    Менеджер.Измерение999 = ТекущиеДанные .Измерение999;
    МенеджерЗаписи.Прочитать();
    МенеджерЗаписи.Флажок1= ТекущиеДанные.Флажок1;
    //.....
    МенеджерЗаписи.Флажок999= ТекущиеДанные.Флажок999;

    МенеджерЗаписи.Записать();
    Конецпроцедуры;
```
---
Но ведь вы пытаетесь записывать данные сразу после прочтения , еще ничего не изменив - тут явная ошибка...
Я про новую обработку...
---
покажите пожалуйста как и как куда вставить запись в РС
---
Никуда пока не надо ничего вставлять...
Вы сначала прочитайте нормально.
Не хватайтесь за все сразу...

А записывать надо в процедуре по команде кнопки Записать
При чем старая процедура мне показалась работоспособной а у вас ее вообще нету
---
Мы этот этап уже тоже прошли...
Когда я советовал убрать Соединение...
давайте к текущим проблемам...

Вот так попробовали

```1c
    МаршрутноеЗаданиеДокументыРеализации.Ссылка= &Ссылка
```
---
сделал так:
Процедура ЗагрузитьСтатусыДокументов()

     Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
                 | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
                 | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
                 | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
                 | МаршрутноеЗаданиеДокументыРеализации.Реализация КАК Документ,
                 | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
                 | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
                 | ЕСТЬNULL(СтатусыДокументовСрезПоследних.Вернул, ""-"") КАК Вернул,
                 | ЕСТЬNULL(СтатусыДокументовСрезПоследних.НакладнаяЗакрыта, ""-"") КАК НакладнаяЗакрыта,
                 | ЕСТЬNULL(СтатусыДокументовСрезПоследних.БезПечати, ""-"") КАК БезПечати,
                 | ЕСТЬNULL(СтатусыДокументовСрезПоследних.ИзменениеЦены, ""-"") КАК ИзменениеЦены,
                 | ЕСТЬNULL(СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой, ""-"") КАК НакладнаяСКорректировкой
                 |ИЗ
                 | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
                 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, ) КАК СтатусыДокументовСрезПоследних
                 | ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = СтатусыДокументовСрезПоследних.Документ
                 |ГДЕ
                 | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка";

    Запрос.УстановитьПараметр("ТЗ",ТаблицаСтатуса);
 Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    ТаблицаСтатуса=Запрос.Выполнить().Выгрузить();
 ЗаписатьДанные(ТаблицаСтатуса);
КонецПроцедуры
Записи в таблице один раз дублирует
---
аа, ну я же в двух разных местах делаю два запроса
---
Удалите ту строку , которая зачеркнута

Запрос.УстановитьПараметр("ТЗ",ТаблицаСтатуса);
Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
ТаблицаСтатуса=Запрос.Выполнить().Выгрузить();
ЗаписатьДанные(ТаблицаСтатуса);
КонецПроцедуры
Записи в таблице один раз дублирует
---
Что значит один раз дублирует - поясните?
---
в МЗ три документа:
№1
№2
№3

А обработка выводит:
№1
№2
№3
№1
№2
№3
---
с одинаковыми статусами?
---
да.это думаю из-за этого:

```1c
    Процедура ВыборМЗПриИзменении(Элемент)

    ТаблицаСтатуса.Очистить();

    ЗагрузитьСтатусыДокументов();

    СсылкаМЗ=ВыборМЗ.Ссылка;
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    | СтатусыДокументовСрезПоследних.Вернул,
    | СтатусыДокументовСрезПоследних.НакладнаяЗакрыта,
    | СтатусыДокументовСрезПоследних.БезПечати,
    | СтатусыДокументовСрезПоследних.ИзменениеЦены,
    | СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, ) КАК СтатусыДокументовСрезПоследних
    | ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = СтатусыДокументовСрезПоследних.Документ
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
    | И НЕ МаршрутноеЗаданиеДокументыРеализации.Реализация.ПометкаУдаления";
    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    Выборка2=Запрос.Выполнить().Выгрузить();
    Отбор=Новый Структура;
    Отбор.Вставить("Документ",СсылкаМЗ);
    МассивСтрок=Выборка2.НайтиСтроки(Отбор);

    Выборка=Запрос.Выполнить().Выбрать();

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

    //ЗаписатьДанные(Выборка2);
    КонецПроцедуры
```

здесь в таблицу статусы заносятся записи
---
ну конечно!
Вы сначала загружаете , а потом еще и построчно добавляете...
Убирайте построчное добавление
---
Сейчас проверяю как работает.Сейчас вот такой код получился:

```1c
    Процедура ЗагрузитьСтатусыДокументов()

    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.Вернул, "-") КАК Вернул,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.НакладнаяЗакрыта, "-") КАК НакладнаяЗакрыта,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.БезПечати, "-") КАК БезПечати,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.ИзменениеЦены, "-") КАК ИзменениеЦены,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой, "-") КАК НакладнаяСКорректировкой
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, ) КАК СтатусыДокументовСрезПоследних
    | ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = СтатусыДокументовСрезПоследних.Документ
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка";

    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    ТаблицаСтатуса=Запрос.Выполнить().Выгрузить();

    КонецПроцедуры

    Процедура ПриОткрытии()
    Таблица=ТаблицаСтатуса;
    Таблица.Колонки.Добавить("Вернул", Новый ОписаниеТипов("Булево"));
    Таблица.Колонки.Добавить("НакладнаяЗакрыта", Новый ОписаниеТипов("Булево"),"Накладная закрыта");
    Таблица.Колонки.Добавить("БезПечати", Новый ОписаниеТипов("Булево"),"Без печати");
    Таблица.Колонки.Добавить("ИзменениеЦены", Новый ОписаниеТипов("Булево",),"Изменение цены");
    Таблица.Колонки.Добавить("НакладнаяСКорректировкой", Новый ОписаниеТипов("Булево"),"Накладная с корректировкой");
    Таблица.Колонки.Добавить("НомерНакладной", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(30)),"Номер накладной");
    Таблица.Колонки.Добавить("ДатаНакладной", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)),"Дата накладной");
    Таблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
    Таблица.Колонки.Добавить("СуммаНакладной", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)),"Сумма накладной");
    Таблица.Колонки.Добавить("НомерМаршрутногоЗадания", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(20)),"Номер маршрутного задания");
    Таблица.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
    Таблица.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(200)));
    ЭлементыФормы.ТаблицаСтатуса.СоздатьКолонки();

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

    ЗагрузитьСтатусыДокументов();
    КонецПроцедуры

    Процедура ВыборМЗПриИзменении(Элемент)

    ТаблицаСтатуса.Очистить();

    ЗагрузитьСтатусыДокументов();
    КонецПроцедуры
```
---
И загружает из РС все красиво, скорее всего...

Теперь перейдем к сохранению изменений...
---
вы правы,вроде корректно загружает
---
Скопируйте Процедуру из старой обработки и подключите ее к кнопке...

```1c
    Процедура КнопкаЗаписатьНажатие(Кнопка)
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл
    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;
    НаборЗаписей.Отбор.УникальныйИдентификатор.Установить(мУникальный);

    НаборЗаписей.Прочитать();

    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.УникальныйИдентификатор = мУникальный;
    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать(Ложь);
    КонецЦикла;
    КонецПроцедуры
```
---
Процедура из старой обработки на мой взгляд вполне работоспособна...
Единственно , что я не пойму глобальной политики - зачем перезаписывать заново старые записи, которые не были изменены...
То есть записываются в РС все повторно с текущей датой и текущим пользователем.
Так нужно?
---
нужно чтобы если например по накладному №1 есть запись в РС, и там стоит статус"вернул" и в слудующий раз открыли эту накладную ,оставили статус "вернул" и добавили статус "накладная с корректировкой".Так не должны создаваться две записи в РС, а должна перезаписываться старая запись накладной №1, с статусами вернул и накладная с корректировкой.
Думаю, что так будет лучше
---
Будет правильней сравнивать статус , хранимый в РС с тем что в Таблице и если они отличаются, то сохранять
---
а старая обработка всегда создает новые записи в РС
---
Нет записи в РС не корректируются!
Я не про то ...
зачем записывать те, которые не менялись в таблице руками? Как я понял, вы меняете статусы в самой таблице?
---
Это просто моя недоработка, что записываются данные,которые не корректируются
да, меняю статусы в самой таблице,флажками
---
было бы гораздо лучше, если получилось бы сделать так, чтобы не записывались записи,которые не корректировались
---
Попробуйте вот так
Добавил
```1c
    Если НЕ НоваяЗапись.Статус= Строка .Статус Тогда Продолжить;
```

```1c
    Процедура КнопкаЗаписатьНажатие(Кнопка)
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл
    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;
    НаборЗаписей.Отбор.УникальныйИдентификатор.Установить(мУникальный);

    НаборЗаписей.Прочитать();
    Если НЕ НоваяЗапись.Статус= Строка .Статус Тогда Продолжить;
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.УникальныйИдентификатор = мУникальный;
    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать(Ложь);
    КонецЦикла;
    КонецПроцедуры
```
---
Только там надо добавить те статусы , которые редактируются в принципе...

```1c
    Если НЕ (
    НоваяЗапись.Статус= Строка Статус
    И НоваяЗапись.БезПечати= Строка .БезПечати)
    Тогда Продолжить;
```
---
так?:

```1c
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл
    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;
    НаборЗаписей.Отбор.УникальныйИдентификатор.Установить(мУникальный);

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

    НаборЗаписей.Записать(Ложь);
    КонецЕсли;
    КонецЦикла;
```
---
ну примерно, если вы добавили в этот ЕСЛИ все то что корректируете...
Запускайте и ТЕСТИРУЙТЕ быстрее , а то устал... )))))
---
почему-то теперь не записывается в РС

```1c
    Процедура ЗагрузитьСтатусыДокументов()
    СсылкаМЗ=ВыборМЗ.Ссылка;

    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация КАК Документ,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
    | МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.Вернул, "-") КАК Вернул,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.НакладнаяЗакрыта, "-") КАК НакладнаяЗакрыта,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.БезПечати, "-") КАК БезПечати,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.ИзменениеЦены, "-") КАК ИзменениеЦены,
    | ЕСТЬNULL(СтатусыДокументовСрезПоследних.НакладнаяСКорректировкой, "-") КАК НакладнаяСКорректировкой
    |ИЗ
    | Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументов.СрезПоследних(, ) КАК СтатусыДокументовСрезПоследних
    | ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = СтатусыДокументовСрезПоследних.Документ
    |ГДЕ
    | МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка";

    Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
    ТаблицаСтатуса=Запрос.Выполнить().Выгрузить();

    КонецПроцедуры

    Процедура ПриОткрытии()
    Таблица=ТаблицаСтатуса;
    Таблица.Колонки.Добавить("Вернул", Новый ОписаниеТипов("Булево"));
    Таблица.Колонки.Добавить("НакладнаяЗакрыта", Новый ОписаниеТипов("Булево"),"Накладная закрыта");
    Таблица.Колонки.Добавить("БезПечати", Новый ОписаниеТипов("Булево"),"Без печати");
    Таблица.Колонки.Добавить("ИзменениеЦены", Новый ОписаниеТипов("Булево",),"Изменение цены");
    Таблица.Колонки.Добавить("НакладнаяСКорректировкой", Новый ОписаниеТипов("Булево"),"Накладная с корректировкой");
    Таблица.Колонки.Добавить("НомерНакладной", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(30)),"Номер накладной");
    Таблица.Колонки.Добавить("ДатаНакладной", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)),"Дата накладной");
    Таблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
    Таблица.Колонки.Добавить("СуммаНакладной", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)),"Сумма накладной");
    Таблица.Колонки.Добавить("НомерМаршрутногоЗадания", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(20)),"Номер маршрутного задания");
    Таблица.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
    Таблица.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(200)));
    ЭлементыФормы.ТаблицаСтатуса.СоздатьКолонки();

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

    ЗагрузитьСтатусыДокументов();
    КонецПроцедуры

    Процедура ВыборМЗПриИзменении(Элемент)

    ТаблицаСтатуса.Очистить();

    ЗагрузитьСтатусыДокументов();

    КонецПроцедуры

    Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл
    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;

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

    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать(Ложь);
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
```
---
Во первых верните на место

```1c
    НоваяЗапись = НаборЗаписей.Добавить();
```

Потом
Отладчиком точку останова поставьте на новый Если и смотрите чему равны данные, явно в этой строчке все увидите...
---
не правильно сказал,говорит что новая запись не найдена, так как новая запись задается снизу
---
Ясно...
Моя ошибка....

```1c
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл
    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;

    НаборЗаписей.Прочитать();

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

    НаборЗаписей.Записать(Ложь);
    КонецЕсли;
    КонецЦикла;
```
---
вот набор записей в отладке.Пишет,что вернул не найдено
---
Раскройте НаборЗаписей.ЭтотОбъект , возможно они там лежат , ну поищите короче в отладке и исправте путь в процедуре
или в Отбор...
Даже скорее всего в НаборЗаписей.Отбор, то есть
НаборЗаписей.Отбор.Вернул и т д
---
нет только здесь находятся(на скрине)
попробовал так, но все та же ошибка:

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

    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать(Ложь);
```
---
Плюсик нажмите и посмотрите что внутри
И пробуйте
НаборЗаписей.Отбор.Вернул
---
в отборе только это
---
ну поактивнее , а в ЭтомОбъекте?
---
только нато,что на фото
---
только в смотреть значение в отдельном окне есть
---
Используйте...

Для каждого Запись из НаборЗаписей Цикл

КонецЦикла;

А я домой...
---
я так пробовал,может неправильно сделал.еще раз попробую
---
сделал так, но все равно записывает накладные в которых не было проставлены статусы:

```1c
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл
    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;

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

    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать();

    КонецЦикла;
```
---
Убирайте это, чтобы под ногами не путалось...
Так е выйдет...

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

Дело в том что НаборЗаписей в этом месте - это вся история изменения состояний вашего документа и так проверять нельзя.
Уж если так, то нужно сначала как-то найти последнюю запись в НаборЗаписей и вот ее сравнивать со строкой...
Ну или механизм запоминания изменений изменить, скажем добавив колонку "СохранятьИзменения" и записывать только те строки, в которых стоит галочка, а пользователь для изменений должен в самой изменяемой строке изменять минимум 2 галки - в самой колонке статуса и в "СохранятьИзменения" . А потом уже вот так

```1c
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл

    Если НЕ Строка.СохранятьИзмененияТогда Продолжить; КонецЕсли;

    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;

    НаборЗаписей.Прочитать();

    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать();

    КонецЦикла;
```
---
нельзя сравнивать без добавления флажка "сохранять изменения" и без проставления его каждый раз?Если нельзя, то лучше оставить как есть, то есть накладные без проставленного статуса тоже проставлялись
---
и такой момент.Сейчас обработка каждый раз делает новую запись в РС, независимо от того есть ли уже запись с этим накладным или нет. Как сделать так, чтобы запись с уже занесенным накладным в РС перезаписывалась?
Сделал так, но все равно делает новые записи:

```1c
    НаборЗаписей.Записать();
```
---
Перезаписывать записи РС невозможно!
Можно только удалять старые и создавать новые - при этом не сохраняется история и абсолютно теряется вообще весь изначальный смысл именно Регистра сведений. Проще все статусы тогда просто хранить в самих документах...
---
вот код:

```1c
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл
    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;

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

    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать();

    КонецЦикла;
```
---
Ну да - так будет записывать все строки из обработки и измененные и нет, что опять же не отражает полной картины - что менял пользователь, поскольку с его именем будут все записи и измененные и нет.
Общий механизм у вас немного не додуман, что вы хотите хранить и потом смотреть...
Может на самом деле перенести все статусы в документ да и не париться с РС? Если не нужна история изменений - кто чего менял...
---
почему в РС записываются статусы?Потому что пользователь по хорошему не мог менять статусы накладных.Поменялся статус накладного, пользователь выбрал нужную МЗ, проставил статусы. Пользователю позвонили по телефону и спросили какой статус в допустим у накладного "Реализация товаров и услуг А0600813 от 29.05.2019 23:08:07". этот пользователь открыл обработку и посмотрел статус.Или для удобства сделаю отчет по этому регистру, чтобы статусы было удобно просматривать
---
абсолютно не рациональное решение.
Если не нужна история - не нужен регистр сведений, с его Тучей лишних для вас записей!
Вы прекрасно можете менять статусы в обработке, которая будет брать данные не из РС а непосредственно из самих документов - проблемы то нет тот же запрос к Документам отправить...
---
Я не знаю ваших объемов, но при банальном открытии обработки и замене всего 1 статуса в РС льется туча ненужной инфоромации и база пухнет как на дрожжах.
На мой взгляд - откровенная глупость...
---
вы правы,гораздо лучше было бы если накладные не с проставленными статусами не записывались в РС, но хорошо,если нужно проставлять флажок сохранять изменения
---
Этот флажок выполнять будет функцию вопроса - "А вы точно уверены, что хотите изменить статус?" и ошибиться будет труднее - случайно уже не ткнешь
---
ну если так будет лучше.То есть нужно добавить колонку в таблицу с флажком и вставляю этот код в кнопку записать,да?:

```1c
    НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТаблицаСтатуса Цикл

    Если НЕ Строка.СохранятьИзмененияТогда Продолжить; КонецЕсли;

    мУникальный = Новый УникальныйИдентификатор;
    НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
    НаборЗаписей.Отбор.Документ.Использование = Истина;

    НаборЗаписей.Прочитать();

    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Период =ТекущаяДата();
    НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
    ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);

    НаборЗаписей.Записать();

    КонецЦикла;
```
---
да именно так ...
Попробуйте