Здравствуйте!
Суть такова: добавил таблицу значений в форму списка справочника... Все ок, заполняю, щелкаю отрабатывается процедура... Все работает... Добавил точно такую же таблицу значений(и другие пробовал) в форму для выбора этого же справочника; для подбора этого же справочника; форму документа и везде курсор таблицы значений всегда стоит на первой строке... Я могу щелкнуть по первой строчке, формула отработается(значит редактирование разрешено, как я понял). Не могу переместить курсор куда либо - вниз, вверх. По колонкам двигаться могу. Программно вызвав метод ТекущаяСтрока() установить строку могу, например 3, но опять же переместиться вниз, вверх не могу. В форме списка все работает. В чем разница? Что делаю не так?
---
в СформИнфорСтроку() добавьте проверку , изменилась текущая строка в "родительском" списке или нет.
---
Ну это же тривиально... фиг его знает что у вас там в коде понаписано...
Идет ПЕРЕЗАПОЛНЕНИЕ ТЗ при ПЕРЕРИСОВКЕ экрана.
Ставим курсор на вторую строку - экран перерисовывается - перезаполняется ТЗ - курсор на первой строке.
"Съесть с удовольствием"
---
Код модуля формы для выбора справочника Номенклатура:

```1c
    Функция ЗаполнитьАналоги()
    Перем АналогиТовара;

    Если ТекущийЭлемент().Выбран()=0 Тогда
    Возврат ";
    КонецЕсли;

    АналогиТовара = СоздатьОбъект("Справочник.Аналоги");
    АналогиТовара.ИспользоватьВладельца(ТекущийЭлемент());

    // очищаем все строки
    СписокАналогов.УдалитьСтроки();
    КолАнал=0;
    // заполняем таблицу
    АналогиТовара.ВыбратьЭлементы();
    Пока АналогиТовара.ПолучитьЭлемент() = 1 Цикл
    Если АналогиТовара.ПометкаУдаления() = 0 Тогда
    СписокАналогов.НоваяСтрока();
    СписокАналогов.Ссылка = АналогиТовара.ТекущийЭлемент();
    СписокАналогов.Код = АналогиТовара.ТекущийЭлемент().Код;
    СписокАналогов.Наименование = АналогиТовара.Товар;
    ПотЦена = 0;
    РабДата=РабочаяДата();
    ПотВалюта=0;
    ПотРез = глПолучитьЦенуТовара(Константа.РозничнаяКатегорияЦен,АналогиТовара.Товар.ТекущийЭлемент(),,,ПотЦена,ПотВалюта);
    Если ПустоеЗначение(ПотЦена)=0 Тогда
    ЦенаГрн = глПересчет(ПотЦена,ПотВалюта,РабДата,Гривня,РабДата);
    СписокАналогов.Цена = ЦенаГрн;
    КонецЕсли;
    СписокАналогов.Количество = Регистр.ОстаткиТоваров.СводныйОстаток(,АналогиТовара.Товар,,"ОстатокТовара");
    КолАнал=КолАнал+1;
    СписокАналогов.Артикул = АналогиТовара.Товар.Артикул;
    КонецЕсли;
    КонецЦикла;
    СписокАналогов.КоличествоСтрок(КолАнал);
    СписокАналогов.ТекущаяСтрока(3);
    Возврат ";
    КонецФункции

    Процедура ИзменитьАналоги(); //формула таблицы значений "СписокАналогов"
    ТекСтрока=СписокАналогов.ТекущаяСтрока();
    Если ТекСтрока<>0 Тогда
    ТекТовар=СписокАналогов.ПолучитьЗначение(ТекСтрока,"Наименование");
    АктивизироватьОбъект(ТекТовар);
    КонецЕсли;
    КонецПроцедуры

    Функция СформИнфорСтроку()
    СписокАналогов.УдалитьСтроки();
    ЗаполнитьАналоги();
    КонецФункции

    Процедура ПриОткрытии()
    СписокАналогов.НоваяКолонка("Ссылка","Справочник.Аналоги");
    СписокАналогов.НоваяКолонка("Код","Строка",,,"Код",14,,2);
    СписокАналогов.НоваяКолонка("Наименование","Справочник.Номенклатура",,,"Наименование",40);
    СписокАналогов.НоваяКолонка("Артикул","Строка",,,"Артикул",17,,1);
    СписокАналогов.НоваяКолонка("Цена","Число",10,2,"Цена",11,,1);
    СписокАналогов.НоваяКолонка("Количество","Число",10,3,"Количество",11,,1);

    СписокАналогов.ВидимостьКолонки("Ссылка",0);
    КонецПроцедуры
```
---
пожалуйста,при вставке кода используйте теги CODE /CODE
---
Однозначно Отладчик:
---
непонятно для чего вот это:

```1c
    Функция ЗаполнитьАналоги()
    Перем АналогиТовара;

    Если ТекущийЭлемент().Выбран()=0 Тогда
    Возврат ";
    КонецЕсли;

    АналогиТовара = СоздатьОбъект("Справочник.Аналоги");
    АналогиТовара.ИспользоватьВладельца(ТекущийЭлемент());

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

```1c
    Функция СформИнфорСтроку()
```
---
Проблема решена проверкой в СформИнфорСтроку(). Всем спасибо!
---
как бы причина была мной названа сразу.. - так оно и оказалось