Здравствуйте! Прошу подскажите, кто знает...не заполняются и не добавляются колонки в табличной части.

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

    Индекс = Индекс +1;

    НайдСтроки = Объект.РаспределениеРезультатовНачислений.НайтиСтроки(Новый Структура("ИдентификаторСтроки",Индекс));

    НайдСтроки[0].Результат = НайдСтроки[0].Результат + 500000;

    Сообщить(НайдСтроки[0].Результат);

    НовСтр = Объект.РаспределениеРезультатовНачислений.Добавить();

    НовСтр.ИдентификаторСтроки = 1;

    НовСтр.СпособОтраженияЗарплатыВБухучете=НайдСтроки[0].СпособОтраженияЗарплатыВБухучете;

    НовСтр.СтатьяФинансирования = НайдСтроки[0].СтатьяФинансирования;

    //НовСтр.Записать();

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

На форме никаких изменений, подскажите где ошибка?
---
Логика:

У объекта есть, я так понимаю, табличная часть РаспределениеРезультатовНачислений.
В табличной части есть реквизиты ИдентификаторСтроки, СпособОтраженияЗарплатыВБухучете, СтатьяФинансирования.

Соответственно на форме должна быть соответствующая таблица, в которой у столбцов источники данных должен быть

```1c
    Объект.РаспределениеРезультатовНачислений.ИдентификаторСтроки
    Объект.РаспределениеРезультатовНачислений.СпособОтраженияЗарплатыВБухучете
    Объект.РаспределениеРезультатовНачислений.СтатьяФинансирования
```

Если ее нет, создайте дополнительную закладку и воткните туда табличную часть.

Там все сразу и посмотрите
---
В какой процедуре выполняется данный код?
---
в самописной, &НаСервере
---
в модуле формы документа "Начисление зарплаты"
---
```1c
    (2) &НаСервере
    Процедура НачисленияПриАктивизацииСтрокиНаСервере()

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

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

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

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

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

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

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

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

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

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

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

    КонецЦикла;

    Индекс =0;

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

    Индекс = Индекс +1;

    НайдСтроки = Объект.РаспределениеРезультатовНачислений.НайтиСтроки(Новый Структура("ИдентификаторСтроки",Индекс));

    НайдСтроки[0].Результат = НайдСтроки[0].Результат + 500000;

    Сообщить(НайдСтроки[0].Результат);

    НовСтр = Объект.РаспределениеРезультатовНачислений.Добавить();

    НовСтр.ИдентификаторСтроки = 1;

    НовСтр.СпособОтраженияЗарплатыВБухучете =НайдСтроки[0].СпособОтраженияЗарплатыВБухучете;

    НовСтр.СтатьяФинансирования = НайдСтроки[0].СтатьяФинансирования;

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

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

```1c
    ЗначениеВРеквизитФормы(ОбъектДокумента, "Объект");
```

ну и везде поставил объектдокумента

Изменений нет.
---
Не проверял:

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

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

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

    Ссылка = ОбъектДокумента .Ссылка;

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

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

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

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

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

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

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

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

    КонецЦикла;

    Индекс =0;

    Для Каждого СтрокаТЧ из ОбъектДокумента .Начисления Цикл

    Индекс = Индекс +1;

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

    НайдСтроки[0].Результат = НайдСтроки[0].Результат + 500000;

    Сообщить(НайдСтроки[0].Результат);

    НовСтр = ОбъектДокумента .РаспределениеРезультатовНачислений.Добавить();

    НовСтр.ИдентификаторСтроки = 1;

    НовСтр.СпособОтраженияЗарплатыВБухучете =НайдСтроки[0].СпособОтраженияЗарплатыВБухучете;

    НовСтр.СтатьяФинансирования = НайдСтроки[0].СтатьяФинансирования;

    КонецЦикла;
    ЗначениеРеквизитФормы(ДокментОбъект,"Объект");

    КонецПроцедуры
```
---
Можно обойтись и без РеквизитФормыВЗначение, выгрузить в переменную таблицу Начисления, произвести с ней манипуляции и потом загрузить обратно.
---
```1c
    НовСтр.ИдентификаторСтроки = 1;
```

А у вас все новые строки должны иметь ИдентификаторСтроки = 1?
---
на данный момент да.
---
А что покажет нам вот это сообщение:

```1c
    Индекс =0;

    Сообщить(Строка(Объект.Начисления.Количество()));

    Для Каждого СтрокаТЧ из Объект.Начисления Цикл
```
---
2
---
по сути все верно на данный момент у меня 2 начисления
---
Думаем логически, куда копать:

1. Почему может не отображаться ТЧ? - Только если данные не возвращаются или не создаются.

2. (Данные не создаются) Почему может не заполнятся ТЧ? - Только если не отрабатывает цикл

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

3. (Данные не возвращаются) Почему? Потому что не верно передается реквизит "Объект".

Попробуйте без указания типа

```1c
    ОбъектДокумента = РеквизитФормыВЗначение("Объект");
    .........
    ЗначениеВРеквизитФормы(ОбъектДокумента , "Объект");
```

-
---
нет изменений)
---
заменили
```1c
    ОбъектДокумента = РеквизитФормыВЗначение("Объект", Тип("ДокументОбъект.НачислениеЗарплаты"));
```
на
```1c
    ОбъектДокумента = РеквизитФормыВЗначение("Объект");
```
 ???
---
все верно) заменил)
---
Копаем дальше.

А вот это отрабатывает?

```1c
    НайдСтроки[0].Результат = НайдСтроки[0].Результат + 500000;

    Сообщить(НайдСтроки[0].Результат);
```

Что пишет?
---
Пройдитесь отладчиком и проверьте, все ли у вас правильно ищется и заполняется.
---
ЗначениеВРеквизитФормы(ОбъектДокумента, "Объект") у меня тип неопределено....
---
(28) ЗначениеВРеквизитФормы(ОбъектДокумента, "Объект")

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

В отладчике смотрите количество строк ТЧ, потом шаг и опять проверка количества строк ТЧ
---
Вот НовСтр.НомерСтроки сначала равен 3, потом 4 то есть я так понимаю строки он добавляет.
---
Это, я так понимаю, трассировка сервера?

В клиенте вставьте:

```1c
    Сообщить(Объект.РаспределениеРезультатовНачислений .Количество());
    НачисленияПриАктивизацииСтрокиНаСервере();
    Сообщить(Объект.РаспределениеРезультатовНачислений .Количество());
```
---
первое число 2 и второе 4
---
Это автоматически означает, что данные с сервера вернулись и на клиенте присутствуют в уже измененном виде.

Соответственно, если не отображается на форме, смотрите, к чему привязан элемент формы
---
да тут должно заполниться табличную часть но 1с видимо решили что её не обязательно отображать на форме через конфигуратор и как отследить этот момент я не знаю)
---
Вообще цель в итоге какая? Какой результат вам нужен?
---
да мне надо в этой тч добавить эти две строки с данными)
---
В табличной части, как мы видели, строки добавились.

Но табличная часть, насколько я понял, не показана на форме?
---
вот к великому сожалению нет, а на форме в реквизитах даже была отключена Галка использовать всегда.
---
Может быть данные должны показываться событийно, т.е. при каких-то условиях?
---
если включена настройка вести учет по "Статьям финансирования"
---
Чем то еще помочь нужно?
---
и так очень помогли) сейчас попробую её отобразить и разобраться в чем может быть причина) спасибо огромное)
---
Не за что. Удачи)
---
Логика:

У объекта есть, я так понимаю, табличная часть РаспределениеРезультатовНачислений.
В табличной части есть реквизиты ИдентификаторСтроки, СпособОтраженияЗарплатыВБухучете, СтатьяФинансирования.

Соответственно на форме должна быть соответствующая таблица, в которой у столбцов источники данных должен быть

```1c
    Объект.РаспределениеРезультатовНачислений.ИдентификаторСтроки
    Объект.РаспределениеРезультатовНачислений.СпособОтраженияЗарплатыВБухучете
    Объект.РаспределениеРезультатовНачислений.СтатьяФинансирования
```

Если ее нет, создайте дополнительную закладку и воткните туда табличную часть.

Там все сразу и посмотрите
---
Встаньте в процедуре клиента до вызова серверной процедуры.
Проверьте количество строк ТЧ РаспределениеРезультатовНачислений

Потом протрассируйте и после вызова серверной процедуры проверьте количество строк.

Чтобы уже быть точно уверенными, что в табличной части строк стало больше