|
23.07.2007, 17:24 | #1 |
Участник
|
А зачем вам этот код компании?
Данные вставляются верно. Проверьте, к примеру, выведя другое поле на экран. Получите записи из нескольких компаний. А то, в какой компании они были изначально, имхо, не так важно X++: static void Job30(Args _args) { CustTrans custTrans; custTrans tmpcustTrans; ; tmpcustTrans.setTmp(); changecompany('S11') { custTrans = null; select firstonly custTrans; buf2buf(custTrans, tmpcustTrans); tmpcustTrans.doInsert(); } while select tmpcustTrans { info(tmpcustTrans.AccountNum); } changecompany('S10') { custTrans = null; select firstonly custTrans; buf2buf(custTrans, tmpcustTrans); tmpcustTrans.doInsert(); } while select tmpcustTrans { info(tmpcustTrans.AccountNum); } } |
|
23.07.2007, 17:29 | #2 |
Участник
|
Цитата:
Я подозреваю, что для этих целей придется заводить отдельное поле во временной(результирующей) таблице. Быть может есть возможность, всетаки, обойтись без добавления доп. поля? |
|
23.07.2007, 17:33 | #3 |
Участник
|
Цитата:
Вам придется сначала: 1. либо разобраться с витруальными компаниями 2. либо полностью закрыть для себя возможность работать с вирутальными компаниями в будущем. И уж совершенно однозначно вы перекрываете себе возможность работать с общими для всех компаний таблицами. Будьте осторожны с dataareaid. Команда cangecompany("aaa") не всегда приводит к тому, что в данной таблице dataareaid будет равна aaa. Читайте про виртуальные компании. |
|
23.07.2007, 17:36 | #4 |
Участник
|
Цитата:
Стоит ли ей пользоваться? X++: static void Job30(Args _args) { CustTrans custTrans; custTrans tmpcustTrans; ; tmpcustTrans.setTmp(); changecompany('S11') { custTrans = null; select firstonly custTrans; buf2buf(custTrans, tmpcustTrans); tmpcustTrans.overwriteSystemfields(true); tmpcustTrans.(fieldNum(CustTrans, DataAreaId)) = curExt(); tmpcustTrans.doInsert(); } while select tmpcustTrans { info(tmpcustTrans.dataareaid); } changecompany('S10') { custTrans = null; select firstonly custTrans; buf2buf(custTrans, tmpcustTrans); tmpcustTrans.overwriteSystemfields(true); tmpcustTrans.(fieldNum(CustTrans, DataAreaId)) = curExt(); tmpcustTrans.doInsert(); } while select tmpcustTrans { info(tmpcustTrans.dataareaid); } } |
|
23.07.2007, 17:46 | #5 |
Участник
|
|
|
23.07.2007, 17:50 | #6 |
Участник
|
Цитата:
Да, думаю стоит добавить просто поле для этих целей. |
|
23.07.2007, 18:30 | #7 |
Member
|
Цитата:
Сообщение от PavelSR
...
при выборке данных получаются некорректные данные. ... Помните в Винни Пухе: "Это неправильные пчелы, и они делают неправильный мед". Так и вы сейчас точно так же говорите. Поддерживаю вариант с добавлением поля для компании.
__________________
С уважением, glibs® |
|
23.07.2007, 19:06 | #8 |
MCT
|
Можно еще и прямой запрос попробовать
Хотя для этого придется все равно создавать таблицу с полем, так что от поля не уйти Последний раз редактировалось MikeR; 23.07.2007 в 19:13. Причина: так будет вернее |
|