Здравствуйте снова! Прошу помощи гуру...ситуация такая...

Внизу код процедуры

```1c
    &НаСервере
    Процедура НачисленияПриАктивизацииСтрокиНаСервере()

    ОбъектДокумента = РеквизитФормыВЗначение("Объект", Тип("ДокументОбъект.НачислениеЗарплаты"));
    Массив = ОбъектДокумента.РассчетКоэффициентов();
    Для Счетчик = 0 По Массив.Количество() - 1 Цикл
    Сообщить(Массив[Счетчик]);
    КонецЦикла;

    Запрос = Новый Запрос;

    Ссылка = Объект.Ссылка;

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

    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    Запрос.Текст =

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

    Результат = Запрос.Выполнить().Выбрать();

    Сотр = Новый Массив;

    Пока Результат.Следующий() Цикл

    Сотр.Добавить(Результат);

    КонецЦикла;

    Индекс = 0;
    Для Каждого СтрокаТЧ ИЗ Объект.Начисления Цикл

    Если Индекс = Сотр.Количество() Тогда
    Прервать;
    КонецЕсли;

    Если СтрокаТЧ.Сотрудник.Наименование = Сотр[Индекс].Сотрудник.Наименование Тогда
    Элементы.Начисления.ТекущиеДанные.Результат = Элементы.Начисления.ТекущиеДанные.Результат+25632132;
    //Элементы.Начисления.ТекущиеДанные.Результат = Элементы.Начисления.ТекущиеДанные.Результат; //+20000000;
    КонецЕсли;
    Индекс = Индекс + 1;
    КонецЦикла;

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

У меня при нажатии на кнопку которая вызывает эту процедуру появляется ошибка

```1c
    {Документ.НачислениеЗарплаты.Форма.ФормаДокумента.Форма(7030)}: Ошибка при получении значения атрибута контекста (ТекущиеДанные)
    Элементы.Начисления.ТекущиеДанные.Результат = Элементы.Начисления.ТекущиеДанные.Результат+25632132;
    по причине:
    Текущие данные таблицы недоступны на сервере
```

Я знаю что вот этот кусок кода

```1c
    Индекс = 0;
    Для Каждого СтрокаТЧ ИЗ Объект.Начисления Цикл

    Если Индекс = Сотр.Количество() Тогда
    Прервать;
    КонецЕсли;

    Если СтрокаТЧ.Сотрудник.Наименование = Сотр[Индекс].Сотрудник.Наименование Тогда
    Элементы.Начисления.ТекущиеДанные.Результат = Элементы.Начисления.ТекущиеДанные.Результат+25632132;
    //Элементы.Начисления.ТекущиеДанные.Результат = Элементы.Начисления.ТекущиеДанные.Результат; //+20000000;
    КонецЕсли;
    Индекс = Индекс + 1;
    КонецЦикла;
```

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

```1c
    Индекс = 0;
    Для Каждого СтрокаТЧ ИЗ ОбъектДокумента.Начисления Цикл

    Если Индекс = Сотр.Количество() Тогда
    Прервать;
    КонецЕсли;

    Если СтрокаТЧ.Сотрудник.Наименование = Сотр[Индекс].Сотрудник.Наименование Тогда
    СтрокаТЧ.Результат = СтрокаТЧ.Результат + 25632132;
    //Элементы.Начисления.ТекущиеДанные.Результат = Элементы.Начисления.ТекущиеДанные.Результат; //+20000000;
    КонецЕсли;
    Индекс = Индекс + 1;
    КонецЦикла;

    ЗначениеВРеквизитФормы(ОбъектДокумента, "Объект");
```
---
```1c
    Элементы.Начисления.ТекущиеДанные.Результат = Элементы.Начисления.ТекущиеДанные.Результат+25632132;
```

Сервер ничего не знает про форму и про текущие данные

СтрокаТЧ.Результат =СтрокаТЧ.Результат+25632132;
---
В серверной процедуре обычно в таких случаях пишут РеквизитФормыВЗначение или ДанныеФормыВЗначение, а в конце процедуры отдают назад.
---
Попробуйте как-то так:

```1c
    Индекс = 0;
    Для Каждого СтрокаТЧ ИЗ ОбъектДокумента.Начисления Цикл

    Если Индекс = Сотр.Количество() Тогда
    Прервать;
    КонецЕсли;

    Если СтрокаТЧ.Сотрудник.Наименование = Сотр[Индекс].Сотрудник.Наименование Тогда
    СтрокаТЧ.Результат = СтрокаТЧ.Результат + 25632132;
    //Элементы.Начисления.ТекущиеДанные.Результат = Элементы.Начисления.ТекущиеДанные.Результат; //+20000000;
    КонецЕсли;
    Индекс = Индекс + 1;
    КонецЦикла;

    ЗначениеВРеквизитФормы(ОбъектДокумента, "Объект");
```
---
ошибки не возникает) но и результат не изменяется)
---
А условие
```1c
    Если СтрокаТЧ.Сотрудник.Наименование = Сотр[Индекс].Сотрудник.Наименование Тогда
```
 хоть раз отрабатывает в Истину?
---
вот я сейчас вернулся к этому и борюсь с тем чтобы хоть иногда возвращалась истина это бы знатно облегчило мне жизнь.
---
А из чего собственно вызывается процедура расчета на самом сервере и в чем её смысл?
и зачем нужны ТекущиеДанные? - эта процедура должна вызываться для текущей строки? или для каждой строки таблицы?
---
Попробуй для начала примерно так:

```1c
    Пока Результат.Следующий() Цикл

    Сотр.Добавить(Результат);

    КонецЦикла;

    Для Каждого ЭлементМассив Из Сотр Цикл
    СтрокаТЧ = Объект.Начисления.Найти(ЭлементМассива.Сотрудник);
    Если НЕ СтрокаТЧ = Неопределено Тогда
    СтрокаТЧ.Результат = СтрокаТЧ.Результат + 25632132;
    КонецЕсли;
    КонецЦикла;
```