Как провести выбранные активизацией строк документы динамического списка программно с изменением реквизита документа? На данный момент код таков:

```1c
    Выборка = Документы.ЗаказПокупателя.Выбрать(,,Элементы.Список.ТекущаяСтрока);
    Пока Выборка.Следующий() Цикл
    ОбъектДокумента = Выборка.ПолучитьОбъект();
    Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="Выполнен6" Тогда
    ОбъектДокумента.Заблокировать();
    ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
    ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    ОбъектДокумента.Разблокировать();
    Сообщить("Заказ отгружен успешно!");
    Элементы.Список.Обновить();
```
---
как обратиться только к выбранным строкам и провести доки только по выбранным строкам
Тут нужна команда, которая позволит обработать выделенные строки. Пример на коленке

```1c
    &НаКлиенте
    Процедура Я_Кнопка(Команда)
    ВыделенныеСтроки = Элементы.ВашСписок.ВыделенныеСтроки;
    //передаете управление с клиента на сервер
    ПроведениеВыделенных(ВыделенныеСтроки);
    КонецПроцедуры

    &НаСервереБезКонтекста
    Процедура ПроведениеВыделенных(ВыделенныеСтроки)
    Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
    //тут ваша обработка проведения
    КонецЦикла;
    КонецПроцедуры
```
---
ПОЛУЧИЛОСЬ, ВСЁ РАБОТАЕТ, Благодаря (8) !!! Может кому пригодится код таков:

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

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

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

    КонецЦикла;
    КонецФункции
```
---
И что? Работает?
---
Не так как нужно. Нужно проводить только те, которые при активизации строки выбраны
---
1.не правильно задан 3 параметр в выборке, текущая строка содержит ссылку на документ, а там должна быть структура.
Ваша Выборка всегда будет содержать один элемент, смысла в цикле нет. Или я что то не понял в Вашем списке в текущей строке.
Если Вы хотите несколько документов, то обращаться в списке нужно к выбранным строкам
---
Вы правильно поняли. А я не могу разобраться, как обратиться только к выбранным строкам и провести доки только по выбранным строкам.
---
копируешь код который показывает выделенные строки. Далее думаешь что делать через отладчик.
---
код который показывает выделенные строки Так вот. За это отвечает насколько я понимаю процедура "ПриАктивизацииСтроки" далее то отладчиком ловить ошибки? Или курить кучу книг про работу с динамическими списками?
---
как обратиться только к выбранным строкам и провести доки только по выбранным строкам
Тут нужна команда, которая позволит обработать выделенные строки. Пример на коленке

```1c
    &НаКлиенте
    Процедура Я_Кнопка(Команда)
    ВыделенныеСтроки = Элементы.ВашСписок.ВыделенныеСтроки;
    //передаете управление с клиента на сервер
    ПроведениеВыделенных(ВыделенныеСтроки);
    КонецПроцедуры

    &НаСервереБезКонтекста
    Процедура ПроведениеВыделенных(ВыделенныеСтроки)
    Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
    //тут ваша обработка проведения
    КонецЦикла;
    КонецПроцедуры
```
---
Сейчас попробую подобное наваять.
---
У меня получилось вот так:

```1c
    &НаКлиенте
    Процедура ОтгрузитьЗаказы(Команда)
    ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;
    //ПодключитьОбработчикОжидания("ОбработатьАктивизациюСтрокиСписка", 0.2, Истина);
    ОтгрузитьЗаказыСервер(ВыделенныеСтроки);

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

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

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

Но похоже я сделал что то не так, потому что ничего не произошло, даже ошибки не было)))
---
ПОЛУЧИЛОСЬ, ВСЁ РАБОТАЕТ, Благодаря (8) !!! Может кому пригодится код таков:

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

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

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

    КонецЦикла;
    КонецФункции
```