Здравствуйте! Уверена, что когда-то читала нечто подобное на коммьюнити, но когда понадобилось - найти не смогла. Буду благодарна за ссылку на соответствующую тему.
Начальнику отдела продаж нужна возможность одновременной смены ответственных у нескольких выбранных контрагентов. Как это правильно организовать?
Есть несколько мыслей, но ни одной, которая бы обеспечила ПРОСТОЕ решение. Может, конечно, его и нет, но хотелось бы почитать про предлагаемые варианты...
Нравится
Можно сделать действие в разделе [Контрагенты].
Код обработчика примерно следующий:
function amiSetResponsibleOnExecute(ActionMenuItem, Sender) { var SelectedOwnersIDs = SelectResponsibles(); var SelectedIDs = wndGridData.Window. ComponentsByName('grdData').SelectedIDs; if ((SelectedOwnersIDs.Count > 0) && (SelectedIDs.Count > 0)) { var DSAccounts = GetSingleItemByCode('ds_Account', 'ds_Account_cache_amiSetResponsibleOnExecute_001') EnableDatasetFilters(DSAccounts, true, ['ID']); var AccI = OwnI = 0; var ExitMax = SelectedOwnersIDs.Count > SelectedIDs.Count ? SelectedOwnersIDs.Count : SelectedIDs.Count; do { if (AccI >= SelectedIDs.Count) AccI = 0; if (OwnI >= SelectedOwnersIDs.Count) OwnI = 0; SetSQParametersValues(DSAccounts.SelectQuery.Parameters, ['ID'], [SelectedIDs.Items(AccI)]); RefreshDataset(DSAccounts); DSAccounts.Edit(); DSAccounts.Values('OwnerID') = SelectedOwnersIDs.Items(OwnI); DSAccounts.Post(); OwnI++; AccI++; } while (!((AccI >= ExitMax) || (OwnI >= ExitMax))); } RefreshDataset(wndGridData.Window.ComponentsByName('dlData').Dataset); }
Данной функциональности в базовой версии нет.
Самое простое решение - написать sql-скрипт, который пройдется по записям и изменит соответствующее поле.
Также необходимо определить по какому принципу будет проводится выборка записей, в которых необходимо изменить поле (По дате, ответственному, части название, состоянию и т.д.)