|
Заполнение полей табличной части при выборе справочника | ☑ | ||
---|---|---|---|---|
0
Dersus
13.04.20
✎
11:21
|
Здравствуйте, прошу помочь с решение вопроса.
У меня есть табличная часть "ПереченоУслугИТоваров", в ней 3 строки 1. "УслугаИлиТовар", которая имеет тип ссылка и ссылается на справочник "Услуги" (в нем есть ещё 1 реквизит - стоимость) 2 и 3 - это стоимость и кол-во имеют тип число. Так вот, как мне после выбора нужно мне услуги в 1 строке, сразу поставить и стоимость? Я знаю, что это нужно делать при помощи события "ПриИзменении", но вот что писать хз, подскажите. |
|||
1
mikecool
13.04.20
✎
11:53
|
табличная часть с 3 строками? что за изврат в решении?
|
|||
2
Ёпрст
13.04.20
✎
11:58
|
||||
3
Dersus
13.04.20
✎
12:12
|
(2) Мне бы на код глянуть)
|
|||
4
Ёпрст
13.04.20
✎
12:12
|
(3) открыть любую типовую и посмотреть
|
|||
5
vi11ra
13.04.20
✎
12:50
|
А стоимость услуги у тебя где записана, в справочнике номенклатуры?
|
|||
6
Dersus
13.04.20
✎
12:57
|
(5) Справочник "Услуги" реквизиты - "наименование", "стоимость".
|
|||
7
GGDots
13.04.20
✎
12:57
|
Ну совсем грубо и примерно - на первый раз сойдет:
(0) 3 колонки. Номенклатура, Стоимость, Количество &НаКлиенте Процедура ТоварыНоменклатураПриИзменении(Элемент) Контейнер = Элементы.Номенклатура.ТекущиеДанные; Если Контейнер <> Неопределено Тогда Контейнер .Стоимость= ПолучитьСТоиомость(Контейнер .Номенклатура); КонецЕсли; КонецПроцедуры Функция ПолучитьСТоиомость(п_Номенклатура) //либо нормальный алгоритм из регистров //либо Возврат п_Номенклатура.Стоимость; КонецФункции |
|||
8
GGDots
13.04.20
✎
12:58
|
(4) +++
|
|||
9
GGDots
13.04.20
✎
12:59
|
НЕ "Элементы.Номенклатура.ТекущиеДанные;", Элементы.ТабличнаяЧасть.ТекущиеДанные
|
|||
10
vi11ra
13.04.20
✎
13:46
|
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент) ТекДан = Элементы.Товары.ТекущиеДанные; //".Товары." это название табличной части формы которую ты создал. ТекДан.Цена = ПолучитьЦенуНоменклатуры(ТекДан.Номенклатура); КонецПроцедуры &НаСервере Функция ПолучитьЦенуНоменклатуры(Номенклатура); Возврат Номенклатура.Цена; КонецФункции Вот так должно хорошо работать :) |
|||
11
vi11ra
13.04.20
✎
14:17
|
(0) ответ выше написал, попробуй так. Напиши если получится или не получится.
|
|||
12
dezss
14.04.20
✎
10:47
|
(10) 9 строк кода. И уже говнокод. Это просто дар)))
|
|||
13
Dersus
14.04.20
✎
16:39
|
(10) Не работает
|
|||
14
Dersus
14.04.20
✎
16:47
|
(7) Получилось, спасибо.
|
|||
15
vi11ra
16.04.20
✎
14:40
|
(12) Спасибо, 2 часа занятий на ютубе не прошли даром. Могу говнокодить. Буду рад эталонному примеру с пояснениями.
|
|||
16
dezss
16.04.20
✎
17:02
|
(15) Ну тут я вижу всего 2 ляпа
1. И самый критичный &НаСервере Функция ПолучитьЦенуНоменклатуры(Номенклатура); Тебе не нужны никакие данные формы или объекта, а ты делаешь контекстный серверный. Это приводит к тому, что все данные формы пакуются и едут на сервер, а потом так же обратно. Это лучше исправить на такой код: &НаСервереБезКонтекста Функция ПолучитьЦенуНоменклатуры(Номенклатура); 2. Не самое критичное, но тоже не лучший вариант. Такое обращение "Номенклатура.Цена" к полю "Цена" не самой лучший способ вытащить данные. В БСП есть ОбщегоНазначения.ЗначениеРеквизитаОбъекта. Если нет БСП, то просто вытащить запросом (собственно, в БСП запрос и формируется). Не всегда такое решение подходит, но чаще всего оно эффективней. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |