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

    ТекущиеДанные = ЭтаФорма.ТекущийЭлемент.ТекущиеДанные;
    КодТовара= ТекущиеДанные.КодТовара;
    НомерДокументаПоступления = ТекущиеДанные.ДокументОснование.Код;

    МассивПроверяемыхДанных.Добавить(КодТовара);
    МассивПроверяемыхДанных.Добавить(НомерДокументаПоступления );

    ПроверкаНаличияНоменклатуры = ПроверитьТекущиеДанныеПоПоступлениямНаСервере(МассивПроверяемыхДанных[0], МассивПроверяемыхДанных[1]);
    МассивПроверяемыхДанных.Очистить();
```
---
да нет, дело оказалось почему то в этой конструкции
```1c
    СтруктураВозврата.Вставить("КодВозврата", Истина);
    СтруктураВозврата.Вставить("ДанныеВозврата", ИскомыеСтроки);
```
. Там массив строк возвращался , и из за него почему то ошибка , хотя на клиенте массив вроде бы как доступен. Сделе так
```1c
    СтруктураВозврата.Вставить("КодВозврата", Истина);
    СтруктураВозврата.Вставить("ДанныеВозврата", Неопределено);
```
 и ошибка пропала.
---
А зачем вот это вот все?

 МассивПроверяемыхДанных.Добавить(КодНоменклатуры);
    МассивПроверяемыхДанных.Добавить(НомерПроизвЗадания);

    СтруктураВозврата = Новый Структура;

    ПроверкаДанныхПЗ = ПроверитьТекущиеДанныеПоПЗНаСервере(МассивПроверяемыхДанных[0], МассивПроверяемыхДанных[1]);

В чем проблема просто параметры передать?

```1c
    ПроверкаДанныхПЗ = ПроверитьТекущиеДанныеПоПЗНаСервере(КодНоменклатуры, НомерПроизвЗадания);
```

Ошибка у вас потому что вы на клиент возвращаете массив строк.

```1c
    ИскомыеСтроки = СписокНоменклатурыПроизвЗадания.НайтиСтроки(ПараметрыОтбора);

    Если Не ИскомыеСтроки.Количество() = 0 Тогда

    СтруктураВозврата.Вставить("КодВозврата", Истина);
    СтруктураВозврата.Вставить("ДанныеВозврата", ИскомыеСтроки);
```
---
МассивПроверяемыхДанных.Добавить(КодНоменклатуры);
Что за КодНоменклатуры ?
---
тут опечатался, КодТовара там должен быть. Спасибо, поправил.
---
Вылезает ошибка : ошибка отображения типов: Отсутствует отображение для типа "ДанныеФормыЭлементКоллекции"
ошибка вылезает в момент вызова функции или возврата из неё?

если возврата, то иногда помогает поставить перед параметрами "Знач" в

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

    МассивПроверяемыхДанных = Новый Массив;

    ТекущиеДанные = ЭтаФорма.ТекущийЭлемент.ТекущиеДанные;
    КодНоменклатуры = ТекущиеДанные.Артикул;
    НомерПроизвЗадания = ТекущиеДанные.НомерПроизводственногоЗадания;

    МассивПроверяемыхДанных.Добавить(КодНоменклатуры);
    МассивПроверяемыхДанных.Добавить(НомерПроизвЗадания);

    СтруктураВозврата = Новый Структура;

    ПроверкаДанныхПЗ = ПроверитьТекущиеДанныеПоПЗНаСервере(МассивПроверяемыхДанных[0], МассивПроверяемыхДанных[1]);

    Если ПроверкаДанныхПЗ.КодВозврата = Ложь Тогда

    Предупреждение(ПроверкаДанныхПЗ.ДанныеВозврата);
    Возврат;

    Иначе

    КонецЕсли;

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

    &НаСервере
    Функция ПроверитьТекущиеДанныеПоПЗНаСервере(КодНоменклатуры, НомерПроизвЗадания)

    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("НомКод", КодНоменклатуры);
    ПараметрыОтбора.Вставить("НПЗ", НомерПроизвЗадания);
    СтруктураВозврата = Новый Структура;

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

    Если Не ИскомыеСтроки.Количество() = 0 Тогда

    СтруктураВозврата.Вставить("КодВозврата", Истина);
    СтруктураВозврата.Вставить("ДанныеВозврата", ИскомыеСтроки);

    Иначе

    СтруктураВозврата.Вставить("КодВозврата", Ложь);
    СтруктураВозврата.Вставить("ДанныеВозврата", "По текущей номенклатуре нет доступного количества в производственном задании № " + НомерПроизвЗадания);

    КонецЕсли;

    Возврат СтруктураВозврата;

    КонецФункции
```
---
А зачем вот это вот все?

 МассивПроверяемыхДанных.Добавить(КодНоменклатуры);
    МассивПроверяемыхДанных.Добавить(НомерПроизвЗадания);

    СтруктураВозврата = Новый Структура;

    ПроверкаДанныхПЗ = ПроверитьТекущиеДанныеПоПЗНаСервере(МассивПроверяемыхДанных[0], МассивПроверяемыхДанных[1]);

В чем проблема просто параметры передать?

```1c
    ПроверкаДанныхПЗ = ПроверитьТекущиеДанныеПоПЗНаСервере(КодНоменклатуры, НомерПроизвЗадания);
```

Ошибка у вас потому что вы на клиент возвращаете массив строк.

```1c
    ИскомыеСтроки = СписокНоменклатурыПроизвЗадания.НайтиСтроки(ПараметрыОтбора);

    Если Не ИскомыеСтроки.Количество() = 0 Тогда

    СтруктураВозврата.Вставить("КодВозврата", Истина);
    СтруктураВозврата.Вставить("ДанныеВозврата", ИскомыеСтроки);
```
---
ИскомыеСтроки = СписокНоменклатурыПроизвЗадания.НайтиСтроки(ПараметрыОтбора);
1) зачем нужен серверный вызов?
2) не надо передавать результат НайтиСтроки(),
из СП:
Замечание! Массив хранит ссылки на строки коллекции.
т.е. в массивах ссылка на область памяти, где хранится данные формы,
что вы предлагаете делать с этой ссылкой на клиенте? - там эта инфа лежит в другом месте...

Способ обхода:
сделайте с результатом поиска что хотите на сервере.
либо вызывайте поиск строк на клиенте, и обрабатывайте данные на клиенте...
---
Когда данные меняю на ТСД то ошибка вылезает в момент вызова функции, когда с пк то уже во время возврата.
---
совсем ничего не понимаю.

PS вангую, вы пытаетесь передать ДанныеФормыЭлементКоллекции :)

больше ничего сказать не могу, т.к. кода нет, и контекст вызываемых процедур неизвестен...
---
да нет, дело оказалось почему то в этой конструкции
```1c
    СтруктураВозврата.Вставить("КодВозврата", Истина);
    СтруктураВозврата.Вставить("ДанныеВозврата", ИскомыеСтроки);
```
. Там массив строк возвращался , и из за него почему то ошибка , хотя на клиенте массив вроде бы как доступен. Сделе так
```1c
    СтруктураВозврата.Вставить("КодВозврата", Истина);
    СтруктураВозврата.Вставить("ДанныеВозврата", Неопределено);
```
 и ошибка пропала.
---
Там массив строк возвращался , и из за него почему то ошибка , хотя на клиенте массив вроде бы как доступен.
То что массив доступен не значит что через него можно передавать те типы, которые не передаются с клиента на сервер.
---
ежё понятно, что если всё заменить на Неопределено, то всё будет замечательно передаваться.

PS и всё же проблема была не в вызове функции, а в её возврате, как я и говорил в самом начале.
---
Согласен, проблема была в возврате. Но при отладке с ТСД в функцию даже не заходил отладчик, по этой причине я и считал, что при вызове ошибка.
---
у вас отладка на сервере не работает., потому и не заходит туда.
---
```1c
    ТекущиеДанные = ЭтаФорма.ТекущийЭлемент.ТекущиеДанные;
    КодНоменклатуры = ТекущиеДанные.Артикул;
    НомерПроизвЗадания = ТекущиеДанные.НомерПроизводственногоЗадания;
    ПроверкаДанныхПЗ = ПроверитьТекущиеДанныеПоПЗНаСервере(КодНоменклатуры , НомерПроизвЗадания);
```
---
Изначально я так и делал, а точнее
```1c
    ПроверкаДанныхПЗ = ПроверитьТекущиеДанныеПоПЗНаСервере(ТекущиеДанные.Артикул, ТекущиеДанные.НомерПроизводственногоЗадания);
```
. Но от ошибки уже избавился в (11) . Спасибо.
---
Да, я уже это понял, написал в (11) . А это МассивПроверяемыхДанных.Добавить(КодНоменклатуры);
МассивПроверяемыхДанных.Добавить(НомерПроизвЗадания);

СтруктураВозврата = Новый Структура;

ПроверкаДанныхПЗ = ПроверитьТекущиеДанныеПоПЗНаСервере(МассивПроверяемыхДанных[0], МассивПроверяемыхДанных[1]); была попытка, я думал что ошибка из за ПроверитьТекущиеДанныеПоПЗНаСервере(ТекущиеДанные.Артикул, ТекущиеДанные.НомерПроизводственногоЗадания). Спасибо.
---
Всем спасибо!