Имя: Пароль:
1C
1C 7.7
v7: Не сравниваются строки
0 NemeL
 
05.10.11
11:18
Добрый день.Помогите разобраться в чем проблема, нуть вот в чем если наименование одинавокое то вывод СекцииСтрока, если наименование сменилось то вывод секцииСтрока_1
[CODE]
[/CODE]
1 Ёпрст
 
гуру
05.10.11
11:19
(0) СокрЛП()
2 NemeL
 
05.10.11
11:21
[CODE]
Процедура Печать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Печать");
   Таб.ВывестиСекцию("Шапка");
   Таб.Опции(0,0,0,0);
   ВыбратьСтроки();
П1=Строка(П1);
П2=Строка(п2);
   Пока ПолучитьСтроку() = 1 Цикл
            Если П1<>П2 Тогда
       Таб.ВывестиСекцию("Строка_1");
                   Иначе
                   Таб.ВывестиСекцию("Строка");  
       КонецЕсли;  
   КонецЦикла;
   Таб.ВывестиСекцию("Подвал");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Печать Заказ","");
КонецПроцедуры
[/CODE]
3 Ёпрст
 
гуру
05.10.11
11:22
//П1=Строка(П1);
//П2=Строка(п2);
П1=СокрЛП(П1);
П2=СокрЛП(п2);
4 СБ с Одинесии
 
05.10.11
11:23
(2) П1 и П2 кто в цикл кроме тебя вставит?
5 Ёпрст
 
гуру
05.10.11
11:23
+3 Если П1 и П2 объекты агрегатных типов, то просто:

//П1=Строка(П1);
//П2=Строка(п2);
   Пока ПолучитьСтроку() = 1 Цикл
            Если П1<>П2 Тогда
6 Vladal
 
05.10.11
11:24
Измени определение строк на такое:

П1 = СокрЛП(П1);
П2 = СокрЛП(П2);

А потом их сравнивай.

Хотя некузяво - может, П1 у тебя справочник или другой тип, а его приводишь к строке.

Лучше в условии приводи к строке:

Если СокрЛП(П1)<>СокрЛП(П2) Тогда
7 Vladal
 
05.10.11
11:24
(5) Упс. Опередил, коллега )))
8 Vladal
 
05.10.11
11:30
(0) в (4) верно подмечено - если у тебя для каждой строки надо сравнение делать, то чтение значений П1 и П2 делай в цикле. Иначе у тебя будет одна и та же секция, которая вхолостую будет вычисляться в каждой итерации. Это некошерно.
9 NemeL
 
05.10.11
12:54
Спасибо все получилось. А как сделать чтоб запоминалось строка До и сравнивалась со следующей?
10 Ёпрст
 
гуру
05.10.11
13:22
(9)запоминать значение в переменной вестимо.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший