|
Проблема с выгрузкой в dbf | ☑ | ||
---|---|---|---|---|
0
Кир Пластелинин
07.05.13
✎
13:59
|
Доброго! есть обработка по выгрузке в dbf определенных данных (реализации, сф и прочее). а теперь немного уличной магии. сама dbf-ка формируется, но! в dbf попадает только последняя запись. если еще раз сформировать, то попадут все записи (при том не всегда). либо может быть обратная ситуация. с первого раза все записи, а потом если делать выгрузку, то только одна. т.е. абсолютно хаотично и непредсказуемо. глюк платформы или что? обходное решение конечно нашел, но хотелось бы разобраться.
|
|||
1
Wobland
07.05.13
✎
14:01
|
это или что
|
|||
2
shuhard
07.05.13
✎
14:01
|
(0) [но хотелось бы разобраться.]
в херовом коде нужно и должно разобраться |
|||
3
Кир Пластелинин
07.05.13
✎
14:04
|
(2)оооуукей. как объяснить то, что один и тот же код и срабатывает и не срабатывает?)
|
|||
4
Кир Пластелинин
07.05.13
✎
14:06
|
+(3)при том при тех же условиях
|
|||
5
Wobland
07.05.13
✎
14:08
|
(3) криворукостью автора
|
|||
6
Кир Пластелинин
07.05.13
✎
14:14
|
ОбъектХ = Новый XBase();
ОбъектХ.Кодировка = КодировкаXBase.OEM; ОбъектХ.поля.Добавить("KOD_PUBLIC", "N", 6, 0); ОбъектХ.поля.Добавить("OBJ_CODE", "S", 20); ОбъектХ.поля.Добавить("N_DOG_P", "S", 40); ОбъектХ.поля.Добавить("TTN_NO", "S", 20); ОбъектХ.поля.Добавить("TTN_DATE", "D"); ОбъектХ.поля.Добавить("SUPPTNP_ID", "S", 38); ОбъектХ.поля.Добавить("ZEN_PP", "N", 9, 2); ОбъектХ.поля.Добавить("KOL_SH", "N", 12, 3); ИмяФайла = "TTN" + Сред(Формат(ТекущаяДата(),"ДФ=yMMdd"), 2) + ".dbf"; Попытка ОбъектХ.СоздатьФайл("Тута путь к файлу" + ИмяФайла); Исключение Сообщить("Файл не создан"); Возврат; КонецПопытки; //запрос //обход выборки Пока Результат.Следующий() Цикл ОбъектХ.Добавить(); ОбъектХ.KOD_PUBLIC = 111760; ОбъектХ.OBJ_CODE = Результат.ПартнерКод; ОбъектХ.N_DOG_P = "31352ТГ"; ОбъектХ.TTN_NO = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Результат.Номер, Ложь, Ложь); ОбъектХ.TTN_DATE = Результат.Дата; ОбъектХ.SUPPTNP_ID = Результат.НоменклатураАртикул; ОбъектХ.ZEN_PP = Результат.Цена; ОбъектХ.KOL_SH = Результат.Количество; ОбъектХ.Записать(); КонецЦикла; ОбъектХ.ЗакрытьФайл(); |
|||
7
Кир Пластелинин
07.05.13
✎
14:15
|
(5) снизойдите и ткните своим божественным пальчиком - где тут криворукость.
|
|||
8
Wobland
07.05.13
✎
14:16
|
(7) Сред(Формат( как минимум
|
|||
9
Wobland
07.05.13
✎
14:17
|
//запрос как максимум
|
|||
10
Кир Пластелинин
07.05.13
✎
14:19
|
(8)(9) каким образом "сред(Формат" будет влиять на то что только последняя запись в дбфке есть?) а через некоторое время все с теми же параметрами и прочим - попадают все записи, какие должны) запрос как солдат дает один и тот же результат. проверено и не раз.
|
|||
11
Wobland
07.05.13
✎
14:20
|
(10) ты хотел криворукости? тебе её показали
|
|||
12
palpetrovich
07.05.13
✎
14:24
|
Обработка запускается из Файл-открыть или как "Внешняя"? Глюк проявляется при отладке или только при работе?
зы чудес не бывает |
|||
13
Кир Пластелинин
07.05.13
✎
14:25
|
(11) особого криминала не вижу. можно было и по другому, но не мое это добро и, на сколько помню, дбф не любит длину имени файла больше чем 8 символов (или сколько там?), поэтому так и сделали. по теме есть что сказать, али только собственное чсв потешить?
|
|||
14
Wobland
07.05.13
✎
14:26
|
(13) исключительно потешить. начало диалога не располагает
|
|||
15
Кир Пластелинин
07.05.13
✎
14:29
|
(12) в отладке - как раз норм, а вот при работе - такие радости
(14) ну уж простите. |
|||
16
palpetrovich
07.05.13
✎
14:29
|
(15) под любым пользователем?
|
|||
17
Кир Пластелинин
07.05.13
✎
14:31
|
(16) да. в общем немного прихожу к следующей закономерности. когда сервак загружен под завязку - такие глюки есть. после ребута - пропадают.
|
|||
18
palpetrovich
07.05.13
✎
14:32
|
в "ПолучитьНомерНаПечать(" нет случайно каких-то Отказ=Истина? :)
(17) хм, дык, срочно денег на апгрейд! :) |
|||
19
Кир Пластелинин
07.05.13
✎
14:42
|
(19) с "получитьномернапечать" - точно нет. так как одна дбф - один документ, а точнее его тч. вот сегодня как раз смотрел. одна реализация с 4мя позициями - попадала только последняя строчка. сервак перезагрузили - работает как часы и все 4ры
з.ы. да вот как раз только новый сервак купили :) все же хотелось бы найти какое то логическое объяснение происходящему - как связана запись в дбф с нагрузкой на сервер. при том ладно бы все скопом сразу писалось и нехренового размера, так построчно. а все эти "криворукость" - неадекватная болтология. не разобрались, но клеймо поставили на автомате. если в чем не прав - поправьте. |
|||
20
Wobland
07.05.13
✎
14:48
|
(19) поправляю. говорить нужно больше, а не выдавливать из себя по чайной ложке
|
|||
21
Шапокляк
07.05.13
✎
14:57
|
(19) А что, когда ты так вот в цикле файл перезаписываешь, это меньшая нагрузка на сервер? Файловой системе не все равно, перезаписывать файл полностью измененный или вообще нетронутый?
|
|||
22
Кир Пластелинин
07.05.13
✎
15:03
|
(20) ладно. мир труд май.
(21) немного не понял вопроса. есть еще какой то вариант записи в dbf через XBase?) |
|||
23
Шапокляк
07.05.13
✎
15:11
|
(22) XBase (XBase)
Записать (Save) Синтаксис: Записать() Описание: Записывает изменения в таблицу базы данных. До его вызова все изменения объекта производились только в памяти и будут потеряны при осуществлении перехода к другой записи или закрытии таблицы базы данных, если отключен режим автосохранения. См. также: XBase, свойство АвтоСохранение Поставь свойство Автосохранение и не мучай сервер перезаписью своего файла после каждого добавления записи. |
|||
24
Кир Пластелинин
07.05.13
✎
15:16
|
(23) хорошо. это я видел. практическим путем не пробовал, но меня лично смущает вот этот момент "будут потеряны при осуществлении перехода к другой записи", т.е. по логике, если я добавляю новую запись, то добавленные до этого будут потеряны. и если вернуться к прошлому вопросу - автосейв тоже пробовал. тот же результат.
|
|||
25
Кир Пластелинин
07.05.13
✎
15:17
|
*добавленные и не записанные до этого
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |