Всем привет. Не могу понять почему не позиционируется на элементе справочника. В параметр передается ссылка на номенклатуру, при создании все заполнено, но....

Вызов формы

```1c
    ПараметрыФормы.Вставить("ТекущаяСтрока", Элементы.Товары.ТекущиеДанные.Номенклатура);

    ОткрытьФорму("Обработка.НоменклатураСписок.Форма", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор,,,
    ,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
```

В форме

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    попытка
    Элементы.СписокСтандартныйПоискНоменклатура.ТекущаяСтрока = Параметры.ТекущаяСтрока;
    исключение
    КонецПопытки;

    КонецПроцедуры
```
---
```1c
    Элементы.СписокСтандартныйПоискНоменклатура.ТекущаяСтрока = Параметры.ТекущаяСтрока;
```

Это должно быть на клиенте.
ПриСозданииНаСервере сохраняйте ссылку куда-нибудь в реквизит формы, а ПриОткрытии уже устанавливайте.
---
```1c
    Элементы.СписокСтандартныйПоискНоменклатура.ТекущаяСтрока = Параметры.ТекущаяСтрока;
```

Это должно быть на клиенте.
ПриСозданииНаСервере сохраняйте ссылку куда-нибудь в реквизит формы, а ПриОткрытии уже устанавливайте.
---
Это должно быть на клиенте.
ПриСозданииНаСервере сохраняйте ссылку куда-нибудь в реквизит формы, а ПриОткрытии уже устанавливайте.

Спасибо огромное, получилось
---
Чтобы механизмы 1С все подхватывали нормально.

Форма из которой передаются данные должна называться "ФормаСписка".

В форме списка должно быть поле "ссылка".

Никаких "ФормаСпискаУПР" и поле "Документ".

Тогда для передачи правильной параметров стандартными функциями конфигурации у вас будут подхватываться все данные.

Если же вы будете выдумывать велосипед, выйдет дороже. И используйте стандартные функции. Поле динамического списка - "Список".

Будет порядок и уют.
---
Форма из которой передаются данные должна называться "ФормаСписка".
Это вы предлагаете стандартные формы переименовать? И чем это поможет, сейчас она называется "форма документа", а станет называться "Форма списка"?

Обработка.НоменклатураСписок - дописанная обработка. Какие именно стандартные функции в ней заработают?
---
Ну или можно ещё найти по переданной номенклатуре строку в динамическом списке и уже её сделать активной. Чтобы наверняка работало.
---
```1c
    Отбор = Новый Структура;
    Отбор.Вставить("Ссылка", Параметры.ТекущаяСтрока);

    НайденныеСтроки = СписокСтандартныйПоискНоменклатура.НайтиСтроки(Отбор);

    Если НайденныеСтроки.Количество() > 0 Тогда

    Элементы.СписокСтандартныйПоискНоменклатура.ТекущаяСтрока = НайденныеСтроки[0].ПолучитьИдентификатор();

    КонецЕсли;
```
---
Найти Строки это у какого объекта должно быть? У динамического списка такого нет, у таблицы формы, к сожалению тоже (
(3) как найти строку в динамическом списке?
---
для динамического списка никак, это поможет только если вы поменяете на таблицу значений, ну либо можно сделать через отбор
---
И чтобы работало у динсписка должна быть установлена основная таблица.
---
```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Отбор по полю "Организация" всегда выполняется по головной организации.
    Если Параметры.Отбор.Свойство("Организация") Тогда
    Если ЗначениеЗаполнено(Параметры.Отбор.Организация) Тогда
    Параметры.Отбор.Организация = ОбщегоНазначенияБПВызовСервераПовтИсп.ГоловнаяОрганизация(Параметры.Отбор.Организация);
    Иначе
    Параметры.Отбор.Удалить("Организация");
    КонецЕсли;
    КонецЕсли;
    Если Параметры.Отбор.Свойство("ВидДоговора") Тогда
    Если НЕ ЗначениеЗаполнено(Параметры.Отбор.ВидДоговора) Тогда
    Параметры.Отбор.Удалить("ВидДоговора");
    КонецЕсли;
    КонецЕсли;

    Если Параметры.Свойство("ТекущийДоговор") Тогда
    Если ЗначениеЗаполнено(Параметры.ТекущийДоговор) Тогда
    Попытка
    Параметры.Отбор.Вставить("Ссылка",Параметры.ТекущийДоговор);
    ПроизведеноПозиционированиеПриОткрытии = Истина;//Реквизит формы
    Исключение
    ПопыткаПровалилась = Истина;
    КонецПопытки;
    КонецЕсли;
    КонецЕсли;

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

    &НаКлиенте
    Процедура СписокПриАктивизацииСтроки(Элемент)
    Если ПроизведеноПозиционированиеПриОткрытии Тогда
    Отбор = Список.Отбор;
    Для Каждого ЭлементОтбора Из Отбор.Элементы Цикл
    Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка") Тогда
    Отбор.Элементы.Удалить(ЭлементОтбора);
    Прервать;
    КонецЕсли;
    КонецЦикла;
    ПроизведеноПозиционированиеПриОткрытии = Ложь;
    КонецЕсли;
    КонецПроцедуры
```