24.08.2004, 17:11 | #1 |
Участник
|
Всем доброго времени суток!
У меня такой вопрос: Как программно создать запись в таблице относящейся к другой компании? Дело в том, что используя табличную коллекцию для номенклатурных единиц необходимо, чтобы таблицы InventTableModule и InventLocation были для каждой компании свои. При настройке коллекции, возникает потребность в добавлении строк в таблицы InventTableModule и InventLocation для того чтобы отображался справочник во всех компаниях. |
|
24.08.2004, 18:20 | #2 |
Участник
|
Нашел метод ChangeCompany, вроде все заработало.
|
|
26.08.2004, 11:19 | #3 |
Участник
|
Поосторожней с ChangeCompany: если у пользователя нулевые права в этой компании(настраивается через домены) - ChangeCompany вываливается с ошибкой в рантайме и Аксапта падает. Приходится 1) использовать try-catch и дальнейшую обработку проводить батчем, запущеным под другим пользователем или 2) дать таки права на какой-нибудь dummy-table(в этом случае пользователь будет видеть компанию в списке выбора - что не всегда есть хорошо).
|
|
26.08.2004, 17:29 | #4 |
Участник
|
Можно немного поподробней про "1) использовать try-catch и дальнейшую обработку проводить батчем, запущеным под другим пользователем" Если можно привидите пример использования. Как вариант можно разрулить правами по доменам, но думаю вариант предложенный вами будет болле корректным.
|
|
27.08.2004, 11:41 | #5 |
Участник
|
<div class='XPPtop'>X++</div><div class='XPP'>[color=:blue]try[/color]
{ [color=:blue]changecompany[/color](cmp) { [color=:green]// пишем в связанные таблички [/color] ....................... } [color=:green]//помечаем InventTable(или пишем в лог синхронизации - реализация на выбор) [/color] InventTable.IsSynchronized = [color=:blue]true[/color]; InventTable.update(); } [color=:blue]catch[/color](exception::Error) [color=:green]//<-- вывалились по ошибке, в этой компании номенклатуры видно не будет [/color]{ }</div> Запущенный под паверюзером батч выбирает периодически записи с InventTable.IsSynchronized = false и применяет тот же код |
|