Вопрос

Массовая смена ответственных у контрагентов

Здравствуйте! Уверена, что когда-то читала нечто подобное на коммьюнити, но когда понадобилось - найти не смогла. Буду благодарна за ссылку на соответствующую тему.
Начальнику отдела продаж нужна возможность одновременной смены ответственных у нескольких выбранных контрагентов. Как это правильно организовать?
Есть несколько мыслей, но ни одной, которая бы обеспечила ПРОСТОЕ решение. Может, конечно, его и нет, но хотелось бы почитать про предлагаемые варианты...

Нравится

2 комментария

Можно сделать действие в разделе [Контрагенты].

Код обработчика примерно следующий:

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-скрипт, который пройдется по записям и изменит соответствующее поле.
Также необходимо определить по какому принципу будет проводится выборка записей, в которых необходимо изменить поле (По дате, ответственному, части название, состоянию и т.д.)

Показать все комментарии