Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
1

Запись в таблицу

30.09.2017, 01:28. Просмотров 226. Ответов 14
Метки нет (Все метки)

Доброй ночи! Не могу понять почему не записывает в таблицу

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
    Номер=0;    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("CODE",,"CODE");
    ТЗ.Колонки.Добавить("DESCRIPTION",,"DESCRIPTION");
    ТЗ.Колонки.Добавить("SUM_LIMIT",,"SUM_LIMIT");  
    ТЗ.Колонки.Добавить("STATE",,"STATE");
    ТЗ.Колонки.Добавить("CHECK_LIMIT",,"CHECK_LIMIT");
    ТЗ.Колонки.Добавить("SECTION",,"SECTION");
    
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ИмяФайлаДанныхТХТ);
    //Перебор строк текстового документа
 
    Для НомерСтроки=12 По Текст.КоличествоСтрок() Цикл
        СтрокаТЗ=ТЗ.Добавить();     
        Стр = Текст.ПолучитьСтроку(НомерСтроки);
        Разделитель = СтрЗаменить(Стр, "=",Символы.ПС);
        BUDGET_CODES1=СтрПолучитьСтроку(Разделитель, 1);
        BUDGET_CODES2=СтрПолучитьСтроку(Разделитель, 2);
        Если BUDGET_CODES1 = "BUDGET_CODES."+Номер+".CODE" Тогда
            СтрокаТЗ.CODE=BUDGET_CODES2;
        КонецЕсли;
        Если BUDGET_CODES1 = "BUDGET_CODES."+Номер+".DESCRIPTION" Тогда
            СтрокаТЗ.DESCRIPTION=BUDGET_CODES2;
        КонецЕсли;
        Если BUDGET_CODES1 = "BUDGET_CODES."+Номер+".SUM_LIMIT" Тогда
            СтрокаТЗ.SUM_LIMIT=BUDGET_CODES2;
        КонецЕсли;
        Если BUDGET_CODES1 = "BUDGET_CODES."+Номер+".STATE" Тогда
            СтрокаТЗ.STATE=BUDGET_CODES2;
        КонецЕсли;
        Если BUDGET_CODES1 = "BUDGET_CODES."+Номер+".CHECK_LIMIT" Тогда
            СтрокаТЗ.CHECK_LIMIT=BUDGET_CODES2;
        КонецЕсли;
        Если BUDGET_CODES1 = "BUDGET_CODES."+Номер+".SECTION" Тогда
            СтрокаТЗ.SECTION=BUDGET_CODES2;
        КонецЕсли;      
            Номер=Номер+1;
    КонецЦикла;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2017, 01:28
Ответы с готовыми решениями:

Осуществить запись в таблицу, либо обновить таблицу, чтобы формулы считались
Всем доброго времени суток:) Может кто подскажет, возможно ли реализовать следующее Есть 2 файла...

Запись в таблицу
Ребята, плизз подробную инструкцию для чайника. Через recordset открывается таблица one, на...

Запись в таблицу
Доброго времени суток! Вопрос может показать странным, но как записать в таблицу текст в формате...

Запись в таблицу
Можно ли записать в таблицу значение из другой таблицы, не вытаскивая его лишним запросом к БД? Ну...

Запись в таблицу
Здравствуйте, в самоучителе написан код, а он не очень работает, вобщем тупо записываю в таблицу...

14
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.09.2017, 01:54 2
Ermak27, отладкой смотрели? В таблице вообще строк нет или они пустые? - что означало бы, что просто ни одно условие не сработало.
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
30.09.2017, 11:07  [ТС] 3
эта колонка заполнилась СтрокаТЗ.CODE=BUDGET_CODES2; , дальше BUDGET_CODES2 заполнилось а колонка СтрокаТЗ.DESCRIPTION=BUDGET_CODES2; пустая, и так далее все колонки
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.09.2017, 11:16 4
Ermak27, ну так у вас условия не срабатывают. Смотрите отладкой - почему.

Добавлено через 1 минуту
А ничего, что во всех условиях идет анализ переменной BUDGET_CODES1? Но с разными значениями... Понятное дело, что сработает только одно.
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
30.09.2017, 11:29  [ТС] 5
условия совпадают, почему не записывает мне не понятно. Я загружаю тхт файл с данными
BUDGET_CODES.0.CODE=1.1.00.00.00.00
BUDGET_CODES.0.DESCRIPTION=Поступления по текущей деятельности
BUDGET_CODES.0.SUM_LIMIT=32714907.81
BUDGET_CODES.0.STATE=1
BUDGET_CODES.0.CHECK_LIMIT=0
BUDGET_CODES.0.SECTION=Доходы
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.09.2017, 11:55 6
Ermak27, ну так у вас данные в разных строках. А вы в цикле каждый раз добавляете строку в ТЗ и пытаетесь заполнить ВСЕ поля таблицы...
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
30.09.2017, 12:45  [ТС] 7
GreenkA, вот мне и не понтяно как сделать из разных строк
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.09.2017, 13:43 8
Ermak27, это весь файл? Одна строка в ТЗ должна получиться?
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
30.09.2017, 16:47  [ТС] 9
GreenkA, не файл не весь, там повторяются строки: Пример:
Кликните здесь для просмотра всего текста
BUDGET_CODES.0.CODE=1.1.00.00.00.00
BUDGET_CODES.0.DESCRIPTION=Поступления по текущей деятельности
BUDGET_CODES.0.SUM_LIMIT=32714907.81
BUDGET_CODES.0.STATE=1
BUDGET_CODES.0.CHECK_LIMIT=0
BUDGET_CODES.0.SECTION=Доходы
BUDGET_CODES.1.CODE=1.1.00.00.00.00
BUDGET_CODES.1.DESCRIPTION=Поступления по текущей деятельности
BUDGET_CODES.1.SUM_LIMIT=32714907.81
BUDGET_CODES.1.STATE=1
BUDGET_CODES.1.CHECK_LIMIT=0
BUDGET_CODES.1.SECTION=Доходы
BUDGET_CODES.2.CODE=1.1.00.00.00.00
BUDGET_CODES.2.DESCRIPTION=Поступления по текущей деятельности
BUDGET_CODES.2.SUM_LIMIT=32714907.81
BUDGET_CODES.2.STATE=1
BUDGET_CODES.2.CHECK_LIMIT=0
BUDGET_CODES.2.SECTION=Доходы

да одной строкой в ТЗ, по колонкам
0
Yulunga
372 / 266 / 69
Регистрация: 22.04.2013
Сообщений: 1,708
Записей в блоге: 1
Завершенные тесты: 1
30.09.2017, 18:07 10
Ermak27, ну сделайте цикл с шагом 6
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
30.09.2017, 19:28  [ТС] 11
Yulunga, покажите на примере
0
Yulunga
372 / 266 / 69
Регистрация: 22.04.2013
Сообщений: 1,708
Записей в блоге: 1
Завершенные тесты: 1
01.10.2017, 20:37 12
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
ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("CODE",,"CODE");
    ТЗ.Колонки.Добавить("DESCRIPTION",,"DESCRIPTION");
    ТЗ.Колонки.Добавить("SUM_LIMIT",,"SUM_LIMIT");  
    ТЗ.Колонки.Добавить("STATE",,"STATE");
    ТЗ.Колонки.Добавить("CHECK_LIMIT",,"CHECK_LIMIT");
    ТЗ.Колонки.Добавить("SECTION",,"SECTION");
    
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ИмяФайлаДанныхТХТ);
    //Перебор строк текстового документа
    НомерСтроки=12;
    Пока НомерСтроки < Текст.КоличествоСтрок() Цикл
        СтрокаТЗ = ТЗ.Добавить();
        Стр = Текст.ПолучитьСтроку(НомерСтроки);
        Позиция=Найти(Стр,"="); 
        СтрокаТЗ.CODE=Прав(Стр,Позиция+1);
        Стр = Текст.ПолучитьСтроку(НомерСтроки+1);
        Позиция=Найти(Стр,"="); 
        СтрокаТЗ.DESCRIPTION=Прав(Стр,Позиция+1);
//и так далее
 
    НомерСтроки = НомерСтроки + 6;      
    КонецЦикла;
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
01.10.2017, 22:03  [ТС] 13
Yulunga, данные выводит не правильно, вот пример текста файла
BUDGET_CODES.0.CODE=1.1.00.00.00.00
BUDGET_CODES.0.DESCRIPTION=Поступления по текущей деятельности
BUDGET_CODES.0.SUM_LIMIT=32714907.81
BUDGET_CODES.0.STATE=1
BUDGET_CODES.0.CHECK_LIMIT=0
BUDGET_CODES.0.SECTION=Доходы

BUDGET_CODES.1.CODE=1.1.00.00.00.00
BUDGET_CODES.1.DESCRIPTION=Поступления по текущей деятельности
BUDGET_CODES.1.SUM_LIMIT=32714907.81
BUDGET_CODES.1.STATE=1
BUDGET_CODES.1.CHECK_LIMIT=0
BUDGET_CODES.1.SECTION=Доходы

BUDGET_CODES.2.CODE=1.1.00.00.00.00
BUDGET_CODES.2.DESCRIPTION=Поступления по текущей деятельности
BUDGET_CODES.2.SUM_LIMIT=32714907.81
BUDGET_CODES.2.STATE=1
BUDGET_CODES.2.CHECK_LIMIT=0
BUDGET_CODES.2.SECTION=Доходы
только без пробелов
0
Yulunga
372 / 266 / 69
Регистрация: 22.04.2013
Сообщений: 1,708
Записей в блоге: 1
Завершенные тесты: 1
02.10.2017, 04:05 14
что конкретно неправильно-то ?
ну подкоректируйте. может функция "Прав" неверно написана мною
я смысл хотел передать слов "цикл с шагом 6"
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
02.10.2017, 09:55  [ТС] 15
Yulunga, я плохо понял смысл, вот как я исправил
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
Пока НомерСтроки < Текст.КоличествоСтрок() Цикл
        СтрокаТЗ = ТЗ.Добавить();
        
        Стр = Текст.ПолучитьСтроку(НомерСтроки);        
        Позиция=Найти(Стр,"=");     
        СтрокаТЗ.CODE=Прав(Стр,Позиция+1);
        
        Стр = Текст.ПолучитьСтроку(НомерСтроки+1);
        Позиция=Найти(Стр,"="); 
        СтрокаТЗ.DESCRIPTION=Прав(Стр,Позиция+1);
        
        Стр = Текст.ПолучитьСтроку(НомерСтроки+2);
        Позиция=Найти(Стр,"="); 
        СтрокаТЗ.SUM_LIMIT=Прав(Стр,Позиция+1); 
        
        Стр = Текст.ПолучитьСтроку(НомерСтроки+3);      
        Позиция=Найти(Стр,"=");     
        СтрокаТЗ.STATE=Прав(Стр,Позиция+1);
        
        Стр = Текст.ПолучитьСтроку(НомерСтроки+4);
        Позиция=Найти(Стр,"="); 
        СтрокаТЗ.CHECK_LIMIT=Прав(Стр,Позиция+1);
        
        Стр = Текст.ПолучитьСтроку(НомерСтроки+5);
        Позиция=Найти(Стр,"="); 
        СтрокаТЗ.SECTION=Прав(Стр,Позиция+1);       
        
        НомерСтроки = НомерСтроки + 6;    
    КонецЦикла;
и вот что получилось
0
Миниатюры
Запись в таблицу  
02.10.2017, 09:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2017, 09:55

Запись в таблицу
Добрый вечер! Как сделать в MS Access 2010 чтобы по нажатию кнопки, данные введённые в поле...

Запись в таблицу
Доброго времени суток! вобщем такая задача: Написать программу-систему учета оценок студента....

Запись значений в таблицу
Здравствуйте! Нужна помощь. Необходимо записать значения x и соответствующие значения y в таблицу...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru