---
name: onec-server-proc-param-needs-znach
description: "1С — параметры &НаСервере-процедур, вызываемых из &НаКлиенте (особенно если внутри переприсваиваются на форменные объекты), нужно объявлять с Знач, иначе крах на границе клиент-сервер"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 64fc3535-7787-4991-bebc-e8872010f228
  modified: 2026-08-07T08:58:25.432Z
---

Параметр `&НаСервере`-процедуры/функции без `Знач` 1С трактует как передаваемый по
ссылке — платформа обязана сериализовать его ИТОГОВОЕ значение обратно клиенту после
выполнения, даже если вызывающий код этот возврат никак не использует. Если внутри
процедуры параметр переприсваивается на объект, для которого нет клиент-серверного
XDTO-отображения (строка табличной части формы — `ДанныеФормыЭлементКоллекции`,
элемент формы и т.п.), процедура падает в рантайме:

```
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
...
Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции'
```

Симптом сбивает с толку: ошибка указывает на саму СТРОКУ ВЫЗОВА (клиентский код), а не
на строку внутри процедуры, где параметр реально переприсваивается — и не лечится
попыткой передать аргумент явно вместо того, чтобы полагаться на значение по умолчанию
(проверено — ошибка повторяется 1:1). Процедуры вовсе без параметров эту болезнь не
ловят по определению — им нечего возвращать.

**Why:** обнаружено на доработке `Документ.ТуродниОтчет` (новая процедура
`РассчитатьСуммуПолную(SтрокаТаблицы = Неопределено)`, вызываемая из трёх
`&НаКлиенте`-обработчиков `ПриИзменении`) — внутри параметр переприсваивался на строку
`Объект.Таблица` через `НайтиПоИдентификатору`. `1c-testbench` (L0/L0.5 — парсер BSL +
сверка метаданных) это в принципе не ловит: чисто рантайм-поведение границы
клиент-сервер, не синтаксис.

**How to apply:** любой параметр `&НаСервере`-процедуры/функции, вызываемой напрямую из
клиентского кода (или из другой процедуры, которая сама так вызывается), объявлять с
`Знач`, если обратная запись в аргумент не нужна (а она нужна редко) —
`Процедура X(Знач Параметр = Неопределено) НаСервере`. Особенно если внутри тела
параметр может быть переприсвоен на форменно-связанный объект (строка ТЧ, элемент
коллекции, ссылка на элемент формы). Проверять реальным запуском в 1С — см.
[[onec_no_visual_1c]] и [[onec_testbench_skill]], этот класс багов стенд не ловит.
