В документе сделал кнопку - по ней открываю форму выбора с отбором . Задача в том чтобы пользователь выбрал в этом списке несколько нужных ему документов (через ctrl) и с этих документов заполнить табличную часть документа основного с которого делали выбор. Практичней - Приходную накладную заполнить данными из заказов поставщиков. Форму выбора открываю , что делать дальше без понятия.
Может я не то что то делаю - скажите как заполнить табличную часть Приходной накладной из Поступлений поставщиков?
---
Процедура пытается изменить передаваемое ей значение...
Попробуй так
```1c
    &НаКлиенте
    Процедура ПолучитьМассивЗначенийВыбора(ВыбранныеЗначения, Парам2) Экспорт

    ВыделенныеСтроки = ВыбранныеЗначения.ВыделенныеСтроки;
    ЗаполнитьПоЗаказамПоставщикаНаСервере(ВыделенныеСтроки);

    КонецПроцедуры
```
---
Оказывается) В ОткрытьФорму один из параметров принимает значения из открытой формы - вот он ОписаниеОповещенияОЗакрытии и там всё что нужно получить.
---
Ника не могу поймать в каком месте ОбработкаВыбора должна сработать.
---
Обработки выбора у кнопки нет и быть не может. Через Оповестить у формы выбора и ОбработкаОповещения у основной формы делать нужно.
---
Оповестить у формы выбора можно подробней , это где и как , какое событие нужно брать не могу отладить
---
Оказывается) В ОткрытьФорму один из параметров принимает значения из открытой формы - вот он ОписаниеОповещенияОЗакрытии и там всё что нужно получить.
---
можно еще в форме выбора, через владельца формы заполнить.
Типа например такого

```1c
    &НаКлиенте
    Процедура Выбрать(Команда)
    ЭтаФорма.ВладелецФормы.ТекущийЭлемент.ТекущиеДанные[ЭтаФорма.Параметры.ИмяПоля] = Элементы.ОстаткиВЯчейках.ТекущиеДанные.Ячейка;
    Закрыть();

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

можно, перед закрытием
вызвать в форме обработку оповещения и там обработать.
типа такого

```1c
    &НаКлиенте
    Процедура ЗаполнитьУпаковку(Команда)

    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("МассивУпаковок", МассивУпаковок);
    ПараметрыФормы.Вставить("Дата", Объект.Дата);
    ПараметрыФормы.Вставить("Документ", Объект.Ссылка);

    ОткрытьФорму("Документ.СборкаЗапасов.Форма.ФормаВыбораУпаковки", ПараметрыФормы);

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

    // Процедура - обработчик события ОбработкаОповещения формы.
    //
    &НаКлиенте
    Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

    Если ИмяСобытия = "ВыбранаУпаковкаВПроизводство" Тогда

    Если Параметр.Документ = Объект.Ссылка тогда

    Если Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСборкаЗапасов.Сборка") Тогда

    // Если Объект.ЯчейкиВСтрокахЗапасов = Ложь И ЗначениеЗаполнено(Строка.Ячейка) И НЕ Объект.ЯчейкаЗапасов = Строка.Ячейка Тогда

    Объект.ЯчейкиВСтрокахЗапасов = Истина;
    Для Каждого СтрокаЗапасы из Объект.Запасы Цикл

    СтрокаЗапасы.Ячейка = Объект.ЯчейкаЗапасов;

    КонецЦикла;
    ВидимостьЯчеекЗапасов();

    // КонецЕсли;
    ...и так далее
```

в форме которую вызываем по кнопке выбор, типа такого

```1c
    &НаКлиенте
    Процедура Выбрать(Команда)
    Оповестить("ВыбранаУпаковкаВПроизводство",Новый Структура("Документ, ВыходнойМассив",Документ, ВыходнойМассив));
    Закрыть();

    КонецПроцедуры
```
---
всё вроде бы нормально но ошибка , не понимаю немного почему, помогите :

```1c
    &НаКлиенте
    Процедура ПолучитьМассивЗначенийВыбора(ВыбранныеЗначения) Экспорт

    ЗаполнитьПоЗаказамПоставщикаНаСервере(ВыбранныеЗначения.ВыделенныеСтроки);

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

ВыбранныеЗначения.ВыделенныеСтроки - это массив
Передаю на сервер чтобы заполнить таб часть документа значениями этого массива

```1c
    &НаСервере
    Процедура ЗаполнитьПоЗаказамПоставщикаНаСервере(МассивЗначений)

    НовыйОбъект =объект.Ссылка.ПолучитьОбъект();

    НовыйОбъект.Запасы.Очистить();
    Для каждого ЭлементМассива из МассивЗначений Цикл
    Для каждого СтрокаТабличнойЧасти из ЭлементМассива.Запасы Цикл
    ЗаполнитьЗначенияСвойств(НовыйОбъект.Запасы.Добавить(),СтрокаТабличнойЧасти);
    КонецЦикла;
    КонецЦикла;

    НовыйОбъект.Записать();

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

Ругается - Поле объекта недоступно для записи (ВыделенныеСтроки) ,почему ? что не так?
---
Ругается - Поле объекта недоступно для записи (ВыделенныеСтроки) ,почему ? что не так?
на какой строке ? В какой момент ?
Где-то идет попытка записи в выделенныестроки, а там должно быть только чтение. Может имя переменных гдето совпало
---
Не силен в упр формах, понимаю что тут элементарщина какая то которую я не знаю к сожалению
---
НовыйОбъект =объект.Ссылка.ПолучитьОбъект();

а это что за строка ? Зачем ? мне концептуально не очень понятно, где это все происходит
---
Это в форме документа происходит. НовыйОбъект чтобы табличную часть достать делаю. А ошибка,после НовыйОбъект.Записать(); вываливается, сейчас шагаю отладчиком но ничего не вижу такого.
---
ну, для начала - если документ новый, у него ссылки еще нет.
И даже если это уже записанный в базу документ, то получение по ссылке и запись, будет равноценно тому, что другой пользователь отредактировал документ когда у вас он открыт. Оно не прокатит.
Не нужно ничего такого.
На сервере просто, Объект.Запасы.Очистить()
и т.д., никаких получений объекта не требуется.

А для того чтобы ссылку получить, и к примеру вызвать функции модуля объекта, то применять РеквизитФормыВЗначение
---
Белиберда...
Зачем получать объект, если он уже открыт и доступен в форме?
Просто Объект.Запасы.Очистить(); и т.д.
Запись будет штатно-интерактивно пользователем.
---
Скорей всего неправильно делаю, если новый документ будет то там объекта нет. Подскажите как правильно что то недоходит мне
---
стёр всю свою ересь по объекту, всё равно ругается на ВыбранныеСтроки. Может дело в том что я их получаю из формы выбора , но не меняю ж ничего

ФормаВыбора = ОткрытьФорму("Документ.ЗаказПоставщику.ФормаВыбора",Параметр, ЭтаФорма, ЭтаФорма, , , Новый ОписаниеОповещения("ПолучитьМассивЗначенийВыбора", ЭтаФорма));
---
всё равно ругается на ВыбранныеСтроки
ты нам скажешь, в какой момент, и на какой строке ? или будем в гадалки играть ?
отладку включи, остановку на ошибке - на худой конец
---
Может что не закрываю её эту формуВыбора , уже не знаю куда смотреть
---
да точно! включил остановка по ошибке, заполняет табличную часть документа возвращается опять в

```1c
    &НаКлиенте
    Процедура ПолучитьМассивЗначенийВыбора(ВыбранныеЗначения, Парам2) Экспорт

    ЗаполнитьПоЗаказамПоставщикаНаСервере(ВыбранныеЗначения.ВыделенныеСтроки);

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

и ошибка. Остановка по ошибке тоже там и ругается на ВыделенныеСтроки
---
Процедура пытается изменить передаваемое ей значение...
Попробуй так
```1c
    &НаКлиенте
    Процедура ПолучитьМассивЗначенийВыбора(ВыбранныеЗначения, Парам2) Экспорт

    ВыделенныеСтроки = ВыбранныеЗначения.ВыделенныеСтроки;
    ЗаполнитьПоЗаказамПоставщикаНаСервере(ВыделенныеСтроки);

    КонецПроцедуры
```
---
да так работает. Спасибо.