Имя: Пароль:
1C
1C 7.7
v7: Загрузка из файла
0 Gera1t
 
20.01.14
22:32
загружаю текст из файла в таблицу документа.
Загружается только 32 строки.
Вот такой код:
Процедура Загрузить()
    УдалитьСтроки();
    Ш1 = "";
    Ш2 = "";
    Ш  = "";
    Данные = СоздатьОбъект("Текст");
    Данные.КодоваяСтраница(0);  
    Данные.Открыть(ФормИмяФайла);
    КолСтр  = Данные.КоличествоСтрок();
    Для к=2 По Данные.КоличествоСтрок() Цикл
        Если к < Данные.КоличествоСтрок() Тогда
            НоваяСтрока();
        КонецЕсли;
        Стр = "";        
        Стр=Данные.ПолучитьСтроку(к);
        Стр=СтрЗаменить(Стр,Симв(9),РазделительСтрок);
        Для кк=1 По СтрКоличествоСтрок(Стр) Цикл
            Если к < СтрКоличествоСтрок(Стр) Тогда
                Если КК = 1 Тогда
                    НЗаказа = СтрПолучитьСтроку(Стр,кк);
                    Форма.НЗ.Заголовок(СтрПолучитьСтроку(Стр,кк));
                КонецЕсли;
                Если КК = 2 Тогда
                    Наименование = СтрПолучитьСтроку(Стр,кк);
                ИначеЕсли КК = 4 Тогда
                    НомерПозиции = СтрПолучитьСтроку(Стр,кк);
                ИначеЕсли КК = 6 Тогда
                    Материал = СтрПолучитьСтроку(Стр,кк);
                ИначеЕсли КК = 7 Тогда                    
                    Длина = СтрПолучитьСтроку(Стр,кк);
                ИначеЕсли КК = 8 Тогда                    
                    Ширина = СтрПолучитьСтроку(Стр,кк);
                ИначеЕсли КК = 11 Тогда
                    КолВо = СтрПолучитьСтроку(Стр,кк);
                КонецЕсли;
                Ш1 = Строка(НЗаказа);
                Пока СтрДлина(Ш1) <> 5 Цикл
                    Ш1 = "0" + Ш1;
                КонецЦикла;
                Ш2 = Строка(НомерПозиции);
                Пока СтрДлина(Ш2) <> 6 Цикл
                    Ш2 = "0" + Ш2;
                КонецЦикла;
                Ш = Ш1 + Ш2;
                КонтрСимвол = КонтрольныйСимвол(Ш);
                Штрихкод = Ш + КонтрСимвол;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры
1 Gera1t
 
20.01.14
22:32
в чем проблема? Почему только 32 строки загружается?
2 welwel
 
20.01.14
22:35
а что отладчик говорит?
3 Gera1t
 
20.01.14
22:38
Наименование = "                         "
4 Gera1t
 
20.01.14
22:38
вот что
5 Gera1t
 
20.01.14
22:38
вот так даже
Стр = "426Дно ящика4262121ДВП61944662344820Кромка ПВХ бук 2/19Бук2/192Кромка ПВХ бук 2/19Бук2/192Кромка ПВХ бук 2/19Бук2/192  4454921"
Наименование = "                         "
6 Gera1t
 
20.01.14
22:39
т.е. как бы он должен Дно ящика подставлять
7 Gera1t
 
20.01.14
22:53
Все разобрался
8 КонецЦикла
 
20.01.14
22:56
Зачем еще строки перебирать?
Вот так вроде проще

Стр = Текст.ПолучитьСтроку(Сч);
            
            Если ПустаяСтрока(Стр) = 1 Тогда
                Продолжить;
            КонецЕсли;    
            
            ИДДокумента = Число(Лев(Стр, Найти(Стр, Разделитель) - 1));
            Стр = Прав(Стр, СтрДлина(Стр) - Найти(Стр, Разделитель));    
            ИдТовара = Число(Лев(Стр, Найти(Стр, Разделитель) - 1));
            Стр = Прав(Стр, СтрДлина(Стр) - Найти(Стр, Разделитель));
            КодТовара = Лев(Стр, Найти(Стр, Разделитель) - 1);
9 Gera1t
 
20.01.14
23:04
(8) Мб проще и правильней, но уже написал так, второй цикл комп не сильно загружает, переделывать не буду уже
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший