|
Заполнение табличной части по значениям текущей ячейки. | ☑ | ||
---|---|---|---|---|
0
Maikroft
04.04.18
✎
19:58
|
Добрый день.
То ли вечер, то ли что. Помогите заполнить табличную часть в зависимости от вида тарифа по значениям выделенной ячейки. Вот что сделал, но не работает. &НаСервере Функция ПолучитьВидТарифа(Тариф) Возврат Перечисления.ВидыТарифа; КонецФункции &НаКлиенте Процедура ЗаполнитьТарифыПоВыделеннойСТрокеНаСервере(Команда) ТекСтрока = ЭтаФорма.Элементы.ТорговыеТочки.ТекущиеДанные; Тариф = ПолучитьВидТарифа(Объект.Тариф); Если Тариф = "Фиксированный" Тогда ТекСумма = ТекСтрока.Сумма; Для Каждого СтрокаТЧ Из Объект.ТорговыеТочки Цикл СтрокаТЧ.Сумма = ТекСумма; КонецЦикла; ИначеЕсли Тариф = "ПоSKU" Тогда ТекКоличествоSKU = ТекСтрока.Количество; ТекЦенаSKUВМесяц = ТекСтрока.Цена; Для Каждого СтрокаТЧ Из Объект.ТорговыеТочки Цикл СтрокаТЧ.Цена = ТекЦенаSKUВМесяц; СтрокаТЧ.Количество = ТекКоличествоSKU; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
1
AlvlSpb
04.04.18
✎
20:57
|
(0) код хоть и замороченный (сокращается почти в два раза), но кажется работающим.
Ошибку скорей всего в этом (и далее в подобном): Если Тариф = "Фиксированный" Тариф - это просто строка или все же элемент справочника Тарифы? Если второе тогда Если Тариф = Справочники.Тарифы.НайтиПоНаименованию("Фиксированный") Причем получение значения справочника надо делать НаСервере |
|||
2
Малыш Джон
04.04.18
✎
21:02
|
чет у меня подозрение, что должно быть:
&НаСервере Функция ПолучитьВидТарифа(Тариф) Возврат Перечисления.ВидыТарифа[Тариф]; КонецФункции |
|||
3
Малыш Джон
04.04.18
✎
21:02
|
+(2)
и на клиенте: Если Тариф = ПолучитьВидТарифа("Фиксированный") Тогда |
|||
4
Малыш Джон
04.04.18
✎
21:03
|
+(3)
и: Тариф = Объект.Тариф; |
|||
5
Малыш Джон
04.04.18
✎
21:04
|
ТС, а как же дедуктивный метод? Шерлок был бы недоволен...
|
|||
6
Maikroft
04.04.18
✎
22:12
|
Спасибо, я пробую.
В этот раз дедукция подвела.) |
|||
7
Maikroft
04.04.18
✎
22:20
|
Да, тариф это, конечно, перечисление.
Но не работает и все тут, хотя все верно по сути. Попробовал без функции по возврату тарифа - та же беда, не заполняется ТЧ, в ней проблема. ТЧ сделана хитро, у нее заголовок меняется в зависимости от тарифа, но это не должно влиять. Простейшая задача ведь.( Если Объект.Тариф = Перечисления.ВидыТарифа.Фиксированный Тогда Элементы.ТорговыеТочкиЦена.Видимость = Ложь; Элементы.ТорговыеТочкиКоличество.Видимость = Ложь; Элементы.ТорговыеТочкиСумма.ТолькоПросмотр = Ложь; Элементы.ТорговыеТочкиСумма.Заголовок = "Сумма в месяц"; |
|||
8
AlvlSpb
05.04.18
✎
00:06
|
(7) "Если Объект.Тариф = Перечисления.ВидыТарифа.Фиксированный Тогда"
Это надо делать НаСервере |
|||
9
zwei
05.04.18
✎
00:22
|
(7)
Если Объект.Тариф = ПредопределенноеЗначение("Перечисления.ВидыТарифа.Фиксированный") Тогда Или перебирать коллекцию на сервере, но это будет плюс контекстный вызов и таскание всей таблицы сюда-туда. |
|||
10
Maikroft
05.04.18
✎
13:31
|
В общем, я идиот, у меня просто была ошибка в названии процедуры и она не вызывалась.)
Кстати, спасибо за вот это, буду пользоваться. Если Объект.Тариф = ПредопределенноеЗначение("Перечисления.ВидыТарифа.Фиксированный") |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |