21.06.2002, 13:24 | #1 |
Участник
|
Проблема с таблицей InventDim
Существует неотфактурованная Закупка со строками. В строках нет ГТД. Хочу по нажатию на кнопку во все строки Закупки вставить один и тот же ГТД (новый или уже существующий, выбираю/ввожу в дилоге).
Нахожу строчку в InventDim. Изменяю поле InventGTDId_Ru. При этом изменяю таблицу InventGTD_Ru, если там нет пары: ItemId - inventGTD_Ru. Все это в цикле для всех строк Закупки. Так вот, поле InventGTDId_Ru в существующей строке таблицы InventDim не редактируется. С Закупкой еще ничего не делалось. Пытаюсь в браузере Аксапты внести изменения в это поле. То же самое. Но в форме PurchTable в строках вручную мы можем поправиь ГТД. А вот в коде не получается. В чем дело? P.S. Предполагается, что товар, который приходуется в данной Закупке, должен иметь ГТД.
__________________
Антон Скоробогатов |
|
21.06.2002, 13:33 | #2 |
Участник
|
Таблица InventDim славится тем что в нее нельзя добавлять и редактированть записи из формы InventDim
//Это перекрытый метод update() у таблицы InventDim Insert такой же void update(boolean doUpdate = false) { if (doUpdate) super(); } Соответственно если необходимо добавить/Изменить данные в этой таблице в методы Insert и Update необходимо передавать параметр InventDim.Update(true); inventDim.Insert(True); |
|
21.06.2002, 14:17 | #3 |
----------------
|
Исправление InventDim
Использование InventDim.Update(true); inventDim.Insert(True); в данном случаи мне кажется неправильным, так как новая аналитика может уже существовать
Лучше поступить так PHP код:
|
|
24.02.2004, 13:43 | #4 |
Участник
|
Проблема развивается следующим образом:
Простая установка пустых ГТД не дает нужного результата т.к. в проводках будут участвовать СТАРЫЕ значения ГТД!
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
24.02.2004, 14:13 | #5 |
Участник
|
Цитата:
Изначально опубликовано ДК
...в проводках будут участвовать СТАРЫЕ значения ГТД! Для изменения аналитики в разнесенных складских проводках пользуйтесь формой Редактирование кодов аналитики в функциях номенклатуры. |
|
24.02.2004, 14:54 | #6 |
Banned
|
Цитата:
в РАЗНЕСЕННЫХ проводках (отфактурованных заказов)?
Теперь по сути: Wamr все правильно написал. А метод purchLine.update() (точнее, вызываемый им PurchLineType.update()) сам займется тем, чтобы обновлять связанные складские проводки, остатки и резервирование. |
|
24.02.2004, 15:12 | #7 |
Участник
|
PHP код:
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
24.02.2004, 15:19 | #8 |
Banned
|
Сотрите свой код, лучше не позорьтесь.
|
|
24.02.2004, 15:56 | #9 |
Участник
|
Цитата:
Изначально опубликовано EVGL
Сотрите свой код, лучше не позорьтесь. Аргументы можно?
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
24.02.2004, 16:32 | #10 |
Banned
|
Прошу прощения, злой я сегодня.
Аргументы:
Уффф... |
|
24.02.2004, 16:49 | #11 |
Участник
|
Спасибо огромное за столь аргументированый ответ.
Мой случай: 1. Учет по ГТД не ведется. Т.е. мне нужно сначала установить ГТД, Вывести СФ (без обработки) и сбросить (обнулить) ГТД. 2. Доступность кнопок Установка/Сброс определяется состоянием Заказа, т.е. разнесенных существуют только проводки со статусом "В заказе". 3. Серийных номерв/партий нет, т.е. SalesLine - InventTrans 1:1 Т.е. для моего случая код абсолютно рабочий, кроме того, почему Цитата:
Опустив вызов .update(),
Да мы натолкнулись на метод InventDim.mergeUsedDim(), который не совсем правильно отрабатывает именно ГТД. В любом случае - спасибо.
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
24.02.2004, 17:11 | #12 |
Banned
|
Можно ли называть рабочим, скажем, сгнивший деревенский мост, посредине которого здоровенная дыра? По вашей логике, можно, поскольку мотоциклы, которыми в 80% пользуются местные, могут ее объехать, а вокруг дыры построены перила.
Еще раз: вместо InventTrans.doUpdate() ставят InventTrans.update(). SalesLine - InventTrans 1:1 нарушится сразу, как только кто-нибудь сдалает частичную отгрузку. И вообще: правильно ли я понял, что проблема в выводе на печать счета-фактуры? Почему же ее решение в том, чтобы раскурочивать заказы? |
|
24.02.2004, 17:43 | #13 |
Участник
|
PHP код:
Так.. в результате вроде родили деревенский мост без дырки. Спасибо.
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
24.02.2004, 18:05 | #14 |
Banned
|
Почти... почти...
Вот пример запроса из InventUpd_Financial.updateFinancialReceipt(), отсекающего недопустимые статусы: PHP код:
И последняя [уже придирка] к несчастным 4 строчкам кода: if (inventTrans) лишено смысла, т.к. внутрь цикла while select можно войти только тогда, если запрос успешно вернул очередную проводку. if будет выполняться всегда. |
|
23.03.2004, 12:12 | #15 |
Участник
|
Я пишу в точности как вы предложили
PHP код:
То что новый newInventDim.InventDimId есть - это точно, проверяю info(). В чем может быть причина? Правда вместо конструкции PHP код:
Это может влиять на неработу update()? |
|