![]() |
|
v8: Выгрузка из 1С 8.2 УТ11 в DBF - выгружается только последняя запись | ☑ | ||
---|---|---|---|---|
0
Азат
19.01.12
✎
07:19
|
Собственно, суть: делаю выгрузку документа из 1С 8.2 в ДБФ. Использую штатный объект ХВаse, код такой:
База = Новый XBase; База.поля.Добавить(КодНом, "S", 20); База.Кодировка = КодировкаXBase.OEM; База.СоздатьФайл("C:\123.dbf"); База.АвтоСохранение = Истина; Для Каждого Стр Из ТЗ Цикл База.Добавить(); Выполнить("База." + КодНом + "= Стр[КодНом]"); //База.Записать(); КонецЦикла; //База.Записать(); База.ЗакрытьФайл(); Получается оч странно - через раз примерно сохраняет только последнюю запись в файл и все... Если отладчиком шагать, то всегда все норм. Пробовал убирать автосохранение и добавлять Записать после каждого добавления записи - не помогло. Как можно исправить данную ситуацию? ЗЫ. Релиз платформы 8.2.14.540 |
|||
1
Wobland
19.01.12
✎
07:40
|
что за Выполнить()? явно лишнее
|
|||
2
Азат
19.01.12
✎
07:41
|
(1) ну будет там База[КодНом]= Стр[КодНом];
|
|||
3
Wobland
19.01.12
✎
07:42
|
(2) База.КодНом
|
|||
4
Wobland
19.01.12
✎
07:45
|
И Поля.Добавить("КодНом"...)
|
|||
5
Wobland
19.01.12
✎
07:45
|
(4) всё, понял
|
|||
6
Азат
19.01.12
✎
07:50
|
(5) молодец, TupakModa = off
|
|||
7
Азат
19.01.12
✎
08:03
|
ап ап ап
|
|||
8
Азат
19.01.12
✎
08:16
|
подождем крутых москалей...
|
|||
9
Азат
19.01.12
✎
08:46
|
fg
|
|||
10
ilpar
19.01.12
✎
08:53
|
?
База.Записать(); База.ЗакрытьФайл(); |
|||
11
ilpar
19.01.12
✎
08:55
|
Ну и автосохранение попытайся вырубить
|
|||
12
ilpar
19.01.12
✎
08:55
|
в смысле не инициализировать
|
|||
13
Азат
19.01.12
✎
09:02
|
(11) см (0) - уже пробовал отключать автосохранение, ничего не поменялось
|
|||
14
ilpar
19.01.12
✎
09:07
|
у меня так, все работало.
еще такой фрагмент там есть //База.АвтоСохранение = Истина; База.Записать(); ... База.Записать(); База.ЗакрытьФайл(); |
|||
15
ilpar
19.01.12
✎
09:09
|
хотя... пофиг, от своих слов откажусь ка - не помню.
Но методом перебора у тя за 15 минут получится. Всего 6 вариантов |
|||
16
Азат
19.01.12
✎
09:10
|
(15) уже 2 дня сношаемся - нереальный бубен получается - иной раз нажимаешь 2-3 раза подряд "Выгрузить" - уходит, иной раз - с первого
|
|||
17
ilpar
19.01.12
✎
09:20
|
то, что у тебя записано должно работать
у меня. ... //База.АвтоСохранение = Истина; ... Пока Выборка.Следующий() Цикл ... База.Записать(); КонецЦикла; База.ЗакрытьФайл(); |
|||
18
ilpar
19.01.12
✎
09:23
|
Автосохранение, написано что записывается в файл, при очередном добавить()
Поэтому у тебя возможно выпадала последняя строчка |
|||
19
Азат
19.01.12
✎
09:28
|
(18) блеааааааааать, какие вы все умные, все-таки... я же написал, что наоборот попадает только последняя строка, а не выпадает последняя
|
|||
20
ilpar
19.01.12
✎
09:29
|
у меня все заработало, не так в твоем королекстве
|
|||
21
ilpar
19.01.12
✎
09:29
|
блеать
|
|||
22
ilpar
19.01.12
✎
09:36
|
последний мой код рабочий.
8.2.14.533 Вообще надо суметь 2 дня с перебором 10 вариаций проплюхаться |
|||
23
Азат
19.01.12
✎
09:59
|
ап
|
|||
24
ilpar
19.01.12
✎
10:02
|
мне смешно :)
я сказал что код проверил - файл сформировался нормально. |
|||
25
hhhh
19.01.12
✎
10:08
|
(23) а по-человечески если написать
База[КодНом]= Стр[КодНом]; тоже не получается? Или так ЗаполнитьЗначенияСвойств(База, Стр); |
|||
26
Азат
19.01.12
✎
10:09
|
(24) рад за тебя... могу еще раз повторить для "не таких как все" - выполнил 800 выгрузок, 350 нормальных, 450 - по 1 к
(25) не влияет, количество записей в базе не изменяется |
|||
27
ilpar
19.01.12
✎
10:15
|
делать постановки нормальные надо, тогда помогут
(26) уже что-то |
|||
28
ilpar
19.01.12
✎
10:16
|
удаляй файл после каждой выгрузки руками.
Напиши результат |
|||
29
ilpar
19.01.12
✎
10:18
|
при этом выгружая
и код проверочный минималистический База.КодНом="D"; |
|||
30
ilpar
19.01.12
✎
10:20
|
также по чьему коду идет проверка
По твоему или моему |
|||
31
ilpar
19.01.12
✎
10:23
|
и вообще, что мешает после каждого витка цикла смотреть, что в файл попало ?
|
|||
32
Азат
19.01.12
✎
10:32
|
тему закрываю, питрасянов впень! адо рулит
|
|||
33
ilpar
19.01.12
✎
10:36
|
петросян то ты, нехрен на диск с писать . Возможно что-то с правами.
Сделал тестовый пример, первый раз пишет нормально на В7 |
|||
34
ilpar
19.01.12
✎
10:37
|
второй раз не дает, другое название- первый раз дает записать.
Если бы выполнил мои последние инструкции, локализовал бы проблему быстрее |
|||
35
ilpar
19.01.12
✎
10:38
|
и вообще нельзя ДБФ файлы так делать
База.поля.Добавить(КодНом, "S", 20); надо База.поля.Добавить(KodNom, "S", 20); |
|||
36
ilpar
19.01.12
✎
10:41
|
тестовый пример на диск D - все идеально в управляемых формах
|
|||
37
ilpar
19.01.12
✎
10:42
|
&НаКлиенте
Процедура Сформировать(Команда) СформироватьНаСервере() КонецПроцедуры &НаСервере Процедура СформироватьНаСервере() База = Новый XBase; База.поля.Добавить("Nom", "S", 20); База.Кодировка = КодировкаXBase.OEM; База.СоздатьФайл("D:\1234.dbf"); //База.АвтоСохранение = Истина; Для Стр=1 По 15 Цикл База.Добавить(); База.Nom = "D"; База.Записать(); КонецЦикла; //База.Записать(); База.ЗакрытьФайл(); КонецПроцедуры // СформироватьНаСервере() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |