Имя: Пароль:
1C
1С v8
Заполнение полей печатной формы
0 Shaggart
 
30.08.17
10:36
Добрый день! БП 2.0. В справочнике ОС есть печатная форма ОС-6. Переоценку в базе никто не делал 3 года, а данные в инвентарную карточку должны попадать, задача заполнить поле предыдущим показателем, но проблема в том что показателей может быть 2, за 2013 и 2014 года, посему делаю проверку на заполненность строки, но не получаю результата...
Часть кода с условием

Если ТаблицаПереоценок.Количество() > 0 Тогда
        СтрокиРаздела3.Параметры.ДатаПереоценки = ТаблицаПереоценок[0].Дата;
        СтрокиРаздела3.Параметры.КоэффициентПереоценки = Окр(ТаблицаПереоценок[0].ВосстановительнаяСтоимость/ТаблицаПереоценок[0].ПервоначальнаяСтоимость, 2, РежимОкругления.Окр15как20);
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки = ТаблицаПереоценок[0].ВосстановительнаяСтоимость;
    Иначе
        СтрокиРаздела3.Параметры.ДатаПереоценки = "-------------------";
        СтрокиРаздела3.Параметры.КоэффициентПереоценки = "--------------------------------";
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки = "-------------------------------";            
    КонецЕсли;
    Если ТаблицаПереоценок.Количество() > 1 Тогда
        СтрокиРаздела3.Параметры.ДатаПереоценки2 = ТаблицаПереоценок[1].Дата;
        СтрокиРаздела3.Параметры.КоэффициентПереоценки2 = Окр(ТаблицаПереоценок[1].ВосстановительнаяСтоимость/ТаблицаПереоценок[1].ПервоначальнаяСтоимость, 2, РежимОкругления.Окр15как20);
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2 = ТаблицаПереоценок[1].ВосстановительнаяСтоимость;
    Иначе
        СтрокиРаздела3.Параметры.ДатаПереоценки2 = "-------------------";
        СтрокиРаздела3.Параметры.КоэффициентПереоценки2 = "--------------------------------";
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2 = "-------------------------------";        
    КонецЕсли;    
    Если НЕ ПустаяСтрока (СтрокиРаздела3.Параметры.ДатаПереоценки2 И СтрокиРаздела3.Параметры.КоэффициентПереоценки2 И СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2) Тогда
    //Если ТаблицаПереоценок.Количество() > 2 Тогда
        СтрокиРаздела3.Параметры.ДатаПереоценки2 = СтрокиРаздела3.Параметры.ДатаПереоценки;
        СтрокиРаздела3.Параметры.КоэффициентПереоценки2 = СтрокиРаздела3.Параметры.КоэффициентПереоценки;
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2 = СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки;
    Иначе Если ТаблицаПереоценок.Количество() > 2 Тогда
        СтрокиРаздела3.Параметры.ДатаПереоценки3 = СтрокиРаздела3.Параметры.ДатаПереоценки2;
        СтрокиРаздела3.Параметры.КоэффициентПереоценки3 = СтрокиРаздела3.Параметры.КоэффициентПереоценки2;
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки3 = СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2;    
    Иначе
        СтрокиРаздела3.Параметры.ДатаПереоценки3 = "-------------------";
        СтрокиРаздела3.Параметры.КоэффициентПереоценки3 = "--------------------------------";
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки3 = "-------------------------------";                
    КонецЕсли;
    КонецЕсли;
    Если ТаблицаПереоценок.Количество() > 3 Тогда
        СтрокиРаздела4.Параметры.ДатаПереоценки4 = ТаблицаПереоценок[3].Дата;
        СтрокиРаздела4.Параметры.КоэффициентПереоценки4 = Окр(ТаблицаПереоценок[3].ВосстановительнаяСтоимость/ТаблицаПереоценок[3].ПервоначальнаяСтоимость, 2, РежимОкругления.Окр15как20);
        СтрокиРаздела4.Параметры.ВосстановительнаяСтоимостьПереоценки4 = ТаблицаПереоценок[3].ВосстановительнаяСтоимость;    
    Иначе
        СтрокиРаздела4.Параметры.ДатаПереоценки4 = "-------------------";
        СтрокиРаздела4.Параметры.КоэффициентПереоценки4 = "--------------------------------";
        СтрокиРаздела4.Параметры.ВосстановительнаяСтоимостьПереоценки4 = "-------------------------------";    

Прошу от критики воздержаться и помочь по делу. Спасибо
1 h-sp
 
30.08.17
11:23
(0) ПустаяСтрока (СтрокиРаздела3.Параметры.ДатаПереоценки2 И СтрокиРаздела3.Параметры.КоэффициентПереоценки2 И СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2)

это непонятно

Пуситая строка от чего? От булевого значения?
2 Shaggart
 
30.08.17
11:26
Пустая строка на печатной форме, 3 параметра в ней, вот эти 3 параметра если пустые, то в них должно подставляться предыдущее значение, если они заполнены, то следующие за этими параметры заполняться должны этими значениями
3 h-sp
 
30.08.17
11:30
(2) функция ПустаяСтрока. ВЫ туда в параметр передаете ЛОЖЬ. Делайте 3 Пустыестроки

ПустаяСтрока() И ПустаяСтрока() И ПустаяСтрока()
4 Shaggart
 
30.08.17
12:02
Все работает, в плане того, что формируется печатная форма, только в необходимые поля ничего не подставляется, если был заполнен один параметр, то автоматом не заполняется следующий
5 Shaggart
 
30.08.17
12:03
Если НЕ ПустаяСтрока (СтрокиРаздела3.Параметры.ДатаПереоценки2) И ПустаяСтрока (СтрокиРаздела3.Параметры.КоэффициентПереоценки2) И ПустаяСтрока (СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2) Тогда
    //Если ТаблицаПереоценок.Количество() > 2 Тогда
        СтрокиРаздела3.Параметры.ДатаПереоценки2 = СтрокиРаздела3.Параметры.ДатаПереоценки;
        СтрокиРаздела3.Параметры.КоэффициентПереоценки2 = СтрокиРаздела3.Параметры.КоэффициентПереоценки;
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2 = СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки;
    Иначе Если ТаблицаПереоценок.Количество() > 2 Тогда
        СтрокиРаздела3.Параметры.ДатаПереоценки3 = СтрокиРаздела3.Параметры.ДатаПереоценки2;
        СтрокиРаздела3.Параметры.КоэффициентПереоценки3 = СтрокиРаздела3.Параметры.КоэффициентПереоценки2;
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки3 = СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки2;    
    Иначе
        СтрокиРаздела3.Параметры.ДатаПереоценки3 = "-------------------";
        СтрокиРаздела3.Параметры.КоэффициентПереоценки3 = "--------------------------------";
        СтрокиРаздела3.Параметры.ВосстановительнаяСтоимостьПереоценки3 = "-------------------------------";                
    КонецЕсли;
6 h-sp
 
30.08.17
13:01
(5) теперь "НЕ" пропустил везде. Просыпайся уже.
Ошибка? Это не ошибка, это системная функция.