Как при импорте данных из 1С сделать так, чтобы один из контрагентов 1С соответствовал контрагенту TS "Ваша компания"?
пробовал так:
if (Param.Obj1C.String(Select1C.Наименование) == 'МойКонтрагент') {
Dataset.Values('ID') = '{E308B781-3C5B-4ECB-89EF-5C1ED4DA488E}';
}
}
а при импорте подчиненных данных (платежные реквизиты):
ShowInformationDialog(Param.Obj1C.String(Select1C.QueryLink.Владелец.Наименование));
Dataset.Values('AccountID') = '{E308B781-3C5B-4ECB-89EF-5C1ED4DA488E}';
}
где {E308B781-3C5B-4ECB-89EF-5C1ED4DA488E} - ID в TS контрагента "Ваша компания".
Вот как раз проблема получилась с платежами, они не импортировались так, как нужно.
И потом есть другие данные которые импортируются и в них есть поле контрагента. Как можно решить это более глобально?
Нравится
1) Для строковых реквизитов 1С не обязательно использовать функцию Param.Obj1C.String()
можно просто так: Select1C.Наименование == 'МойКонтрагент'
2) Скорей всего ключевые поля при импорте контрагентов у вас UID1C и Object1С.
Вам всего лишь нужно заполнить их.
Для этого нужно узнать UUID вашего контрагента:
if (Trim(Select1C.Наименование) == 'МойКонтрагент') { Log.Write(1, Param.Obj1C.XMLString(Select1C[QueryLink].UUID())); // или так Log.Write(1, Param.Record1CID); }
И обновить вашу запись в БД:
UPDATE tbl_Account SET UID1C = '{13123123123-312312312-312312}', Object1C = 'Справочник.Контрагенты' WHERE ID = '{E308B781-3C5B-4ECB-89EF-5C1ED4DA488E}'
Спасибо. Сделал немного не так.
1. Обновил запись в БД
2. При обновлении данной записи устанавливаю имя контрагента по-умолчанию (иначе слетит лицензия)
function OnBeforeRecordImport(Param, Dataset, Select1C) { if (Dataset.Values('ID') == '{E308B781-3C5B-4ECB-89EF-5C1ED4DA488E}') { Dataset.Values('Name') = 'Ваша компания'; } }
Можно в настройке соответствия полей, у поля "Наименование" снять галочку "изменять значение поля" - в результате при обновлении записи в ТС это поле не будет изменяться
Можно, но ведь первый раз это поле заполнять надо )))
При добавлении новой записи в ТС, это поле изменится в первый и последний раз.