Имя: Пароль:
1C
1C 7.7
v7: Йоксель.Загрузка в ТЗ
, ,
0 norbi
 
17.02.12
13:51
Первую строку создает пустой, дальше все нормально. В чем пожет быть трабла?
1 Mikeware
 
17.02.12
13:52
в ДНК?
2 Alex S D
 
17.02.12
13:53
давай код
3 norbi
 
17.02.12
14:45
Конвертер = СоздатьОбъект ("Йоксель.КонвертерВТаблицуЗначений");
   Конвертер.УстановитьДокумент (ТабЭлемент.Документ);
   Конвертер.ОпределятьСтруктуру = 1;
   Конвертер.ПроверятьСтруктуру = 1;
   
   ТСорт = Конвертер.Загрузить ();  
   ТСорт.Сортировать(2);
   Таб1 = СоздатьОбъект("ТаблицаЗначений");
   Таб2 = СоздатьОбъект("ТаблицаЗначений");
   Таб3 = СоздатьОбъект("ТаблицаЗначений");
   Таб4 = СоздатьОбъект("ТаблицаЗначений");
   Таб5 = СоздатьОбъект("ТаблицаЗначений");
   Таб6 = СоздатьОбъект("ТаблицаЗначений");
   Таб8 = СоздатьОбъект("ТаблицаЗначений");
   Таб9 = СоздатьОбъект("ТаблицаЗначений");
   Посл1 = 0;
   Посл2 = 0;
   Посл3 = 0;
   Посл4 = 0;
   Посл5 = 0;
   Посл6 = 0;
   Посл8 = 0;
   Посл9 = 0;
   ТСорт.ВыбратьСтроки();
   Пока ТСорт.ПолучитьСтроку() = 1 Цикл
       Если Число(Лев(ТСорт.R, 1)) = 1 Тогда
           Посл1 = ТСорт.НомерСтроки;
       ИначеЕсли Число(Лев(ТСорт.R, 1)) = 2 Тогда
           Посл2 = ТСорт.НомерСтроки;
       ИначеЕсли Число(Лев(ТСорт.R, 1)) = 3 Тогда
           Посл3 = ТСорт.НомерСтроки;
       ИначеЕсли Число(Лев(ТСорт.R, 1)) = 4 Тогда
           Посл4 = ТСорт.НомерСтроки;
       ИначеЕсли Число(Лев(ТСорт.R, 1)) = 5 Тогда
           Посл5 = ТСорт.НомерСтроки;
       ИначеЕсли Число(Лев(ТСорт.R, 1)) = 6 Тогда
           Посл6 = ТСорт.НомерСтроки;        
       ИначеЕсли Число(Лев(ТСорт.R, 1)) = 8 Тогда
           Посл8 = ТСорт.НомерСтроки;
       ИначеЕсли Число(Лев(ТСорт.R, 1)) = 9 Тогда
           Посл9 = ТСорт.НомерСтроки;    
       КонецЕсли;
       Сообщить(ТСорт.НомерСтроки);
       Сообщить(ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 1) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 2) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 3) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 4) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 5) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 6) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 7) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСТроки, 8));
   КонецЦикла;
4 Mikeware
 
17.02.12
14:51
(3) Достаточно было первых 5 строк.
Если после них посмотреть ТЗ - есть лишняя строка?
5 Mikeware
 
17.02.12
14:52
но вообще, последние строки - жесть полная... что _это_ должно делать?
6 norbi
 
17.02.12
14:54
Нету. Зато если при выводе сначала поставить пробел, то значение отображается.
7 Mikeware
 
17.02.12
14:57
(6) если лишней строки нет - какие проблемы?
8 norbi
 
17.02.12
15:06
(7) Проблема в том, что данные из первой строки ТЗ потом не достаются. С остальными строками все нормально.
9 Ёпрст
 
17.02.12
15:08
(8) мот плохо просишь ?
что значит "не достаются"
?

Зачем такой изврат с кучей переменных и таблиц значений ?
10 ЧеловекДуши
 
17.02.12
15:08
(8)Диагноз ДНК :)

Зачем?

Посл9 = ТСорт.НомерСтроки;  

Если потом

ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 7)
11 ЧеловекДуши
 
17.02.12
15:10
+ ... из первой строки ТЗ потом не достаются....
А был ли мальчик? (с)
12 norbi
 
17.02.12
15:29
(10) "Сообщить" выводил потому что лень было в отладчик зайти.
Результата я добился, которого хотел. Но остался вопрос:
если выводить так
Сообщить(ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 1) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 2) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 3) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 4) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 5) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 6) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 7) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСТроки, 8));

то первая строка выводится пустой, а если так
Сообщить(" " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 1) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 2) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 3) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 4) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 5) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 6) + "     " +
       ТСорт.ПолучитьЗначение(ТСорт.НомерСтроки, 7) + "     " + ТСорт.ПолучитьЗначение(ТСорт.НомерСТроки, 8));

то все нормально.
13 Mikeware
 
17.02.12
15:30
(12) ошибка в ДНК.
14 Ёпрст
 
17.02.12
15:34
(12) ёпт..

про неявное приведение к типу первого операнда в выражении не слышал ни разу ?
15 norbi
 
17.02.12
15:35
(14) нет(
16 ЧеловекДуши
 
17.02.12
15:36
(12) Это фишка 1С... но ДНК... его не поправить :(
17 norbi
 
17.02.12
15:39
(9) Этот изврат для сортировки. Первый уровень по 2й колонке, а вот второй уровень зависит от значения во второй колонке, может есть и проще способы, я не придумал. Поэтому разбиваю на разные ТЗ и там сортирую, благо значения во 2й колонке ограничены (от 1 до 9).
18 Mikeware
 
17.02.12
15:46
(16) Профессор в университете: -Недоделаный отчет - не беда! Главное, когда будете делать детей, обязательно их доделывайте! А то приходят недоделаные дети и приносят недоделаные отчеты.... И никак не разорвать этот замкнутый круг.!
©