04.06.2007, 16:17 | #1 |
int 20h
|
Что такое purchTableLinks
Подскажите что за таблица purchTableLinks
что в ней должно содержаться и для чего она нужна...спасибо. |
|
04.06.2007, 16:27 | #2 |
Участник
|
По идее эта табличка связывает исходный контракт с созданными по нему закупками.
Стоя на строке исходного контракта, можно посмотреть Связанные с ним закупки по кнопке Запросы\Прикрепленные закупки. Создаются они, к примеру, в классе PurchAutoCreate_TmpPurchLine (вызывается из Функции\Создание заказа на отпуск на строке контракта) Последний раз редактировалось kashperuk; 04.06.2007 в 16:29. |
|
04.06.2007, 16:32 | #3 |
int 20h
|
В связи с чем возник вопрос....
При удалении строки в закупке и создании ее снова, появляется инфолог что Невозможно создать запись в 'Партии' ('InventBatch') Номер партии ХХХХХХХХХХХХ. Я думаю что это связано с тем, что номер партии не удаляется при удалении данной номенклатуры. Стал рыть код и там вылезла эта таблица, которая должна быть по-идее связующей, но в ней нет записей, а поиск партии по ней осуществляется. Если кто подскажет варианты решения буду в большой признательности. |
|
04.06.2007, 16:36 | #4 |
Участник
|
Эээ. Вообще-то, в этой таблице всего 2 поля. Оба имееют тип "Код закупки".
Так что не понял я, как партия по ним ищется. В каком месте наткнулись на это? (название метода и класса) |
|
04.06.2007, 16:56 | #5 |
int 20h
|
перекрыв метод Delete в
\Forms\PurchTable\Data Sources\PurchLine\Methods\delete там есть purchTable_ds.reFresh() он вызывает PurchIdBlanket, а он то и обращается return PurchTableLinks::find(this.PurchId).mainPurchId; Вопрос. Надо удалить данную партию при удалении записи из закупки. |
|
04.06.2007, 17:16 | #6 |
Участник
|
Вы явно что-то напутали.
Во-первых, в стандартной системе партии, насколько я знаю, не удаляются при удалении строки закупки (если под партией мы понимаем одно и то же - InventDim.InventBatchId). Во-вторых, purchTable_ds.refresh() всего лишь обновляет данные грида закупок, а соответственно, не может никуда обращаться. В-третьих, при удалении строки закупки действительно идет обращение к контракту - в нем количество уменьшается по соответствующей строке. (это происходит в методе Data Dictionary\Tables\PurchLine\Methods\updateBlanketOrder). При этом может измениться статус строки, и даже всего контракта. Но сам контракт и его строки не удаляется. А соответственно в них указана такая же аналитика, как и в строке закупки. (по последнему пункту - не уверен, что аналитики совпадают, но при создании так точно копируются) Соответственно, делаю вывод, что партии Вы удаляете самостоятельно. И видимо, неправильно. Поэтому, покажите код, который Вы для этого написали. |
|
04.06.2007, 17:37 | #7 |
int 20h
|
Спасибо за помощь, Иван. Но в силу огромных отличий от стандартной аксапты. Немогу вам привести весь код. Да на счет purchTable_ds.refresh() вы абсолютно правы, но как есть так и есть. Не я писал это код, а мне в нем разбираться приходится. ))))
Скажите еще, может ли быть номер партии для данной номенклатуры безболезненно удален из таблицы InventBatch при удалении номенклатуры из этой открытой закупки. Судя по всему он просто не удаляется. |
|
04.06.2007, 17:55 | #8 |
Участник
|
Ну, думаю, что ничего криминального в этом нет.
Главное, что необходимо сделать, это предварительно проверить, что по этому номеру партии нет проводок. (это делается автоматически в методе InventBatch.validateDelete()) То есть просто необходимо вызвать этот метод перед удалением. И удалять только в случае возвращения этим методом true. |
|
04.06.2007, 17:59 | #9 |
int 20h
|
Еще раз спасибо...так и сделаю
__________________
It's just my Unhopelessnessabilityerism Trying to debug my mind |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Что такое "Аналитика"? | 31 | |||
Что такое "Справочник"? | 6 | |||
Что такое партии? | 4 | |||
"График предоплат" (С) glibs - что это такое? | 51 | |||
Что такое Merge2000? | 3 |
|