Каким образом добавить файлы в несколько разделов одновременно
При работе с приложением иногда возникает необходимость добавить файл на деталь менеджера деталей Файлы сразу в несколько разделов. Приведу пример. При добавлении файла на закладку менеджера деталей Файлы раздела Контрагенты, возникает необходимость добавить этот же файл на аналогичную закладку раздела Контакты для основного контакта контрагента. Для того, чтобы не размещать в приложении несколько одинаковых файлов и тем самым не увеличивать размер базы данных, можно файл размещать только на одну из закладок (например в разделе Контрагенты), а в другом разделе на закладке Файлы размещать ссылку на это файл (например в разделе Контакты). Для реализации вышеописанной функциональности необходимо изменить функцию function InsertFilesLink(FileID) из скрипта scr_FilesDetailGridArea. Внизу приведен код, который нужно отладить для того, чтобы он выполнял заданную функциональность
function InsertFilesLink(FileID) { var InsertQuery = FilesDetailGridArea.InsertQueryLink; var ColumnsValues = InsertQuery.ColumnsValues; ColumnsValues.ItemsByName('FileID').Value = FileID; ColumnsValues.ItemsByName(BaseGridArea.ItemIDFieldName).Value = FilesDetailGridArea.ParentItemID; var ID = Connector.GenGUID(); ColumnsValues.ItemsByName('ID').Value = ID; InsertQuery.Execute(); if (BaseGridArea.ItemIDFieldName == 'AccountID') { //определяем, является ли деталь, деталью в контрагентах if (!FilesDetailGridArea.ContactInsertQueryLink) { FilesDetailGridArea.ContactInsertQueryLink = Services.GetNewItemByUSI('iq_fileInContact'); } var InsertQueryContact = FilesDetailGridArea.ContactInsertQueryLink; var ColumnsValuesContact = InsertQueryContact.ColumnsValues; ColumnsValuesContact .ItemsByName('FileID').Value = FileID; var AccountID = FilesDetailGridArea.ParentItemID; ColumnsValuesContact .ItemsByName('ContactID').Value = GetPrimaryContactByAccountID(AccountID); var ID = Connector.GenGUID(); ColumnsValuesContact .ItemsByName('ID').Value = ID; InsertQueryContact.Execute(); } }
Для того, чтобы функция выполнялась корректно Вам необходимо создать функцию GetPrimaryContactByAccountID(AccountID), которая по заданному AccountID определит Оснойной контакт этого контрагента и отладить предоставленный нами код в отладчике скриптов. Аналогично может быть реализована подобная функциональность и в других разделах. С уважением, Коваленко Ирина