Форум программистов, компьютерный форум CyberForum.ru

1C 8.x Обработка файлов тхт - 1С

Войти
Регистрация
Восстановить пароль
 
Ermak27
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,126
28.12.2016, 20:32     1C 8.x Обработка файлов тхт #1
Добрый вечер!
Я выбираю папку с файлами txt, данные хочу вывести в макет. Данные каждого файла выводим отдельно в строке (данные 1.тхт выводим в 1 строка, данные 2.тхт выводим 2 строка и т.д)
Сейчас у меня все данные складываются и выводятся в одну строку, подскажите что не так

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
    ТабДок.Очистить();
    Макет=ПолучитьМакет("Макет");
    ОбластьМакета=Макет.ПолучитьОбласть("Шапка");
    ТабДок.Вывести(ОбластьМакета); 
    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Результат1",,"Результат1");
    ТЗ.Колонки.Добавить("Результат2",,"Результат2");
    
    ТЗ1 = Новый ТаблицаЗначений;
    ТЗ1.Колонки.Добавить("Номер",,"Номер");
    ТЗ1.Колонки.Добавить("Очки",,"Очки");
 
    
    МассивФайлов = НайтиФайлы(ИмяФайла, "*.txt");
    Текст1 = Новый ТекстовыйДокумент;
    
    Для каждого ТекущийФайл из МассивФайлов Цикл
        Текст1.Прочитать(ТекущийФайл.ПолноеИмя);
        Для х = 1 По Текст1.КоличествоСтрок() Цикл
            Стр = Текст1.ПолучитьСтроку(х);
            СтрокаТЗ = ТЗ.Добавить();
            Рез=Прав(Стр,6);
            РазделТЗ = СтрЗаменить(Рез, ":",Символы.ПС);                
            СтрокаТЗ.Результат1 = СтрПолучитьСтроку(РазделТЗ, 1);
            СтрокаТЗ.Результат2 = СтрПолучитьСтроку(РазделТЗ, 2);
            
            ОписаниеЧисло = Новый ОписаниеТипов("Число"); 
            СтрокаТЗ.Результат1=ОписаниеЧисло.ПривестиЗначение(СтрокаТЗ.Результат1);
            СтрокаТЗ.Результат2=ОписаниеЧисло.ПривестиЗначение(СтрокаТЗ.Результат2);
        КонецЦикла;     
        КонецЦикла;
    
    Тотал=2.5;
    Число1=(0.5);
    Число2=(0.75);
    Число11=(-0.5);
    Число22=(-0.75);
    
    Номер=0;
    Для Каждого Стр из ТЗ Цикл
        
        РезТотал=Стр.Результат1 + Стр.Результат2;
        Если РезТотал > Тотал Тогда
            СтрокаТЗ1 = ТЗ1.Добавить();
            СтрокаТЗ1.Очки=Число1;
        ИначеЕсли РезТотал < Тотал Тогда
            СтрокаТЗ1 = ТЗ1.Добавить();
            СтрокаТЗ1.Очки=Число11;
        КонецЕсли;
        
        Если Стр.Результат1 > 0 И Стр.Результат2 > 0 Тогда
            СтрокаТЗ1 = ТЗ1.Добавить();
            СтрокаТЗ1.Очки=Число2;
        ИначеЕсли Стр.Результат1 = 0 ИЛИ Стр.Результат2 = 0 Тогда
            СтрокаТЗ1 = ТЗ1.Добавить();
            СтрокаТЗ1.Очки=Число22;
        КонецЕсли;
КонецЦикла;
ТЗ1.Свернуть(,"Очки");
Для Каждого Стр из ТЗ1 Цикл
        Номер=Номер+1;
    Областьмакета=Макет.ПолучитьОбласть("Строка");
    ОбластьМакета.Параметры.Номер=Номер;
    ОбластьМакета.Параметры.Результат=Стр.Очки;
    Если Стр.Очки <= -5 Тогда
        ОбластьМакета.Параметры.Матч = "Тотал меньше 2.5";
    ИначеЕсли  Стр.Очки >= 5 Тогда
        ОбластьМакета.Параметры.Матч = "Тотал больше 2.5";
    Иначе   
        ОбластьМакета.Параметры.Матч = "Нельзя ставить";
    КонецЕсли;
    ТабДок.Вывести(ОбластьМакета);
КонецЦикла; 
    
    ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    ТабДок.АвтоМасштаб=Истина;
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Ложь; 
    ТабДок.ПовторятьПриПечатиСтроки=ТабДок.Область("R4:R5");  
    ТабДок.Показать();
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2016, 20:32     1C 8.x Обработка файлов тхт
Посмотрите здесь:

простая обработка 1С 1C 7.x
Внешняя обработка 1С
1С 1C 8.x Обработка проведения
Обработка Расшифровки в СКД 1С 1C 8.x
1С 1C 8.x (тонкий) Обработка проведений
1С 1C 8.x Внешняя обработка печати
Обработка 1С
1С 1C 8.x Внешняя обработка
1С 1C 8.x Обработка результата
1С Внешняя обработка
1С 1C 8.x Обработка номенклатуры
Загрузить данные с файла ТХТ 1С 1C 8.x

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GreenkA
Модератор
 Аватар для GreenkA
1521 / 1014 / 351
Регистрация: 25.06.2009
Сообщений: 2,555
28.12.2016, 23:23     1C 8.x Обработка файлов тхт #2
Ermak27, может из-за этого?
1C
1
ТЗ1.Свернуть(,"Очки");
Ermak27
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,126
29.12.2016, 08:11  [ТС]     1C 8.x Обработка файлов тхт #3
GreenkA, а мне нужно сворачивать чтобы подсчитать итоговую сумму по всем строкам
GreenkA
Модератор
 Аватар для GreenkA
1521 / 1014 / 351
Регистрация: 25.06.2009
Сообщений: 2,555
29.12.2016, 09:50     1C 8.x Обработка файлов тхт #4
Ermak27, и где логика?) у вас и получится одна строка с общим количеством Очков.
renat_dmitriev
92 / 92 / 26
Регистрация: 26.08.2016
Сообщений: 308
29.12.2016, 23:42     1C 8.x Обработка файлов тхт #5
Ermak27, Итоговая сумма по всем строкам вычисляется методом Итог
Yandex
Объявления
29.12.2016, 23:42     1C 8.x Обработка файлов тхт
Ответ Создать тему
Опции темы

Текущее время: 19:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru