Вход | Регистрация

1С:Предприятие ::

Метки: 

Заполнение табличной части по значениям текущей ячейки.

Я
   Maikroft
 
04.04.18 - 19:58
Добрый день.

То ли вечер, то ли что.
Помогите заполнить табличную часть в зависимости от вида тарифа по значениям выделенной ячейки. Вот что сделал, но не работает.

&НаСервере
Функция ПолучитьВидТарифа(Тариф)
    Возврат Перечисления.ВидыТарифа;
КонецФункции

&НаКлиенте
Процедура ЗаполнитьТарифыПоВыделеннойСТрокеНаСервере(Команда)
    
    ТекСтрока = ЭтаФорма.Элементы.ТорговыеТочки.ТекущиеДанные;
    Тариф = ПолучитьВидТарифа(Объект.Тариф);
    Если Тариф = "Фиксированный" Тогда
        ТекСумма = ТекСтрока.Сумма;
            Для Каждого СтрокаТЧ Из Объект.ТорговыеТочки Цикл 
                СтрокаТЧ.Сумма = ТекСумма;
            КонецЦикла;
    ИначеЕсли Тариф = "ПоSKU" Тогда
        ТекКоличествоSKU = ТекСтрока.Количество;
        ТекЦенаSKUВМесяц = ТекСтрока.Цена;
            Для Каждого СтрокаТЧ Из Объект.ТорговыеТочки Цикл
                СтрокаТЧ.Цена = ТекЦенаSKUВМесяц;
                СтрокаТЧ.Количество = ТекКоличествоSKU;
            КонецЦикла;
    КонецЕсли;
КонецПроцедуры
 
 
   AlvlSpb
 
1 - 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
ТС, а как же дедуктивный метод? Шерлок был бы недоволен...
   Maikroft
 
6 - 04.04.18 - 22:12
Спасибо, я пробую.
В этот раз дедукция подвела.)
   Maikroft
 
7 - 04.04.18 - 22:20
Да, тариф это, конечно, перечисление.
Но не работает и все тут, хотя все верно по сути.
Попробовал без функции по возврату тарифа - та же беда, не заполняется ТЧ, в ней проблема.
ТЧ сделана хитро, у нее заголовок меняется в зависимости от тарифа, но это не должно влиять. Простейшая задача ведь.(

Если Объект.Тариф = Перечисления.ВидыТарифа.Фиксированный Тогда
        Элементы.ТорговыеТочкиЦена.Видимость = Ложь;
        Элементы.ТорговыеТочкиКоличество.Видимость = Ложь;
        Элементы.ТорговыеТочкиСумма.ТолькоПросмотр = Ложь;
        Элементы.ТорговыеТочкиСумма.Заголовок = "Сумма в месяц";
   AlvlSpb
 
8 - 05.04.18 - 00:06
(7) "Если Объект.Тариф = Перечисления.ВидыТарифа.Фиксированный Тогда"
Это надо делать НаСервере
   zwei
 
9 - 05.04.18 - 00:22
(7)
Если Объект.Тариф = ПредопределенноеЗначение("Перечисления.ВидыТарифа.Фиксированный") Тогда
   
Или перебирать коллекцию на сервере, но это будет плюс контекстный вызов и таскание всей таблицы сюда-туда.
   Maikroft
 
10 - 05.04.18 - 13:31
В общем, я идиот, у меня просто была ошибка в названии процедуры и она не вызывалась.)
Кстати, спасибо за вот это, буду пользоваться.
Если Объект.Тариф = ПредопределенноеЗначение("Перечисления.ВидыТарифа.Фиксированный")
 
 Рекламное место пустует


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует