Добрый день.

1. Как отпраить GET-запроса на сторонний ресурс,получить ответ в формате json?
2. Отобразаить полученные данные в карточке клиента (контрагенты и контакты)?
3. Это программировать надо? Если да, то куда вписывать код?

Спасибо!

Нравится

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

Получить текст ответа сервера можно при помощи объекта MSXML2.XMLHTTP.6.0.

var webAddress = 'http://example.com/example';
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.6.0");
xmlHttpReq.open("GET", webAddress, false);        
xmlHttpReq.send();
var MyText = xmlHttpReq.responseText;

Он возвращает текст (в Вашем случае JSON), его можно превратить в JS-объект кодом вроде:

eval('(' + MyText + ')')

Как отобразить, зависит от конкретной реализации и техническго задания (сразу при открытии карточки, принудительно по кнопке или, может, регулярно по таймеру).
Это действительно требует программирования, код впишется в один из методов скрипта карточки или скрипта датасета, опять же, в зависимости от того, что именно хотите сделать.

А есть на скринах,где показывается,как внедрять код в скрипт в СРМ.
Я как понимаю,требуется написать код,внедрить его.
Я совсем новичек в системе.

Предыдущий комментарий был по 3.Х. Если у Вас 7.5, там всё иначе. Для вопросов по ней есть специальный раздел.

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

Добрый день.
При настройке в планировщике заданий импорта каждые 10 минут двух справочников появляется сообщение об ошибке "Корневой узел не инициализирован ".

Microsoft JScript Call Stack

wnd_JobMethodsGridAreaScript.Result = Exec(GetDatasetFieldValue(Dataset, 'ScriptUSI') [line: 178] { Result = ExecFunction(GetDatasetFieldValue(Dataset, 'ScriptUSI'), }

Нравится

1 комментарий

Здравствуйте.
Для начала нужно проверить работает ли импорт без планировщика. Если "да", тогда можно попробовать последовательно исключать импортируемые поля. Таким образом возможно сузить круг поиска источника проблемы. Если импорт не работает и без планировщика, тогда нужно анализировать настройки параметров самого импорта.

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

Возможна ли интеграция Террасофт XRM 3.4 с Приват 24?

Нравится

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

Здравствуйте, Виталий!

В базовой версии продукта подобная интеграция отсутствует.

В рамках проектного решения подобную функциональность возможно реализовать.

Если это необходимо, пожалуйста, напишите мне в личные сообщения - я переадресую Ваш запрос Вашему ответственному менеджеру.

Про API Приват24 можете почитать здесь. В Terrasoft 3.X работа с веб-сервисами делается при помощи объекта MSXML2.XMLHTTP.6.0. Если возникнут вопросы по интеграции, обращайтесь.

"Зверев Александр" написал:Если возникнут вопросы по интеграции, обращайтесь.

Вопрос возник!!! Не прошло и года как клиент решил использовать апи и получать данные с привата24.
Я зарегистрировался как указано тут: https://api.privatbank.ua/p24registration.html
потом попытался сделать так: https://api.privatbank.ua/balance.html
Но мне выбила ошибка "empty request" Делал на рдп, какие проблемы могли возникнуть во время запроса?

Fiddler в помощь, смотреть какой запрос идет, какой ответ приходит. Далее разбираться по ситуации :)

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

Здравствуйте!

Есть настроенная интеграция ТС + 1С, которая добавляет и обновляет данные в 1С по UID1C. К примеру Накладные в ТС и Накладные в 1С. Счета в ТС и Счета в 1С.
А вот как обновить, к примеру, в 1С Накладную (Реализация (акты, накладные)) установить галочку Подписан, а источник в ТС Продажа, также булевское поле Подписана.
В первом случае все просто - там всегда в 1С из ТС добавляется новая запись со связью по UID1C. И по этому UID1C можно затем обновлять данные в 1С.
В случае Продаж новые записи из ТС в 1С (и обратно) не попадают. Единственное, по какому признаку можно их связать - это номер Продажи в ТС (Пример: "П345") и комментарий в накладной 1С ("Продажа номер П345-06072015").
Как можно в этом случае поставив галочку в ТС в Продаже "Подписана", чтобы накладная в 1С была Подписана (установлена галочка Документ подписан).

Нравится

5 комментариев

Пример установки галочки в TS для компонента BoolDataControl с помощью sql запрос:

UPDATE tbl_Opportunity SET [Название поля] = 1 {WHERE [Условие отбора]}

Где

  • 1 = true (галка установлена)
  • 0 = false (галка не установлена)

Нет, в ТС ничего программно обновлять не надо.
Процесс такой:
Пользователь (менеджер) в ТС в Продаже в ручную ставит галочку "Подписана".
В 1С программно (возможно через скрипт в OnBeforeRecordExport) в нужной (связанной с этой Продажей) Накладной ставится галочка "Документ подписан".

Связь между Продажей (ТС) и Накладной (1С):
Продажа - Номер (Пример: "П345").
Накладная - Комментарий (Пример: "Продажа номер П345-0607201")

Как пример может быть Накладную (1C) можно выбрать кодом 1С?:

ВЫБРАТЬ РТУ.Проведен ИЗ
       Документ.РеализацияТоваровУслуг КАК РТУ
       ГДЕ РТУ.Комментарий ПОДОБНО "П345%"

Только как это реализовать в OnBeforeRecordExport?

А ещё можно было бы сделать очень просто:

ОБНОВИТЬ Документ.РеализацияТоваровУслуг SET Проведен = "1"
       ГДЕ Комментарий ПОДОБНО "П345%"

(где "Проведен" и есть "Документ подписан".)
Только 1С такого делать не позволяет.

Или как-то их попытаться сначало связать по UID1C?

Добавьте в таблицу Продажи (TS) поле UID1C с типом идентификатор, в котором будете хранить идентификатор с таблицы Накладная (1C) и работайте через него, это будет намного проще и избавит Вас от потенциальных ошибок

Поле UID1C в таблице Продажи (TS) присутствует. Каким образом связать это поле с идентификатором с таблицы Накладная (1C), если есть только вышеперечисленные условия (Номер Продажи - Комментарий 1С)?

Есть несколько вариантов:

  1. 1. Из TS в 1C (данные создаются в TS)
  2. При выполнении импорта из TS значение в поле UID1C таблицы Продажи (TS) отсутствует. В момент создания новой записи в 1C, мы запоминаем сгенерированное значение ID для таблицы Накладная (1C), после чего подставляем это значение в поле UID1C таблицы Продажи (TS)

  3. 2. Из 1C в TS (данные создаются в 1C)
  4. При выполнении экспорта данных из 1C в TS, мы уже знаем идентификатор в 1C. по этому сразу можем подставить значение в поле UID1C таблицы Продажи (TS)

  5. 3. Можно использовать шлюзовые таблицы для обмена данными между 1C и TS
Показать все комментарии

Здравствуйте!

Интегрируеся с 1С 8.3, нужно динамически установить Договор для Счёта.

Для этого нужно

1. Получить контрагента 1С (т.к. договор его)
2. Получить Основной договор этого контрагента

Контрагента получить легко:
var Contragent = Param.Obj1C.Справочники.Контрагенты.НайтиПо[...];

А вот со вторым вариантом становится веселее. Есть следующая функция:

Param.Obj1C.Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию

Она принимает 4 аргумента: Название, точное совпадение, родителя и владельца

Первое, второе и четвёртое нам известно - это "Основной договор", false и контрагент, которого мы получили выше. Но третьего не дано (sic!). Язык 1С позволяет опускать ненужные параметры, но компилятор Террасофта этого сделать не даёт, так что нужно что-то туда вставить.

Вопрос: что?

Я пробовал null, false, 0, {}, Справочники.Контрагенты.ПустаяСсылка(), ""

Всё время жалуется на несоответствие типов.

Нравится

1 комментарий

В разных местах предлагают вроде:

ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка())

Не знаю, можно ли вызвать эту функцию из TS.

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

Здравствуйте, подскажите пожалуйста возможные пути реализации выгрузки каталогов продукции с сайта 1C-Битрикс, используя Terrasoft и\или MS SQL Server.
На сайте http://v8.1c.ru/edi/edi_stnd/131/#2, в общем описан алгоритм связи с сайтом. Столкнулся с проблемой: используя ActiveXObject MSXML2.XMLHTTP.6.0 не получается авторизироваться на сайте.
На PHP используя curl, с авторизацией и обменном данных проблем нет, но подымать web-сервер это крайний вариант.
Возможно кто то решал подобную задачу или я копаю не в ту сторону.
Буду благодарен за любую помощь.
Спасибо.

Нравится

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

"Дашкевич К." написал:используя ActiveXObject MSXML2.XMLHTTP.6.0 не получается авторизироваться на сайте.

Речь о базовой авторизации? Тут пишут, что XMLHTTPRequest её поддерживает:

open( method, URL, async, userName, password )
...
userName, password - данные для HTTP-авторизации.

Александр, нет таким способом не проходит, в responseText возвращаеться html страница с ошибкой авторизации, а не ожидаемый ответ "слово "success"; имя Cookie; значение Cookie."

Тут тоже пишут, что авторизация делается именно так:


1С отправляет http-запрос вместе с http-авторизацией следующего вида:
http://<сайт>/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth
Сайт отвечает тремя строками (с разделителем "\n"):
1. слово "success";
2. имя Cookie;
3. значение Cookie.
Примечание:
Все последующие запросы к сайту сопровождаются выставлением со стороны 1С имени и значения Cookie, полученными по команде "checkauth".

Значит, проблема на стороне сайта, смотрите в его настройках.

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

Добрый день.
Такой вопрос: не выгружается статус продажи из 1с в crm в течении нескольких дней. Почему?
Принудительная выгрузка тоже не дает результата.

Нравится

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

Здравствуйте.
Что-то явно сломалось.
Можете предоставить подробности, в частности настройки интеграции данной сущности и данного реквизита?

Добрый день.
Вот соответствие.

и еще в истории интеграции появляются следующие ошибки.

Николь, спасибо.
Уточню:
1) найдите в соответствии именно статус продажи, нажмите изменить и сделайте скриншот;
2) в сообщениях об ошибках нажмите два раза на ошибку и сделайте скриншот;

3) возможно вы знаете, кто настраивал вам данную интеграцию? т.к. скорее всего тут просто так не разобраться и нужно смотреть и отлаживать процесс "в живую".

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

как записать значение перечисления для заполнения поля 1С?
поле

Нравится

5 комментариев

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

Проблема все еще актуальна

Какая версия 1с?

Тогда рекомендую поставить утилиту для 8.2:
http://www.community.terrasoft.ru/catalog/3796
А затем используйте совет описанный тут:
http://www.community.terrasoft.ru/forum/topic/12260#comment-52599

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

Здравствуйте!

Настроил Экспорт справочников, документов из Террасофт 3.5.1 в 1С 8.3.
Все экспортируется за исключением ИНН, КПП и т.п. из Платежных реквизитов и единица измерения из Продуктов.

Настраивал по разному, последний вариант для ИНН такой:

Но ИНН не хочет экспортироваться.

По Продуктам также все хорошо экспортируется кроме поля единица измерения:

Подскажите, как правильно экспортировать данные поля?

Нравится

26 комментариев

ИНН, КПП хранится в том же справочнике в 1с или нет? Если в том же - некорректно указана связь, по-моему должна быть ссылка, а не родитель.
С единицами измерения: по-моему там сделано хитро. Это табличная часть и писать нужно в нее. А основной реквизит заполняется из табличной части "на лету" с признаком "основной" или как-то так.

пс: лично я делал ИНН, КПП экспорт кодом (у меня в 1-м контрагенте может быть только 1 расчетный счет) и тоже самое с ЕдИзм.

OnBeforeRecordExport:

//рассчетные счета	
	var AccountID = Dataset('ID');
	var AccBillingInfoDS = Services.GetNewItemByUSI('ds_AccountBillingInfo');
	AccBillingInfoDS.DisableEvents();
	ApplyDatasetFilter(AccBillingInfoDS, 'AccountID', AccountID, true);
	AccBillingInfoDS.Open();
	if(AccBillingInfoDS.IsEOF) {
		Select1C.ИНН = null;
		Select1C.КПП = null;
		Select1C.КодПоОКПО = null;
		Select1C.КодПоОКОНХ = null;
		Select1C.Руководитель = null;
		Select1C.ДолжностьРуководителя = null;
		Select1C.ОснованиеДействия = null;
	} else {
		Select1C.ИНН = AccBillingInfoDS('INN');
		Select1C.КПП = AccBillingInfoDS('KPP');
		Select1C.КодПоОКПО = AccBillingInfoDS('OKPO');
		Select1C.КодПоОКОНХ = AccBillingInfoDS('OKONX');
		Select1C.Руководитель = AccBillingInfoDS('FIO');
		Select1C.ДолжностьРуководителя = AccBillingInfoDS('Position');
		Select1C.ОснованиеДействия = AccBillingInfoDS('Ground');
	}

а единицы измерения так (в маппинге должно быть поле, в принципе оно у вас есть - 2ой скриншот).

        var TblPartUnit = Select1C.ЕдиницыИзмерения;
	TblPartUnit.Очистить();
	var NewLine = TblPartUnit.Добавить();
	NewLine.ЕдИзм = Select1C.ЕдИзмБазовая;
	NewLine.Коэффициент = 1;

Спасибо, Дмитрий! С ИНН (КПП) с кодом получилось. ИНН грузятся в 1С, но, только в 1С подсвечены красным и в карточке надпись: Неизвестен Вид контрагента. Укажите вид Контрагента:

При этом при выборе реквизита такого поля Вид контрагента нет.
На скриншоте видно, что там стоит Юридическое лицо, если данные в этом поле в 1С вручную пересохранить, а затем заново подгрузить ИНН, то ИНН подгружается уже не красным шрифтом и такой надписи нет.
Как можно подгрузить этот реквизит?

Вот тут не подскажу. У меня такого поля нет. Но явно вы не заполнили какой-то реквизит при программном создании счета. Посмотрите в модуле объекта - там должна быть явная (код) обработка этого момента, узнайте название реквизита и заполняйте его нужным значением.

Мне кажется что "Юр. лицо" в карточке подтягивается если там пусто, и сохраняется только после пересохранения. В администраторе в дизайнере формы кликните на поле и узнайте имя реквизита.

Дмитрий, с "Юр. лицом" все получилось. Имя реквизита было неверным - поменял на правильное и все заработало.
А вот с "Единицей Измерения" не получается, выскакивает ошибка:

Настройки в ТС такие:

В Справочнике ТС tbl_Unit есть связь по UID1C:

Что ещё не хватает для экспорта ЕдиницИзмерения?

Не-не, если через код - то подчиненной сущности не нужно. Удалите её, а код должен быть в сущности "Продукты", ведь именно у него есть табл. часть, а табл. часть у табл части нет :)

пс: не заметил что у вас подчиненная также на спр. номенклатура ссылается. там родитель должна быть ссылка а не родитель. но лучше его просто удалить, а код прописать повыше на уровень.

Код у меня был в сущности Продукты в OnBeforeRecordExport.
Удалил подчиненную сущность.
Ошибка возникает там же та же: "Объект не поддерживает это свойство или метод".
Содержание Select1C:

Вот настройки сущности Продукты:

у вас точно табл. часть есть такая?

а, кажется, я опечатался, должно быть ЕдиницыИзмерения, а не ЕдиницаИзмерения.

Да, я сразу поправил на ЕдиницаИзмерения.
Посмотрел в конфигураторе, да, табличной части нету:

Её можно просто создать по аналогии?

А ну тогда все совсем просто. Удаляете тот код, и добавляете в маппинг DefaultUnitID (поле в ТС )=ЕдиницаИзмерения (реквизит в тс).
Т.е. для эксопрта единицы измерения ни подчиненной сущности ни кода вам не надо (при условии если справочник вы уже в тс загрузили,и поля UID1C и Code1C заполнены).

Единственное меня смущают UID1C - у вас они без кавычек, а должны быть такими {bla-bla-bla}.
Т.е. если не будет работать - добавьте кавычки.

Да, я в начале так и делал, но выскакивала ошибка. Сейчас посмотрел у меня реквизит в 1С был "БазоваяЕдиницаИзмерения" - это из версии 1С 8.2. Т.к. загружал метаданные из версии 8.2 потом коннектился к 8.3. При загрузке метаданных из версии 8.3 - ничего не подгружалось и все загруженное из 8.2 обнулялось.
Поменял название реквизита на "ЕдиницаИзмерения" и все заработало!
Ошибка была в некорректном названии реквизита, т.к. они у меня загружены из версии 8.2.

Можно ли загрузить метаданные из версии 8.3? А то это уже не первая ошибка, связанная с неправильным названием реквизита.

Можно. У меня проблем не возникало при загрузке метаданных из 8.3. А что у вас? Дайте скриншот.

Спасибо, Дмитрий! Разобрался. В другой теме нашел такую же проблему и Ваше возможное решение.

Дмитрий, а если мне нужно в коде заполнить СтавкуНДС для экспорта в 1С, то какое значение подставлять ID, Code1C или Name из tbl_Tax?

Select1C.СтавкаНДС = 'ID'; 
или
Select1C.СтавкаНДС = 'Code1C';
или
Select1C.СтавкаНДС = 'Name';

Перечисление НДС в 1С и Таблицы tbl_Tax в ЕС связаны по Code1C:

Если хотите кодом, то с перечислениями работаем так:

var metalink = eval('Param.Obj1C.Перечисления.ТипыКонтактнойИнформации.' + Dataset('Code1C'));
Select1C.ТипКонтактнойИнформации = metalink; 

где Dataset('Code1C') - имя элемента перечисления (_не_ синоним).

Спасибо, Дмитрий!

Обнаружил глюк при отработке скрипта синхронизации

wnd_AutoRun1CScript

Периодически (но не всегда), после отработки функции

function TimerCloseOnTimer(Timer) {
	Self.Close();
}

Террасофт зависает с таким окном ошибки:

Отловить, почему выскакивает такая ошибка не получается. Как-то все происходит через раз при одинаковых действиях.
Причем это окно ошибки не висит, а "моргает", с частотой примерно пол секунды.
Что это такое и как с этим бороться?

Это вы что делаете? Можно поподробней? Я так понимаю настроили какой-то автозапуск интеграции?

А вообще такая проблема возникает когда приложение(главное окно) уже закрыто, а какое-то окно еще нет, и при любом обращении к главному окну вы получите такую ошибку.

Попробуйте подправить wnd_Main:

//[d.oleynik
	CloseEditWindows();
	//]
	CloseMainForm();
//[d.oleynik
function CloseEditWindows() {
	var Item;
	for (var i = 0; i < WinCache_Windows.length; i++) {
		Item = WinCache_Windows[i];
		if (Item.Instance) {
			if ((Item.Instance.IsVisible)) {
				try {
					Item.Instance.Close();		
				} catch(e) {}		
			}
		}
	}	
}
//]

Запускаю стандартный автозапуск интеграции через ярлык. Скрипт wnd_AutoRun1CScript:

function wnd_AutoRun1COnPrepare(Window) {      debugger;
    var DataflowID = Connector.Attributes('Dataflow1CID');                     
	var run1Cimport = Connector.Attributes('run1Cimport');
	var run1Cexport = Connector.Attributes('run1Cexport');
	if (IsEmptyGUID(DataflowID) || (!run1Cimport && !run1Cexport)) {
		return;
	}
	var ObjectID = Connector.Attributes('Dataflow1CObjectID');
	if (run1Cimport) {
		var Param = {};
		Param.IsMain = false;
		Param.IsShowError = false;
		Param.IsShowConnect = false;
		if (IsEmptyGUID(ObjectID)) {
			ImportAllObject(DataflowID, Param);
		} else {
			ImportObject(DataflowID, ObjectID);
		}
	}
	if (run1Cexport) {
		if (IsEmptyGUID(ObjectID)) {
			ExportAllObject(DataflowID, Param);
		} else {
			ExportObject(null, DataflowID, ObjectID);
		}
	}
	scr_Dataflow1CUtils.Disconnect(DataflowID, true);
}
 
function wnd_AutoRun1COnShow(Window) {
	TimerClose.IsEnabled = true;
}
 
function TimerCloseOnTimer(Timer) {
	Self.Close();
}

Если закомментировать TimerClose.IsEnabled = true, то ошибка не возникает, но окно wnd_AutoRun1C приходится закрывать вручную.

Правка wnd_Main результатов не дала.

Я делал свое окно, и проблем не возникает. Предлагаю сделать тоже самое:

1. Создайте сервис окна.
2. В невизуальных компонентах добавьте таймер.
3. В скрипте окна подключите скрипт scr_Dataflow1CUtils
3. Код примерно такой:

//-----------------------------------------------------------------------------
// wnd_AutoImportADLScript
//-----------------------------------------------------------------------------
 
 
function wnd_AutoImportADLOnPrepare(Window) {
	var DataflowID =  '{48CCFAA0-50B9-4378-8509-287ADF34599E}';
	//проверить флаг запущенной интеграции, если интеграция уже идет - не запускать повторно;
	if(GetIntegrationFlag()) {
		return false;
	}
	try {
		Activate1C();
		var Param = {};
		Param.IsMain = false;
		Param.IsShowError = false;
		Param.IsShowConnect = false;
		//установить флаг запущенной интеграци
		SetIntegrationFlag(1);
		ImportAllObject(DataflowID, Param);	
 
		ExportAllObject(DataflowID, Param);	
	} catch(e) {
		CatchError(e, arguments.callee);
	} finally { 
		scr_Dataflow1CUtils.Disconnect(DataflowID, true);
		SetIntegrationFlag(0);
	}	
}
 
function wnd_AutoImportADLOnShow(Window) {	
	Timer.IsEnabled = true;	
}
 
function TimerOnTimer(Timer) {
	Self.Close();
}
 
function GetIntegrationFlag() {
	var SQ = Services.GetNewItemByUSI('sq_GetIntegrationFlag')
	var DS = SQ.Open();
	if(DS('Flag')) {
		DS.Close();
		return true;
	} else {
		return false;
	}
}
 
function SetIntegrationFlag(IsSet){
	var UQ = Services.GetNewItemByUSI('uq_SetIntegrationFlag');
	SetParameterValue(UQ.Parameters, 'Flag', IsSet);
	UQ.Execute();
}

Спасибо, Дмитрий!
Ещё в ходе настройки интеграции возник вопрос: Как кодом работаем с справочником? К примеру нужно в Счета 1С Экспортировать Организацию. В ТС Организацию импортировал - есть ID и UID.

А вот как кодом экспортировать организацию в 1С в Счетах.

Select1C.Организация = '...';

Ниже - это как работаем с перечислением:

"Олейник Дмитрий" написал:

Если хотите кодом, то с перечислениями работаем так:

var metalink = eval('Param.Obj1C.Перечисления.ТипыКонтактнойИнформации.' + Dataset('Code1C'));

Select1C.ТипКонтактнойИнформации = metalink;

где Dataset('Code1C') - имя элемента перечисления (_не_ синоним).

Примерно так:

//[департамент
var DepartmentID = Dataset('DepartmentID');
var Departments = Param.Obj1C.Справочники.Департаменты;
var DepartmentUID1C = GetDatasetFieldValueByID('ds_Department', 
	DepartmentID, 'UID1C');
DepartmentUID1C = Param.Obj1C.NewObject('УникальныйИдентификатор', 
	DepartmentUID1C.replace('{', '').replace('}', ''));
var Department1C = Departments.GetRef(DepartmentUID1C);	

Department1C - это то, что нужно поместить в реквизит.

Попробовал:
Выдает ошибку: 1C:Enterprise 8.3.5.1517: Несоответствие типов (параметр номер '1')

эм, ну так вы пропустили строчку :)

DepartmentUID1C = Param.Obj1C.NewObject('УникальныйИдентификатор', 
        DepartmentUID1C.replace('{', '').replace('}', ''));
Показать все комментарии

Здравствуйте!

Настраиваю синхронизацию 1С 8.3 и ТС 3.5.1.
К примеру Продукты из ТС в 1С нормально синхронизируются, если мы изначально экспортируем в 1С Продукт. Продукты связываются по UID1C-UUID (tbl_Offering).
Возможна ли обратная синхронизация - из 1С в Террасофт. К примеру мы обнулили в tbl_Offering поля связи UID1C и Object1C. В ТС и 1С есть продукты одинаковое у них название (связь по ID мы удалили). Каким образом опять получить связи по UID1C и Object1C существующих продуктов в 1С?

Нравится

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

Alex, я не совсем понял. У вас уже есть база продуктов в тс и в 1с, при этом названия уникальные, и вы хотите чтобы поля UID1C и Object1C заполнились?
Если так, и если вы точно уверены что 2-х продуктов в 1с с одинаковым названием нет - отключаете в маппинге поля UID1C и Object1C как ключевые, заливаете продукты с 1с по ключевому полю "Название", а затем меняете все обратно.

Спасибо, Дмитрий! Проверил на 100% с разными названиями - все сработало, UID1C и Object1C подтянулись в ТС.
А как быть в случае, если в 1С есть одинаковые названия?

Для такого и сделан маппинг по UUID :)
Посмотрите запросом в 1с есть ли такие продукты вообще. Если нет - вам повезло. Заливайте сейчас пока не поздно все продукты из 1с в ТС по ключевому полю "Наименование", и после заливки смените на UUID.
Если есть: тогда либо обработать такие ситуацию вручную,
либо удалить все продукты в ТС и залить их из 1С по маппингу UID1C, Code1C.

В любом случае, для корректного экспорта любой сущности (документ либо справочник) нужно проводить импорт, иначе в 1с получите дубли.

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