загрузка
загрузка из 1С
Загрузка Контрагентов
контакты
контрагенты
Регистр сведений
РС
Интеграция и импорт данных
Разработка

Добрый день. Не получается загрузить Телефоны, адреса, платежные реквизиты из 1С в ТС.
Контрагент создаётся, при загрузке создаются элементы видов телефонов и адресов, а сами значения не грузятся. почему не понятно.
Настраивал на основе этого видео.
Но там как-то отрывисто рассказывается и в первый раз вообще адреса не загрузились, а потом вроде без ошибок, но результат не показали.

В итоге вроде с виду выглядит всё как надо, результата нет.
Адреса просто не создаются.
С телефонами выдаёт ошибку.
Ошибка импорта. Could not convert variant of type (OleStr) into type (Boolean). Возникла при импорте записи 1C с именем Нова ОсОО Телефон Мобильный

Ещё конечно порадовало "Добавлен новый Елемент")))

Скрины приложил.

Нравится

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

Сложно сказать о конкретных причинах, не видя Ваши 1С и Terrasoft.
Слово «елемент» можно исправить в 47 строке scr_Dataflow1CConsts. И заодно в другом сообщении в 20 строке scr_MsxmlUtils.dash2
Ошибка «Could not convert variant of type (OleStr) into type (Boolean)» говорит, что пытаетесь загрузить строку в логическое поле.

Да мне то "елемент" не мешает, исправлять это в релизе надо. а не в одной копии программы.

1С и ТС вроде у всех одинаковые. 1С УТ 10.3.35.1. Как посмотреть точную версию ТС не знаю.
От того какие там буковки в адресах и телефонах, по моему ничего не меняется.
А настройки обмена, отборы и сопоставление полей я привел на скринах. По всей видимости проблема в них, но где именно не понятно.

"Корниленко Роман Васильевич" написал: исправлять это в релизе надо. а не в одной копии программы.

Роман, разработка 3.Х прекращена, на ней больше релизов не будет.
1С и ТС вроде у всех одинаковые.

Да нет, вроде, у всех разные.

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

"Зверев Александр" написал:Роман, разработка 3.Х прекращена, на ней больше релизов не будет.

Ну ок.
"Зверев Александр" написал:Да нет, вроде, у всех разные.

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

"Корниленко Роман Васильевич" написал:Что Вы подразумеваете под разные?

В разных версиях Terrasoft для работы с разными версиями 1С могут потребоваться определённые доработки в конфигурации.

"Зверев Александр" написал:Сложно сказать о конкретных причинах, не видя Ваши 1С и Terrasoft.

"Зверев Александр" написал:В разных версиях Terrasoft для работы с разными версиями 1С могут потребоваться определённые доработки в конфигурации.
Версию 1С я написал, платформа 8.2.19.130, как посмотреть версию ТС просьба подсказать.

Версию ядра Terrasoft можно узнать в свойствах exe-файла.
Конфигурация при этом может быть как более старая, так и более новая, если какие-то доработки переносились вручную.

Чтобы понять, почему что-то не отрабатывает, можно попробовать пройти пошагово в отладчике.
Либо же добавлять в настройках синхронизируемые сущности не все за раз, а по одной, после каждой проверяя корректность импорта.

Показать все комментарии
лендинг
Лид
Интеграция и импорт данных
Разработка

Подскажите пожалуйста, если лендинг создан в специальном сервисе создания посадочных страниц вроде Платформа LP, Тильда, LP Generator или Флексби, где исходный код формы изменить нельзя (там где нужно добавить onSubmit="createObject(); return false") то интеграция невозможна?

Так же в исходном коде для полей формы нет ID, а классы для всех полей одинаковые (разные только значения value), как быть в таком случае?

К примеру:

Это вообще предусмотрено?

Нравится

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

Добрый день, Катерина.

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

Готового решения для добавления кода в нерадактируемые формы нет.

Показать все комментарии
Интеграция и импорт данных
Разработка

Добрый день!

Подскажите, можно ли активировать выгрузку реестра в xls-файл (и соответствующую кнопку) при отсутствии Excell в системе?

Terrasoft XRM 3.4.0.114 установлен на виртуальной машине на windows 10 в Parallels Desktop

Excell установлен на хостовой машине с MAC OS 10, на которой установлен Parallels Desktop 12.1.2. Файлы xls из виртуальной машины открываются при помощи Excell for MacOS

Спасибо!

Нравится

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

Логика выгрузки реестра в Excel реализована на уровне ядра и использует COM-объект Excel. Соответственно, если на компьютере нет установленного Excel, то выгрузка работать не будет.

Если у Вас есть время и вдохновение, можно добавить на базовую страницу реестра свою кнопку и написать к ней свой механизм выгрузки в более простые форматы таблиц, не требующие сторонних компонентов, например, текстовый формат CSV.

Показать все комментарии
Интеграция и импорт данных
Разработка

Добрый день.

Стоит задача.
Есть сайт. Пользователь сайта, кликая по кнопке на сайте, должен инициировать определенное событие в CRM. Например, должна появиться новая задача (новая запись в таблице Задачи).

Вариант, когда сайт напрямую обращается к БД нашей CRM не подойдет.
Как еще можно реализовать подобную функциональность?

Спасибо.

Нравится

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

Например, можно запустить из командной строки TSClient с нужными аргументами командной строки, который выполнит нужное и закроется (как тут).
Учтите, что запуская с сайта exe-файл нужно будет соблюдать осторожность, чтобы не получилась уязвимость запуска чего угодно.

Александр, здравствуйте.
Думаю, что такой вариант нам не подойдет. Для его реализации у каждого пользователя сайта должен быть установлен TS клиент, если я правильно Вас поняла. А пользователь сайта - это не сотрудник компании, а наш клиент.

Вопрос в том, как из сторонних систем, сайтов и пр. "стучаться" в CRM, кроме как напрямую в БД?

Нет, не должен. Речь о запуске программы на сервере. Так, как Вы имели в виду с запуском у клиента, тоже можно, но это действительно не для Вашей ситуации.

Как передать произвольные параметры через командную строку — см. тут.

"Зверев Александр" написал:Речь о запуске программы на сервере.

на сервере сайта?

Да, на сервере сайта. Но с осторожностью.

Александр, спасибо. Идея в целом понятна. Каждый раз получая от пользователя сайта нужную команду, на сервере сайта запускаем клиента Террасофт, например, с определенного окна и с набором атрибутов. А на событии OnPrepare() этого окна будет отрабатывать вся необходимая нам логика.

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

Более гибкий, надёжный и безопасный инструмент — это bpm'online 7.Х. Там есть возможность создавать свои веб-сервисы или запускать БП извне.

:smile: но увы у нас Terrasoft CRM 3.3.2.

На сколько я понимаю настройка веб сервиса доступна и на 3.X?
Здесь нашла примеры работы с веб сервисом из внешних приложений.

Не знаете, насколько это вообще реализуемо на тройке? И стоит ли браться?

Можно попробовать и так, как по ссылке.
Подобным образом работает веб-форма портала самообслуживания в Service Desk 3.Х.

Показать все комментарии
EntitySchemaManager
база данных
колонка
схема
таблица
Интеграция и импорт данных
Разработка

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

Подскажите, как можно осуществить проверку наличия таблиц и их колонок БД по именам, используя EntitySchemaManager в веб-сервисе? Чтобы проверить перед внесением изменений в БД.

Нравится

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

В Terrasoft 3.Х нет механизма EntitySchemaManager. Там всё устроено иначе.

"Зверев Александр" написал:

В Terrasoft 3.Х нет механизма EntitySchemaManager. Там всё устроено иначе.


Понял. Спасибо.

Показать все комментарии
Интеграция и импорт данных
Разработка

У нас реализована интеграция 1С и Террасофт. После переезда на другой сервер столкнулась с проблемой, "Невозможно создание объекта сервером программирования объектов".
Новая версия ОС - Windows Server 2012, раньше был Windows Server 2008.
Версия sql не менялась, 2008 R2.
Кроме этого изменилась организация работы: sql находися на одном сервере, а 1С и соответствено запуск интеграции под клиентским приложением - на другом.
Раньше все было на одном сервере.
Как починить интеграцию?

Нравится

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

Не зная, как конкретно у вас реализована интеграция этих двух систем, вряд ли можно дать совет, как ее починить. Вариантов очень много.
Оптимальный вариант - постучитесь к авторам данного интеграционного решения, кто его разрабатывал, настраивал и запускал.

Возможно я плохо объяснила, у нас интеграция средствами Террасофт. Эта же интеграция в коробочной версии 3.4 уже прописана.

См. ответ тут.

1. На том компьютере, с которого Вы пробуете запустить утилиту интеграции, не установлена 1С либо COM-объекты 1С

Я сразу указала , что запускают утилиту там же где стоит 1с, я знаю про эту особенность утилиты.
Как могут не быть установлены СОМ объекты, если 1с стоит и работает? Какие именно сом-объекты?

2. Вами не настроено соответствующим образом подключение к базе данных 1С.

Мною настроено соединение, так как написано в инструкции , и так как оно раньше работало ( конечно,с учетом нового пути к базе 1с)

Возможно все-таки проблемы в отсутствии какой-то зарегистрированной библиотеки в Windows 2012?

"Тихенко Виктория" написал:Возможно все-таки проблемы в отсутствии какой-то зарегистрированной библиотеки в Windows 2012?

Такое тоже может быть, особенно, если проблема наблюдается только на конкретном компьютере. Для начала можно перерегистрировать библиотеки Terrasoft (проще всего переименовать папку с Terrasoft и запустить TSClient, а потом закрыть и переименовать обратно).

Вообще -то я имела ввиду библиотеки Windows, но террасофт на всякий случай перерегистрировала тоже. Не помогло.

Значит, действительно что-то не то в Windows или 1С.

Может быть есть какие-то идеи что именно не так? Библиотеку зарегистрировать не сложно , знать бы какую

Я бы начал с регистрации 1С-овской comcntr.dll в папке bin установленной 1с на той машине, где стартует интеграция.
А вообще неплохо бы посмотреть в каком скрипте возникает ошибка и какой объект пытается кто создать.
ps здесь читали /это в тему поиска проблемного скрипта?

Добрый день. Только сейчас заметила, чтобы забыла тут отписаться. Последний совет помог и все заработало ))

Показать все комментарии
Gmail
Outlook
интеграция
контакты
синхронизация
Интеграция и импорт данных
Разработка

Здравствуйте! Подскажите пожалуйста, можно ли сделать двухстороннюю синхронизацию контактов gmail с террасофт и каким путем идти? Версия террасофт 3.4.0. Синхронизация контактов outlook и gmail работает через стороннее приложение, так что думаю на крайний случай можно подтягивать для синхронизации outlook. Спасибо!

Нравится

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

В Terrasoft есть интеграция контактов с Outlook. Как её настроить и использовать, см. обе инструкции на стр. 133.

спасибо! А именно для gmail есть варианты?

Есть интеграция с Outlook, а что там используется для наполнения контакктов, Gmail или Exchange — разницы нет.
Прямая интеграция с контактами Google есть только в полностью новой версии 7.Х (видео).

Показать все комментарии
script
Terrasoft XRM
бизнес-процесс
интеграция
Скрипты
Интеграция и импорт данных
Разработка

Добрый день!

Возникла нужда интегрировать Terrasoft XRM Professional Services v3.3.2.292 с сервисом ExpertSender. Этот сервис имеет собственный API, который работает через POST и GET запросы.Ранее мы уже проводили интеграцию данного сервиса с BPM'online. Для этого мы создавали бизнес-процесс, который запускался как только в CRM добавлялся новый Лид. У этого Лида считывался email-адрес, после чего запускался скрипт, который отправлял на сервис ExpertSender API-запрос, в котором содержался считанный email. Таким образом, мы добавляли новых Лидов в сервис ExpertSender, который работает через API.

Теперь же нужно то же самое воссоздать в Terrasoft XRM. Мы смогли создать новый процесс, в нем создали скрипт, который отправляет POST-запрос на ExpertSender. Но вот как сделать, чтобы процесс запускался автоматически, когда добавляется новый Лид, и как у конкретно этого нового Лида считать email - разобраться так и не удалось. Возможно, кто-то здесь подскажет, что можно сделать?

Нравится

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

Здравствуйте, Александр Николаевич!

Для решения Вашей задачи Вы можете использовать функцию WFStartByID(WorkflowID, ParamNames, ParamValues). В качестве параметров, в которую передаются WorkflowID - ID сервиса Вашего процесса, ParamNames - массив имен параметров Вашего БП, для которых Вы хотите передать начальное значение, ParamValues - массив значений параметров.

Показать все комментарии
excel
импорт
карточка
Интеграция и импорт данных
Разработка

Доброго дня!
Подскажите пожалуйста, стоит задача сделать кнопку для импорта из excel файла в деталь раздела
Я вроде нашел пример, но пока что ничего не получается. Не могу понять в чем проблема, поскольку проходит все без ошибок, но позиции не импортируются.

function importQuote()
{

        var FileName = GetNewValue();
        if (!(System.OpenDialog(FileName, '*', EmptyStr, EmptyStr, EmptyStr))) {
                return;
        }
       
        var ExelApp = new ActiveXObject("Excel.Application");
        var WorkBook = ExelApp.Workbooks.Open(FileName.Value);
        var Sheet = WorkBook.ActiveSheet;
       
        var startRow = 2;
        var currentRow = startRow;
        var rate = Sheet.Cells(2, 12).Value;
       
        var OfferingInContractDS =  GetSingleItemByCode('ds_OfferingInOrderX',  'OfferingInOrderX');
        EnableDatasetFilters(OfferingInContractDS,  false);
        OfferingInContractDS.Open();

        var offeringsNotFound = 0;
        try {
                while(Sheet.Cells(currentRow, 12).Value != null)
                {
                        OfferingInContractDS.Append();
                        var num = Sheet.Cells(currentRow, 12).Value;
                        OfferingInContractDS('Name') = num;
                        var partNumber = Sheet.Cells(currentRow, 12).Value;
                        OfferingInContractDS('Description') = partNumber;
                       
                        OfferingInContractDS.Post();                                                   
                        currentRow++;
                }
        } finally {
                OfferingInContractDS.Close();    
        }
        dlData.Dataset.Close();
        dlData.Dataset.Open();
        WorkBook.Close();
       
        ShowWarningDialog('Загружено: ' + (currentRow - startRow));
}

Заранее спасибо!

Нравится

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

Может, у Вас просто Excel «не хочет» работать по ActiveX?
Если пройти пошагово в отладчике, то на какой строке виснет?

Я немного подправил скрипт и теперь вылетает ошибка:
"Ошибка выполнения метода 'btnImportOnClick'. Ошибка сохранения записи. Оригинальное сообщение об ошибке: The statement has been terminated.
Cannot insert the value NULL into column 'SpecificationID', table 'TSXRM3.dbo.tbl_OfferingInOrderX'; column does not allow nulls. INSERT fails «Call Stack»"
Хотя я вроде в эту колонку ничего не импортирую

import_test.xlsx

function importQuote()
{
 
	var FileName = GetNewValue();
	if (!(System.OpenDialog(FileName, '*', EmptyStr, EmptyStr, EmptyStr))) {
		return;
	}
 
	var ExelApp = new ActiveXObject("Excel.Application");
	var WorkBook = ExelApp.Workbooks.Open(FileName.Value);
	var Sheet = WorkBook.ActiveSheet;
 
	var startRow = 12;
	var currentRow = startRow;
	var rate = Sheet.Cells(12, 2).Value;
 
	var OfferingInContractDS =  GetSingleItemByCode('ds_OfferingInOrderX',  'OfferingInOrderX');
	EnableDatasetFilters(OfferingInContractDS,  false);
	OfferingInContractDS.Open();
 
	var offeringsNotFound = 0;
	try {
		while(Sheet.Cells(currentRow, 2).Value != null)
		{
			OfferingInContractDS.Append();
			var num = Sheet.Cells(currentRow, 2).Value;
			OfferingInContractDS('Name') = num;
			var partNumber = Sheet.Cells(currentRow, 3).Value;
			OfferingInContractDS('Description') = partNumber; 
 
			OfferingInContractDS.Post();							
			currentRow++;
		}
	} finally {
		OfferingInContractDS.Close();    
	}
	dlData.Dataset.Close();
	dlData.Dataset.Open();
	WorkBook.Close();
 
	ShowWarningDialog('Загружено: ' + (currentRow - startRow));
}

"Родненок Дмитрий Павлович" написал:Хотя я вроде в эту колонку ничего не импортирую

В том и дело. Вы не заполняете значением обязательное поле.

Понял, спасибо!
Теперь все импортирует!
Есть еще маленький вопрос:
У меня имеется поле с номером, который является автоинкрементом и храниться в системных настройках.
Каким образом я могу проставлять на все импортируемые файлы этот номер +1 и записывать последнее значение в системные настройки?Чтобы каждая позиция имела уникальный номер
И может быть сможете подсказать, как реализовать вложенность при импорте, поскольку деталь древовидная

Показать все комментарии
Проблема с объектом звонка Infinity на событии OnCallCreatedEvent(Call)
Интеграция и импорт данных
Разработка

Добрый день, коллеги.
Обнаружили у себя следующую проблему - на событии при создании звонка OnCallCreatedEvent(Call) мы случайным образом время от времени получаем пустые данные в объекте, в частности, не заполняется свойство AbonentCallInfoStr, Number и т.д.
Свойство ID заполнено всегда.
Для нас это является большой проблемой, т.к. по свойству AbonentCallInfoStr определяем идентификатор карточки обращения клиента.
Со своей стороны перебрали кучу возможных случайных вариантов, чтобы получить свойство:
Ожидание этого свойства в цикле while, инициализация карточки через другие события, например, OnStateChangedEvent, и т.д.
Мы всё равно имеем то, что Call обновляется случайным образом, притом, если он на событии инициализации вызова может быть пустым, то, например, на событии OnCommandsStateChangedEvent(Call) он может быть уже заполненным, а может и не быть.
Непонятно, каким образом кэшируется/обновляется объект, т.к. 100% в цикле одной функции при его начальном отсутствии дождаться его невозможно, а на входе другой функции он может появиться.
Прошу помочь разъяснениями тех, кто сталкивался с подобной ситуацией.

Terrasoft 3.4
Infinity 1.15.11.8315

Нравится

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

Добрый день!

К сожалению не смог найти в базовых сервисах описанных Вами событий: OnCallCreatedEvent, OnCommandsStateChangedEvent.

Прикрепите пожалуйста сервис, в котором реализованы данные события.

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