Здравствуйте дорогие коллеги:) БП, уф, 8.3, НЕ типовой документ"перемещение спецодежды", НЕ типовая обработка "подбор номенклатуры" (стандартный нам не подходит), хочется при открытии этого подбора чтобы из формы документа передавались параметры в форму обработки, если например выбираем подбор из тч спецодежда заполнялось номенклатура "Спецодежда", счет "МЦ.02",физ.лицо "Иванов Иван Иванович"
---
```1c
    &НаКлиенте
    Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры2 = Новый Структура;
    Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры
```

Видимо у Вас на форме уже есть некие Параметры
---
Нельзя искать на клиенте
Можно так

```1c
    &НаКлиенте
    Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры2= Новый Структура;
    Параметры2.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    Параметры2.Вставить("Счет", ВернутьПланСчетов());
    //ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры
    &НаСервере
    Функция ВернутьПланСчетов()
    Возврат ПланыСчетов.Хозрасчетный.НайтиПоКоду("00000000011");
    КонецФункции
```
---
У формы подбора создать параметр, при нажатии на кнопку подбор передавать параметры в открываемую форму, при открытии формы обрабатывать переданные параметры...
---
параметры уже созданы, на втором скрине видно же, а как передавать то эти параметры
---
```1c
    Параметры = Новый Структура;
    Параметры.Вставить("Номенклатура",Объект.Номенклатура);
    Параметры.Вставить("Счет",Объект.Счет);
    Параметры.Вставить("ФизЛицо",Объект.ФизЛицо);
    ОткрытьФорму("Документ.ВашДокумент.Форма.ВашаФорма",Параметры,ЭтотОбъект,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
```

Далее ловите эти параметры в событии ПрисозданииНаСервере через Параметры.*
---
У меня есть уже вот такие процедуры в модуле формы документа

```1c
    &НаКлиенте
    Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

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

    &НаКлиенте
    Процедура ПодборСпецоснастка(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

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

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

а в обработке вот такая процедура:

```1c
    &НаКлиенте
    Процедура НоменклатураДляПодбораВыбор(Элемент, ВыбраннаяСтрока, Поле,СтандартнаяОбработка)
    //ЭтаФорма.Закрыть(Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПолучитьЭлементы());
    //ЭтаФорма.Закрыть(Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации);

    СтруктураВозврата = Новый Структура("Номенклатура,ПартияМатериаловВЭксплуатации,ФизЛицо");

    СтруктураВозврата.Номенклатура = Элементы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
    СтруктураВозврата.ПартияМатериаловВЭксплуатации = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации;
    СтруктураВозврата.ФизЛицо = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ФизЛицо;

    НаименованиеНоменклатуры = ПолучитьНаименование(Объект.Номенклатура);

    Если НаименованиеНоменклатуры = "Спецодежда" тогда
    НоваяСтрока = ЭтаФорма.ВладелецФормы.объект.Спецодежда.Добавить();

    НоваяСтрока.Номенклатура =Элементы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
    НоваяСтрока.ПартияМатериаловВЭксплуатации = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации;

    ИначеЕсли НаименованиеНоменклатуры = "Спецоснастка" тогда
    НоваяСтрока = ЭтаФорма.ВладелецФормы.объект.Спецоснастка.Добавить();

    НоваяСтрока.Номенклатура = Элементы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
    НоваяСтрока.ПартияМатериаловВЭксплуатации = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации;

    ИначеЕсли НаименованиеНоменклатуры = "Хозинвентарь" тогда
    НоваяСтрока = ЭтаФорма.ВладелецФормы.объект.ИнвентарьИХозяйственныеПринадлежности.Добавить();

    НоваяСтрока.Номенклатура =Элементы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
    НоваяСтрока.ПартияМатериаловВЭксплуатации = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации;
    НоваяСтрока.ФизЛицо = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ФизЛицо;

    КонецЕсли;
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьНаименование(ВыбНом)
    Возврат СокрЛП(ВыбНом.Наименование);
    КонецФункции
```

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

```1c
    Параметры.Вставить("Номенклатура",Объект.Номенклатура);
    Параметры.Вставить("Счет",Объект.Счет);
    Параметры.Вставить("ФизЛицо",Объект.ФизЛицо);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
```
---
а что где в какой процедуре? В форме документа???
---
В команду
(7) ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Перед открыть и вставляйте
---
вставила, а теперь в модуле формы обработки нужно что-то написать?
---
В процедуре ПриСозданииНаСервере Ваши параметры доступны
Параметры.Номенклатура
Параметры.Счет
Параметры.ФизЛицо
Или можете просто написать
ЗаполнитьЗначенияСвойств(Объект,Параметры);
---
Вот я прописала в документе :

```1c
    &НаКлиенте
    Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

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

А в обработке прописала:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЗаполнитьЗначенияСвойств(Объект.параметры);
    КонецПроцедуры
```

А он ругает меня , говорит:

```1c
    {Обработка.ПодборНоменклатуры1.Форма.Форма.Форма(253,2)}: Недостаточно фактических параметров (ЗаполнитьЗначенияСвойств)
    <<?>>ЗаполнитьЗначенияСвойств(Объект.параметры); (Проверка: Толстый клиент (обычное приложение))
```
---
ЗаполнитьЗначенияСвойств(Объект.параметры); Не точка а запятая!!!!!!!!!ЗаполнитьЗначенияСвойств(Объект,параметры); и тут ошибка
ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Должно быть
ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Глобальный контекст (Global context)
ОткрытьФорму (OpenForm)
Вариант синтаксиса: По имени

Синтаксис:

ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)
---
Вообщем так лучше сделать

```1c
    Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЗаполнитьЗначенияСвойств(Объект,Параметры);
    КонецПроцедуры
```
---
ошибка:( я может быть не там прописываю?

```1c
    &НаКлиенте
    Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры

    {Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Форма.ФормаДокумента.Форма(1168)}: Метод объекта не обнаружен (Вставить)
    Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
```
---
```1c
    &НаКлиенте
    Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры2 = Новый Структура;
    Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры
```

Видимо у Вас на форме уже есть некие Параметры
---
спасибо большое, что провозились со мной столько! Уже не первый раз выручаете :)
---
извините, а ещё такой вопрос, а чтобы при открытии например команды "ПодборСпецодежды" чтобы счёт автоматически выбрался планыСчетов. Хозрасчетный. НайтиПоКоду("мц. 02")?
---
Например

```1c
    Параметры.Вставить("ПланСчетов", ПланыСчетов. Хозрасчетный.НайтиПоКоду("мц. 02"));
```
---
да, я так и сделала, но у меня вылезла ошибка:(

```1c
    &НаКлиенте
    Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры2= Новый Структура;
    Параметры2.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    Параметры2.Вставить("Счет", ПланыСчетов.Хозрасчетный.НайтиПоКоду("00000000011"));
    //ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры

    Выдает ошибку:

    {Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Форма.ФормаДокумента.Форма(1176,33)}: Переменная не определена (ПланыСчетов)
    Параметры2.Вставить("Счет", <<?>>ПланыСчетов.Хозрасчетный.НайтиПоКоду("00000000011")); (Проверка: Тонкий клиент)
```
---
Нельзя искать на клиенте
Можно так

```1c
    &НаКлиенте
    Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры2= Новый Структура;
    Параметры2.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    Параметры2.Вставить("Счет", ВернутьПланСчетов());
    //ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    КонецПроцедуры
    &НаСервере
    Функция ВернутьПланСчетов()
    Возврат ПланыСчетов.Хозрасчетный.НайтиПоКоду("00000000011");
    КонецФункции
```
---
Поля на форме это хорошо, параметры создайте в конфигураторе для формы подбора, а потом, как уже сказали, присозданиинасервере устанавливайте значение реквизитов объекта
---
параметры создайте в конфигураторе
Это не обязательно