Имя: Пароль:
1C
1С v8
Запись в колонку табличной части макета
0 bfss-732
 
21.09.20
13:50
Привет всем!
Есть условие:
Если ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Месячная
                            или ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Дневная Тогда
    ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавка = ПолучитьСтрокуИзДвухЧисел(МинСт, МаксСт);
ИначеЕсли  ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Часовая Тогда
        ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавкаЧасовая = ПолучитьСтрокуИзДвухЧисел(МинСт, МаксСт);
КонецЕсли;

Оно записывает значения в разные две колонки в макет. Проблема в том, что когда любое из условий становится Ложью (т.е. надо оставить в макете пустую ячейку), все равно заполняется предыдущим значением до тех пор, пока условие не появляется Истино для этой колонки и значение меняется, т.е. должно заполняться одним значением, в любой из колонок.
Как правильно написать условие, чтоб не заполнялось предыдущими значениями?
1 RomanYS
 
21.09.20
13:54
(0) >> Как правильно написать условие, чтоб не заполнялось предыдущими значениями?
Правильно их очищать или заполнять явно все в т.ч. пустыми и нулевыми значениями
2 bfss-732
 
21.09.20
13:56
(1) Получается лучше сделать два "Если", в одном если выполняестя идет запись, если нет, очищаем? В другом если тоже самое
3 Serg_1960
 
21.09.20
13:58
Скорее всего автор, получив однажды из макета область, не очищает параметры перед их последующим использованием.
4 bfss-732
 
21.09.20
13:59
(1) Да, спасибо! Вопрос снят!
(3) Не хочу штатное расписание переделать, хочеться чутка залезть, не ломая
5 bfss-732
 
21.09.20
14:01
(1) Маленький вопрос. Как это в моем случае заполнить явно?
6 Serg_1960
 
21.09.20
14:02
(4) Тогда так (если я правильно понял проблему автора):

Если ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Месячная
                            или ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Дневная Тогда
   ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавка = ПолучитьСтрокуИзДвухЧисел(МинСт, МаксСт);
   ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавкаЧасовая = 0;
ИначеЕсли  ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Часовая Тогда
   ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавкаЧасовая = ПолучитьСтрокуИзДвухЧисел(МинСт, МаксСт);
   ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавка = 0;
Иначе
   ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавкаЧасовая = 0;
   ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавка = 0;
КонецЕсли;
7 bfss-732
 
21.09.20
14:04
(6) Я сделал по другому:
Если ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Месячная
                            или ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Дневная Тогда
       ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавка = ПолучитьСтрокуИзДвухЧисел(МинСт, МаксСт);
                        
Иначе
    ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавка = "";
КонецЕсли;
    
......................................                        
Если  ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Часовая Тогда
    ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавкаЧасовая = ПолучитьСтрокуИзДвухЧисел(МинСт, МаксСт);
Иначе
    ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавкаЧасовая = "";
КонецЕсли;
8 Serg_1960
 
21.09.20
14:09
И так тоже можно.

ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавка = "";
ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавкаЧасовая = "";
Если ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Месячная
      ИЛИ ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Дневная Тогда
   ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавка = ПолучитьСтрокуИзДвухЧисел(МинСт, МаксСт);
ИначеЕсли ВыборкаСтрокШтРасписанияНадбавка.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Часовая Тогда
   ОбластьСтрокаДоНадбавок.Параметры.ОкладТарифнаяСтавкаЧасовая = ПолучитьСтрокуИзДвухЧисел(МинСт, МаксСт);
КонецЕсли;
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.