Имя: Пароль:
1C
1С v8
DBF вылетает программа при добавлении новой строки
0 Wersia
 
16.05.14
12:30
Помогите, всю голову сломал. Вот кусок кода.
Для каждого ТекСтр из ТабличнаяЧасть1 Цикл
            
Если ТекСтр.Флаг Тогда
Состояние("Выгружается: " + Строка(ТекСтр.Документ));
БД.Добавить();
БД.METALL  = ТекСтр.Документ.Металл.Наименование;
БД.PREDPR  = ТекСтр.Документ.Предприятие.Наименование;
БД.DATE_DOC = Формат(ТекСтр.Документ.Дата,"ДФ=dd.MM.yyyy");
                Бд.NOM_DOC = ТекСтр.Документ.Номер;
                БД.NOM_PP  = 0;
                БД.KOD       = "";
                БД.BARCODE ="";
                БД.ARTIKUL = "";
                БД.NAME    ="";
                БД.ZAKAZ   = "";
                БД.RAZMER  = "";
                БД.KAM        ="";                                    
                БД.VES    =0;
                БД.KOL_K   =0;
                БД.VID_K     ="";
                БД.VES_K   =0;
                БД.KOL_BR   =0;
                БД.XARAK_BR ="";
                БД.VES_BR   =0;
                БД.CENA    =0;
                БД.SUMMA=0;
                БД.RATE_NDS=0;
                БД.SUMM_NDS=0;
Для каждого строкаТЧД из ТекСтр.Документ.ТабличнаяЧасть1 цикл
Если строкаТЧД.Спецификация.Пустая() Тогда
БД.Добавить();

После прохода последней строки 1с валится с виндовой ошибкой.
Можно ли вообще так добавлять строки в DBF?
1 bodri
 
16.05.14
12:31
БД.Записать()
2 Чайник Рассела
 
16.05.14
12:33
БД.АвтоСохранение = Истина;
3 Wersia
 
16.05.14
12:36
(1) После каждой добавляемой строки? что-то вроде
    ... БД.KOL_BR   =0;
                БД.XARAK_BR ="";
                БД.VES_BR   =0;
                БД.CENA    =0;
                БД.SUMMA=0;
                БД.RATE_NDS=0;
                БД.SUMM_NDS=0;
                БД.Записать();
Для каждого строкаТЧД из ТекСтр.Документ.ТабличнаяЧасть1 цикл
Если строкаТЧД.Спецификация.Пустая() Тогда
БД.Добавить();
БД.Записать();
(2) АвтоСохранение стоит
4 Чайник Рассела
 
16.05.14
12:39
(3) колонки в дбф типизированы? проверь отладчиком на какой именно строке вылетает
5 Wersia
 
16.05.14
12:43
(4) Типизированы. Вылетает на добавлении новой строки. Суть: выгрузить файл с документами. Например если смотреть по одному единственному документу: в ДБФ первой строкой ставятся данные из шапки, остальное заполняется либо нулями либо пустыми строками, а затем из табличной части документа добавляю новые строки в дбф-ник. Если я делаю просто заполнение шапок документов без залезания в ТЧ, то тогда файл формирует хорошо, но как только я в файл вставил данные из шапки и пытаюсь туда записать строку с данными из Тч, то все валится
6 bodri
 
16.05.14
12:44
БД.Записать();
БД.Добавить();
7 Wersia
 
16.05.14
12:48
(6) Поставил БД.Записать(); в первой же строке- итог- вылет программы. Копаю в сторону типов...
8 bodri
 
16.05.14
12:59
ошибку озвучь
9 Woldemar177
 
16.05.14
13:00
Сам файл есть? Размер какой?
(8) + 1
10 Ёпрст
 
16.05.14
13:01
Нафига устанавливать пустые значения и нули ? Заняться нечем ?
11 Wersia
 
16.05.14
13:14
(10) Вот и я думаю- нафига.  Убрал - запахало. Хотя странно: через отладчик в первой строке в файле типы значений соответствовали типам колонок, но все валилось. Лишнее убрал и гуд.
12 Wersia
 
16.05.14
13:15
(8) Ошибка была обычная виндовая- прекращена работа приложения 1с
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.