Пишу обработку для документов "Акт сверки взаиморасчетов" БП ред. 3.0
В базе формируются документы "Операция", которые должны попадать в Акт сверки взаиморасчетов. В печатную форму выводится поле "Представление", которое можно откорректировать вручную.
Задача - откорректировать поле "Представление" с помощью обработки в случае использования ручных операций.

```1c
    [1C-CODE]&НаСервере
    Процедура Заполнить()
    //Датаконца=Конмесяца

    //// Вставить содержимое обработчика.
    Док = Документы.АктСверкиВзаиморасчетов.Выбрать(Датаначала, датаконца);
    Пока Док.Следующий() Цикл

    ЭтотОбъект= Док.ПолучитьОбъект();
    // Действия с документом - элементом выборки,
    // его значение содержится в переменной ВыборкаДокументов

    КоличествоСтрок = ЭтотОбъект.ПоДаннымОрганизации.Количество();
    Если КоличествоСтрок <> 0 Тогда
    Для Каждого стр из ЭтотОбъект.ПоДаннымОрганизации Цикл
    ТекКомментарий = стр.Документ.Комментарий;
    Если найти(ТекКомментарий,"№") >0 тогда
    ЭтотОбъект.ПоДаннымОрганизации.Представление=ТекКомментарий;
    ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
    Конецесли;

    КонецЦикла;
    КонецЕсли;

    КонецЦикла

    КонецПроцедуры
```
[/1C-CODE]

Пока не вижу ошибки в тексте модуля, но не работает.

Всем помогающим заранее спасибо.
---
Тогда в запрос добавляем НомерСтроки-1 как Индекс
и в Выборке пишем

```1c
    ДокОбъект.ПоДаннымОрганизации[ВыборкаСтроки.Индекс].Представление =Чего то там;
```

Разумеется ДокОбъект определяем раньше выборки строк
---
с запросом конечно лучше. Решение с ним уже дали.
Но, вот переделанное начальное решение без запроса:

```1c
    &НаСервере
    Процедура Заполнить()
    Док = Документы.АктСверкиВзаиморасчетов.Выбрать(Датаначала,Датаконца);
    Пока Док.Следующий() Цикл
    Акт= Док.ПолучитьОбъект();
    НужноЗаписать = Ложь;
    Для Каждого стр из Акт.ПоДаннымОрганизации Цикл
    ТекДокумент = стр.Документ;
    ТекКомментарий = ТекДокумент.Комментарий;
    Если найти(ТекКомментарий,"№") >0 тогда
    ТекКомментарий =ТекКомментарий+" на складе Родники-2";
    стр.Представление=ТекКомментарий;
    НужноЗаписать = Истина;
    Конецесли;
    КонецЦикла;
    Если НужноЗаписать тогда
    Акт.Записать(РежимЗаписиДокумента.Запись);
    КонецЕсли;
    КонецЦикла
    КонецПроцедуры
```
---
Я так понимаю Что Представление это реквизит Ссылки, а не табличной части
(2)Безусловно запросом оптимальней. Мы сразу отсекам документы, где отсутствует подстрока "№"
Вот набросал в блокноте

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

```1c
    ДокОбъект.ПоДаннымОрганизации[ВыборкаСтроки.Индекс].Представление =Чего то там;
```

Разумеется ДокОбъект определяем раньше выборки строк
---
первое:
ЭтотОбъект.ПоДаннымОрганизации.Представление=ТекКомментарий - неверно, должно быть

стр.Представление=ТекКомментарий

второе

записывать документ нужно только после обхода табчасти а не в процессе.
проверить, изменился ли документ после обхода табчасти поможет метод Модифицированность()
---
Что именно не работает? Не заполняется поле "Представление" из комментария?
---
третье
подсчитывать количество строк в тч - нет нужды, цикл "для каждого" при отсутствуии в ТЧ строк - не будет выполнене ниразу.
---
Обработка не видит документы "Акт сверки взаиморасчетов" за период. Документы есть. Стоит ли переписывать с использованием запроса.
---
Проблема может быть в неправильных датах! Попробуйте перепроверить что даты правильные! Хотя по сути запрос такой написать 1 минута, так что не вижу сложностей!
---
Даты правильные (ошибки в датах проверяла).
---
Попробуйте запрос, но думается что вы получите то же самое!
---
Делайте запросом, вы сразу сможете посмотреть и отладить результат.

```1c
    ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
```
 выносите в первый цикл.

+ Используйте НачалоДня() КонецДня()
---
с запросом конечно лучше. Решение с ним уже дали.
Но, вот переделанное начальное решение без запроса:

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