У меня есть код который работает на клиенте:

```1c
    &НаКлиенте
    Процедура ТабличнаяЧастьКоличествоПриИзменении(Элемент)

    СтрокаТабличнойЧасти = Элементы.Товар.ТекущиеДанные;
    СтрокаТабличнойЧасти.Сумма = (СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена) + (СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.НДС)

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

И теперь мне нужно чтоб я мог вызвать этот пример с сервера (&НаСервере)
Так как я еще учусь, не знаю как это сделать правильно(
---
```1c
    &НаКлиентеНаСервереБезКонтекста
    Процедура ТабличнаяЧастьКоличествоПриИзменении(Форма)

    Элементы = Форма.Элементы;

    СтрокаТабличнойЧасти = Элементы.Товар.ТекущиеДанные;
    СтрокаТабличнойЧасти.Сумма = (СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена) + (СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.НДС)

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

Можно вызвать с клиента и сервера, в параметре необходимо указать "ЭтаФорма".
---
теперь мне нужно чтоб я мог вызвать этот пример с сервера (&НаСервере)

и какой в этом сакральный смысл?
---
Не знаю. Мне сказали чтоб я так сделал
Вроде как, чтоб не выглядело громоздким
---
Не знаю. Мне сказали чтоб я так сделал
Вроде как, чтоб не выглядело громоздким

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

Например так:

```1c
    ТекДанные = Элементы.Товар.ТекущиеДанные;
    ТекДанные.Сумма = (ТекДанные.Количество * ТекДанные.Цена) + (ТекДанные.Цена * ТекДанные.НДС)
```

Или так:

```1c
    ТекДанные = Элементы.Товар.ТекущиеДанные;
    СуммаБезНДС = ТекДанные.Количество * ТекДанные.Цена;
    СуммаНДС = ТекДанные.Цена * ТекДанные.НДС;
    ТекДанные.Сумма = СуммаБезНДС + СуммаНДС;
```

Делать серверные вызовы для выполнения нескольких арифметических операций слишком расточительно.
---
И теперь мне нужно чтоб я мог вызвать этот пример с сервера (&НаСервере)всё что делается на сервере, обычно вызывается с клиента...
---
к психиатру! Ну или к психологу...

Нет тупых, если у них нет официального диагноза. Приходи со справкой.

По существу вопроса:
1. Делай то же самое на сервере.
2. В клиентской процедуре просто вызови серверную.

```1c
    &НаСервере
    Процедура СделатьТоЖеСаоеНаСерваке()
    // то же самое
    КонецПроцедуры

    &НаКлиенте
    Процедура ПриИзменении(Элемент)
    СделатьТоЖеСаоеНаСерваке()
    КонецПроцедуры
```
---
Элементы.Товар.ТекущиеДанные; будет работать и &НаКлиенте и на &НаСервере, а на &НаСервереБезКонтекста не взлетит...
---
```1c
    &НаСервереБезКонтекста
    Процедура посчитать(текущаястрока)
    СтрокаТабличнойЧасти.Сумма = (СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена) + (СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.НДС)

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

Вызвать можно её хоть с клиента хоть с сервера
Посчитать (Элементы.Товар.ТекущиеДанные)
---
```1c
    &НаКлиентеНаСервереБезКонтекста
    Процедура ТабличнаяЧастьКоличествоПриИзменении(Форма)

    Элементы = Форма.Элементы;

    СтрокаТабличнойЧасти = Элементы.Товар.ТекущиеДанные;
    СтрокаТабличнойЧасти.Сумма = (СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена) + (СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.НДС)

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

Можно вызвать с клиента и сервера, в параметре необходимо указать "ЭтаФорма".
---
Спасибо, мне это помогло
---
```1c
    СтрокаТабличнойЧасти.Сумма = (СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена) + (СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.НДС)
```

Странно считается у вас сумма, кмк. Точно не

```1c
    СтрокаТабличнойЧасти.Сумма = (СтрокаТабличнойЧасти.Количество * (СтрокаТабличнойЧасти.Цена + СтрокаТабличнойЧасти.НДС))
```
 ?
---
да, я тоже обратил на это внимание. где расчет и где логика...))
---
Может задачи HR ставит)