Имя: Пароль:
1C
 
Загрузка из DBF, недостаточно памяти.
0 tabarigen
 
23.12.15
15:23
Ребята ругайте, что упустил?

&НаКлиенте
Процедура Обновить(Команда)
       ФайлDBF = Новый XBase; // создаем новый объект
    ФайлDBF.ОткрытьФайл(ПутьКФайлу,,Истина); // открытие файла
    ФайлDBF.Первая(); // устанавливает курсор на первую запись
    Если ФайлDBF.Открыта()=Ложь Тогда
       Сообщить("Не удалось открыть файл! Загрузка не выполнена!");    
    Иначе  
        Пока Не ФайлDBF.ВКонце() Цикл
            
            НовСтрока = ТЧ.Добавить();
            НовСтрока.Код = ФайлDBF.KOD;
        КонецЦикла;        
    КонецЕсли;
    ФайлDBF.ЗакрытьФайл();
  
КонецПроцедуры



Вываливается ошибка недостаточно памяти.
1 NcSteel
 
23.12.15
15:23
Памяти не хватает.
2 mikecool
 
23.12.15
15:24
(1) +1
3 mikecool
 
23.12.15
15:24
(0) да ты охренел??!!
4 Asmody
 
23.12.15
15:25
пропущен важный шаг
5 ДенисЧ
 
23.12.15
15:27
.Следующая()
6 NikVars
 
23.12.15
15:29
(0) Сколько записей удается проглотить до ошибки?!
7 tabarigen
 
23.12.15
15:30
(5) Упустил. Спасибо.
8 kerm
 
23.12.15
15:31
ФайлDBF.Следующая() нет внутри цикла.
Без конца цикл
9 tabarigen
 
23.12.15
15:31
(6) Забыл добавить ФайлDBF.Следующая()
10 NikVars
 
23.12.15
15:33
(9) То есть количество записей тебе уже не интересно?!
:)))
11 tabarigen
 
23.12.15
15:35
(10) Нужны все без исключений, количество мне зачем?
12 kerm
 
23.12.15
15:40
ограничение на число строк в ТЧ 99999
иначе документ не запишется.
13 Garykom
 
гуру
23.12.15
15:47
нравится ТС своим энтузиазмом... и даже не так раздражает смешными иногда вопросами ))
14 tabarigen
 
23.12.15
15:50
(12) Столько не будет точно
(13) Старина помоги лучше строку в дату преобразовать. Срок хранится в DBF как строка "01.01.2018"


// Преобразуем строку в дату
ЧислоДата = Число(СтрЗаменить(ФайлDBF.SROK, ".", ""));
НовСтрока.Срок = Формат(ЧислоДата,"ДФ=dd.MM.yyyy" );
15 tabarigen
 
23.12.15
15:51
В тч пишется пустое значение в поле срок
16 ДенисЧ
 
23.12.15
15:52
01012018 не является правильным литералом даты.
17 Garykom
 
гуру
23.12.15
15:54
(16) угу

(14) ну распарси строку то на число, месяц и год, затем Дата = Дата(год, месяц, число);
18 Garykom
 
гуру
23.12.15
15:55
19 tabarigen
 
23.12.15
16:02
(16) Почему??
Точки ведь есть. 01.01.2018
20 Garykom
 
гуру
23.12.15
16:07
(19) убил ((
21 Garykom
 
гуру
23.12.15
16:08
(19) плиз скажи 01.01.01 это какая дата?
22 Garykom
 
гуру
23.12.15
16:09
(21) неудачный пример )) 01.02.03 - это какая дата?
23 tabarigen
 
23.12.15
16:12
(22) это невозможно сказать.

Разве не для этих целей есть Форматная Строка?
24 tabarigen
 
23.12.15
16:13
Конкретно в моем случае 01.01.2018 понятно ведь, что dd.MM.yyyy
25 tabarigen
 
23.12.15
16:14
(22) Заметил кстати что вы ко мне неравнодушны)
26 Garykom
 
гуру
23.12.15
16:15
(25) ненене, тьфу-тьфу-тьфу )) я не из заднеприводных

(24) это человеку понятно и то не каждому (летоисчисления то разные бывают)
а компьютеру нужно сказать где год, где месяц а где число
и не так, а правильно сказать
27 Мыш
 
23.12.15
16:16
(24) Пиши 20180101
28 tabarigen
 
23.12.15
16:17
(27) я исхожу из того что есть. Файл ко мне приходит таким
29 Garykom
 
гуру
23.12.15
16:18
(28) ну так переверни кодом то
30 tabarigen
 
23.12.15
16:54
(29)         
Если ЗначениеЗаполнено(ФайлDBF.SROK) Тогда
    ЗначениеДата = ФайлDBF.SROK;
    НовСтрока.Срок = Дата(Прав(ЗначениеДата, 4),Сред(ЗначениеДата, 4, 2), Лев(ЗначениеДата, 2));
КонецЕсли;
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.