|
Как оптимизировать обращение на сервер с формы? 🠗 (Волшебник 18.03.2025 10:13) | ☑ | ||
---|---|---|---|---|
0
program345
18.03.25
✎
09:16
|
Добрый день!
С клиента обращаюсь на сервер, для получения Значения реквизита справочника из текущие данные. Как я понимаю Скидка = ПолучитьСкидку(ТекДанные.Скидка); не оч хорошо, может проще создать реквизит в ТаблЧасти? &НаКлиенте Процедура ТоварыКоличествоПриИзменении(Элемент) ТекДанные = Элементы.Товары.ТекущиеДанные; Попытка Скидка = ПолучитьСкидку(ТекДанные.Скидка); Исключение Скидка = 0; КонецПопытки; ТекДанные.Сумма = ТекДанные.Количество * ТекДанные.Цена; ТекДанные.СуммаСкидки = ТекДанные.Сумма * Скидка/100; ТекДанные.Всего = ТекДанные.Сумма - ТекДанные.СуммаСкидки; КонецПроцедуры &НаКлиенте Процедура ТоварыЦенаПриИзменении(Элемент) ТекДанные = Элементы.Товары.ТекущиеДанные; Попытка Скидка = ПолучитьСкидку(ТекДанные.Скидка); Исключение Скидка = 0; КонецПопытки; ТекДанные.Сумма = ТекДанные.Количество * ТекДанные.Цена; ТекДанные.СуммаСкидки = ТекДанные.Сумма * Скидка/100; ТекДанные.Всего = ТекДанные.Сумма - ТекДанные.СуммаСкидки; КонецПроцедуры &НаКлиенте Процедура ТоварыСуммаПриИзменении(Элемент) ТекДанные = Элементы.Товары.ТекущиеДанные; Попытка Скидка = ПолучитьСкидку(ТекДанные.Скидка); Исключение Скидка = 0; КонецПопытки; //ТекДанные.Сумма = ТекДанные.Количество * ТекДанные.Цена; ТекДанные.СуммаСкидки = ТекДанные.Сумма * Скидка/100; ТекДанные.Всего = ТекДанные.Сумма - ТекДанные.СуммаСкидки; КонецПроцедуры &НаКлиенте Процедура ТоварыСкидкаПриИзменении(Элемент) ТекДанные = Элементы.Товары.ТекущиеДанные; Попытка Скидка = ПолучитьСкидку(ТекДанные.Скидка); Исключение Скидка = 0; КонецПопытки; //ТекДанные.Сумма = ТекДанные.Количество * ТекДанные.Цена; ТекДанные.СуммаСкидки = ТекДанные.Сумма * Скидка/100; ТекДанные.Всего = ТекДанные.Сумма - ТекДанные.СуммаСкидки; КонецПроцедуры &НаКлиенте Процедура ТоварыСуммаСкидкиПриИзменении(Элемент) ТекДанные = Элементы.Товары.ТекущиеДанные; //Попытка // Скидка = ПолучитьСкидку(ТекДанные.Скидка); //Исключение // Скидка = 0; //КонецПопытки; //ТекДанные.Сумма = ТекДанные.Количество * ТекДанные.Цена; //ТекДанные.СуммаСкидки = ТекДанные.Сумма * Скидка/100; ТекДанные.Всего = ТекДанные.Сумма - ТекДанные.СуммаСкидки; КонецПроцедуры &НаСервере Функция ПолучитьСкидку(Скидка) Возврат Скидка.ЗначениеСкидки; КонецФункции // () |
|||
1
Волшебник
18.03.25
✎
09:17
|
Тут нечего оптимизировать
|
|||
2
ass1c
18.03.25
✎
09:18
|
&НаСервереБезКонтекста
Функция ПолучитьСкидку(Скидка) Возврат Скидка.ЗначениеСкидки; КонецФункции // () |
|||
3
arsik
гуру
18.03.25
✎
09:18
|
&НаСервере
поменяй на &НаСервереБезКонтекста И норм |
|||
4
BDA80
18.03.25
✎
09:20
|
Через точку от ссылки - ай ай яй
|
|||
5
Маленький Вопросик
18.03.25
✎
09:25
|
(4) выучил фразу с берестяных скрижалей?
|
|||
6
ass1c
18.03.25
✎
09:28
|
ну или если кому не нравится через точку, красиво и по БСП шному
&НаСервереБезКонтекста Функция ПолучитьСкидку(Скидка) Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Скидка, "ЗначениеСкидки"); КонецФункции // () |
|||
7
H A D G E H O G s
18.03.25
✎
09:28
|
ПроверятьПоМетаданным=Истина;
Скидка = пргОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекДанные.Скидка,"ЗначениеСкидки",ПроверятьПоМетаданным); |
|||
8
Маленький Вопросик
18.03.25
✎
09:40
|
мне не нравится вот такой подход:
Попытка Скидка = ПолучитьСкидку(ТекДанные.Скидка); Исключение Скидка = 0; КонецПопытки; надо работать через ТекДанные = неопределено, а не через вот эту всю шляпу... но - мы не знаем, что за текущие данные там у него |
|||
9
H A D G E H O G s
18.03.25
✎
09:42
|
(8) это неуверенность в завтрашнем дне новичка. Нужно смело собирать ошибки!
|
|||
10
Волшебник
18.03.25
✎
09:49
|
тут редактирование 1 строки. Что вы пытаетесь оптимизировать?
|
|||
11
Прохожий
18.03.25
✎
09:53
|
(8) Через попытку даже сам вендор часто пишет. Скоро при начале работы системы будет написано Попытка на весь сеанс. И в любой момент в исключение ПоказатьРекламу(); ЗавершитьРаботуСистемы()
|
|||
12
Мультук
гуру
18.03.25
✎
09:53
|
(9)
А потом также смело пожирать их в Исключение //ну и хрен с ней, с ошибкой КонецПопытки; program345, еще немного и ваши "рыжие кудри" примелькаются (8) Он ниже присваивает в возможные ТекДанные = неопределено, так что медицина тут пока "нервно курит". |
|||
13
program345
18.03.25
✎
10:09
|
(8)
|
|||
14
Мультук
гуру
18.03.25
✎
10:13
|
(13)
Вам говорят про условие (см код) &НаКлиенте Процедура ТоварыСкидкаПриИзменении(Элемент) ТекДанные = Элементы.Товары.ТекущиеДанные; Если ТекДанные = Неопределено Тогда Возврат; КонецЕсли; Скидка = ПолучитьСкидку(ТекДанные.Скидка); //ТекДанные.Сумма = ТекДанные.Количество * ТекДанные.Цена; ТекДанные.СуммаСкидки = ТекДанные.Сумма * Скидка/100; ТекДанные.Всего = ТекДанные.Сумма - ТекДанные.СуммаСкидки; КонецПроцедуры |
|||
15
Волшебник
18.03.25
✎
10:13
|
Хватит разврата... Не надо оптимизировать учебную конфигурацию из 4 документов
|
|||
16
program345
18.03.25
✎
10:46
|
(8) (14) Неопределено нету, есть пустая ссылка справочника Скидки, а на клиенте пустую ссылку не получить...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |