Для того, чтобы на детали «Контакты» раздела «Контрагенты» основной контакт был выделен жирным шрифтом, Вам необходимо выполнить следующие действия:

1. Запустить TS Admin под пользователем с правами администратора;
2. Открыть сервис скрипта scr_ContactsInAccountGridArea;
3. Найти в этом скрипте функцию grdDataOnGetRowDrawInfo и добавить в нее фрагмент

         var dsAccount = Services.GetNewItemByUSI('ds_Account');
         var CurrentAccountID = BaseGridArea.GridDataset.Values('AccountID');
         ApplyDatasetFilter(dsAccount, 'ID', CurrentAccountID, true);
         dsAccount.Open();
         var MainContact = dsAccount.Values('PrimaryContactID');
         dsAccount.Close();
         if (MainContact == BaseGridArea.GridDataset.Values('ContactID')) {
                   Font.bold = true;
         }

как показано на скриншоте:

/system/files/3_18.png

Сохраните изменения.

4. Откройте сервис sq_ContactInAccount, установите фокус на колонку AccountID и установите флаг «Всегда выбирать в запросе»:

/system/files/4_13.png

Сохраните изменения.

Перезапустите TS Client для проверки функционала:

/system/files/fin.png

Нравится

Поделиться

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

При сохранении карточки Контакта выдается ошибка
Ошибка сохранения записи. Оригинальное сообщение об ошибке: Недопустимое имя объекта "dbo.Communication1TypeName"
Карточка не сохраняется. В чем может быть ошибка?

Нравится

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

Система жалуется на сохранение первого средства связи.
Что Вы добавили в карточку контакта?
Сделайте скриншот заполненой карточки контакта перед сохранением.

Выяснили что такое происходит после того как данный параметр был дабавлен на отслеживание в Журнал изменений БД. Как этого избежать может кто нить знает?

По идее, возникать не должна.
Я верно понял, установлено логирование изменений и при этом возникает ошибка при сохранении?
Покажите на скриншоте, какие поля Вы установили для отслеживания изменений и укажите версию исполняемых файлов.

Скорее всего, проблема в запросе. Судя по сообщению, обращение происходит не к таблице, а непонятно куда. Для корректной работы должно быть dbo.tbl_Account.Communication1TypeName

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

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

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

Самый распостранённый вариант импорта из MS Excel "Импорт контактов и контрагентов и их средств связи в один этап".
При данной настройке существует привязка контакта к контрагенту и наоборот без дублей при условии, что в файле импорта у контрагента один контакт.

Прикрепила полную инструкцию. Возможно, кому пригодится.

Удачной работы!

Нравится

Поделиться

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

Спасибо большое, пригодилось :)

Татьяна, день добрый. Делал всё по Вашей инструкции. И чёто ошибок много. Подскажите, в чём дело. Лог приложил.

Заур, здравствуйте!
Ошибка в журнале импорта у Вас одна: Syntax error converting from a character string to uniqueidentifier

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

Судя по инструкции, то ошибку Вы допустили именно для контакта, необходимо перетягивать поле Контрагент.Основной контакт и Контакт.ФИО.

Сообщите, пожалуйста, удалось ли решить вопрос.

о! Что-то получилось. Добавились контакты. Сейчас продолжу наполнять информацию, если возникнут вопросы - сразу отпишусь.

ФИО в контакты конечно добавились. Но дальше всё равно что-то не так. Теперь у меня в контактах есть список людей. Но если кликнуть на контакт два раза, то в открывшемся окне контакта (подробное описание), ничего нельзя править. И плюс, при импорте, если я начинаю добавлять ещё информацию. по мимо ФИО, то ничё не добавляется. Снова ошибки ((

Если руками вбить контрагента, а потом пытаться его редактировать, то выдаёт такую ошибку:

[09.09.01 17.43.32.315] (E) Ошибка выполнения метода 'wnd_AccountEditOnPrepare'. Ошибка открытия источника данных "ds_Account".
Оригинальное сообщение об ошибке: Invalid column name 'Info'.
Invalid column name 'AverageSalary' «Call Stack»

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

Пожалуйста, уточните, какие сообщения Вы получаете в лог-файле при настройке импорта из Excel?

Для решения описанной Вами проблемы с добавлением контрагента, нам понадобятся следующие сервисы: sq_Account, ds_Account, tbl_Account, wnd_AccountEdit

Пожалуйста, выгрузите данные сервисы и направьте их на support@tscrm.com с описанием возникшей ситуации.

а как их выгружать не подскажите? или это есть в мануале?

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

Настроила поля в "Настройке импорта" так, как указано в инструкции. Но при импорте 1 контрагента, создается 2 контрагента с одинаковым именем. Карточка одного контрагента полностью заполнена контактами, карточка второго - совершенно пуста. Причем в карточке контакта отображается именно второй контрагент, у которого кроме названия ничего нет. Где может быть ошибка? и как с этим бороться?

Надежда, однозначно ошибка - в настройках.
Если можете, выложите файл импорта (можно с 2-3 записями)и выгрузите настройки импорта (в дизайнере настроек меню Файл - Выгрузить настройки в файл), попытаемся выяснить в чем проблема.

Посмотрите, там в ключевом поле (Название) скорее всего есть отличия. Где-то лишний пробел. Или его не хватает.

"Underscore a.k.a. _" написал:Посмотрите, там в ключевом поле (Название) скорее всего есть отличия. Где-то лишний пробел. Или его не хватает.

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

"Татьяна Адамчук" написал: нужно смотреть лог импорта

Да, не помешало бы.

Вот мои файл импорта и настройки импорта.

Хелп! очень нужна ваша помощь! файл импорта и настройки импорта выложила. В чем проблема, почему данные выгружаются некорректно?

Надежда, здравствуйте!

Загрузила Ваши настройки, но проблема не воспроизвелась.
Данные проимпортировались корректно и без дублей (проверяла на версии 3.3.1).

Если у Вас другая - напишите, пожалуйста.

Здравствуйте, Татьяна!
Моя версия 3.2.0.11. Дубли создаются и в контрагентах и в контактах.

Надежда, добрый день!

Загрузила настройки на версии 3.2.0. Для решения попробуйте в Terrasoft Administrator загрузить два сервиса, которые прикрепила к сообщению (в дереве сервисов в контекстном меню выбрать "Загрузить из файла").
Далее перезапустите приложение, установите в свойствах интеграции опцию "Обновлять существующие записи".
ПРоблема воспроизводиться не должна.
+ сделала донастройку Вашего импорта, чтобы типы средств связи проставлялись по умолчанию и для контакта и для контрагента (настройку прикрепила, можете использовать).

Сообщите, пожалуйста, результаты!

Загрузились только файлы из архива "services". Файл из архива "Community" загружаться отказывается (пишет: "невозможно определить тип сервиса по коду").

Надежда, файл Community.xml-это настройки импорта.
Загружать нужно в приложении, в дизайнере настроек через меню Файл-Загрузить настройки из файла.

После загрузки сервисов в Администраторе, при нажатии на кнопочку "Изменить настройки интеграции", вылазит лог с ошибкой: Ошибка выполнения метода 'wnd_DataflowTuningOnPrepare'. 'Plugin' - определение отсутствует «Call Stack».
После попытки присоединить файл Community.xml в настройках импорта, выходит следующая ошибка: Ошибка выполнения метода 'amiLoadSettingsFromFileOnExecute'. 'Plugin' - определение отсутствует «Call Stack».

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

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

Надежда, скорее всего, ошибка связана с тем, что Вы закрыли шаблон настройки импорта (Excel) при открытии записи интеграции.
Надежда, попробуйте закрыть приложение, посмотреть, чтобы в "Диспетчере задач" не висел процесс TSCRM.EXE, EXCEL.EXE, почистить кэш.
Для этого выберите Пуск-Выполнить-%appdata%\Terrasoft CRM\3.2.0\
Удалите папку Cache.
Далее запустите Terrasoft и попробуйте открыть настройки импорта.

Сообщите, пожалуйста, результаты.

Татьяна! настройки импорта теперь открываются.
проблема теперь в другом: при импорте списка из более чем 20 контрагентов, импортируется корректно только первая двадцатка. По остальным контрагентам: создается контрагент, но без дополнительной информации, создается контакт с полной информацией по нему (кроме должности и адреса). Лог прикладываю.

Надежда, добрый день!

А Вы слычайно не в демку импортируете данные?
Необходимо проанализировать Ваш файл импорта, т.к. в логе написано, что первые записи уже ранее были проимпортированы, а сейчас обновлены,после записи Уралтехимпекс возникла ошибка, проверьте, чтобы у Вас первичные поля не были пустыми, а именно Название и ФИО.

вопрос простой, но очень важный. в каком виде должен быть фал в экселе (т.е. какие графы, столбцы) с контактами/клиентами чтобы можно было их одномоментно импортировать в БД Террасофт :-) можете прикрепить образец файла? и вообще возможно ли это? из экселя или ворда. что то я не понял. нет желания вбивать все руками :-)

Импорт данных производится только из файлов MS Excel. Четких рамок файла нет, одно лишь условие, что данные должны быть по колонкам, например, колонки: ФИО, Телефон, Адрес, Отрасль и т.д. Прикрепила небольшой примерчик к письму.

Название колонок, их количество я составляю сам? Потом аналогичные колонки формирую в террасофте (названия, количество) и одним кликом смогу импортровать в БД террасофта? Очень принципиальный для нас вопрос. Поэтому заранее извиняюсь за "тупость" :-)

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

"Дементьев Юрий Валерьевич" написал:Потом аналогичные колонки формирую в террасофте (названия, количество) и одним кликом смогу импортровать в БД террасофта?

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

Добрый день.
В экселе не могу установить, найти, встроенную в панель, или самому установить - террасофт панель. офис стоит 2007. всегда считал себя гуру в экселе :-)

Здравствуйте, Юрий!
Если хотите настраивать импорт из Excel, то панель Вам не нужна, необходимо только запустить файл TSMSOfficeLibraryConfigurator.exe из папки Bin диреткории где установлен Terrasoft, выбрать продукт Excel в списке - Ок (Применить). После этого можете настраивать импорт в Terrasoft в разделе [Интеграции].

Удачи!

Здравствуйте, Татьяна!

Интересует следующий вопрос: есть ли возможность избежать добавления записей в справочники при импорте?
Например, колонка "Тип" для контрагента. В терасофте этот справочник уже заполнен. А при импорте данных дублируются записи. Нельзя ли сделать так, что бы при импорте записи брались из справочника?

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

www.informicus.ru

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

Если в справочнике типов существуют записи с одинаковыми названиями, как и в файле импорта, то Вам необходимо в свойствах интеграции (импорта) включить опцию "Обновлять существующие записи", при этом дублей точно не будет.
Если у Вас версия 3.2.0.-3.2.1, то рекомендую еще загрузить сервисы, которые прикреплены к сообщению.

Приятной работы!

Спасибо!

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

www.informicus.ru

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

Понятно, спасибо за оперативные ответы!!!

www.informicus.ru

Всегда пожалуйста!:)

Еще одна странность. Очень часто замечал, что те поля, которые заполнены в "значения по умолчанию", так и не заполняются в базе данных.
Иногда бывает, но часто приходится с этим долго биться.

"Владимир Соколов" написал:Очень часто замечал, что те поля, которые заполнены в "значения по умолчанию", так и не заполняются в базе данных.
Иногда бывает, но часто приходится с этим долго биться.

Владимир, значения по умолчанию заполняются только при вставке записи. Если, например, Вы настроили источник импорта, согласно которому создаются контакты с номерами телефонов, проимпортировали, потом вернулись, поставили значение по умолчанию средство связи = телефон, поставили галочку "обновлять записи" и выполнили импорт снова, то значения по умолчанию конечно же не заполнятся. У Вас были примеры не заполнения значений по умолчанию при других условиях?

"Раловец Ольга" написал:У Вас были примеры не заполнения значений по умолчанию при других условиях?

При других условиях - не было. Но все равно, мне кажется это немного нелогично.

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

И было задумано использование только при вставке, потому что "«По умолчанию» можно понимать как «когда ничего не было сказано по этому поводу»" (с). А если в данный момент мы редактируем существующую запись, то есть шанс, что значение уже было изменено на альтернативное и нельзя сказать, что «ничего не было сказано по этому поводу».

Тогда получается, что выходом будет добавление в Excel'e еще одной колонки, в которую вписать это значение по умолчанию. И тогда это значение успешно проимпортируется даже для существующих записей.
Просто, лишнее движение.

Как альтернативу, можно было бы рассмотреть признак в "значении по умолчанию" - "применять для существующих записей". Хотя, не знаю, насколько актуально

"Владимир Соколов" написал:Как альтернативу, можно было бы рассмотреть признак в "значении по умолчанию" - "применять для существующих записей". Хотя, не знаю, насколько актуально

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

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

"Татьяна Адамчук" написал:всегда нужно делать резервную копию

ну, это аксиома. я вообще на резервной копии создаю импорт, а потом уже переношу на живую. :)

"Владимир Соколов" написал:я вообще на резервной копии создаю импорт, а потом уже переношу на живую. :)

Аналогично...

"Татьяна Адамчук" написал:Тестировать лучше на шаблоне - это одна-две записи, тогда с удалением будет проще. Перед выполнением импорта всегда нужно делать резервную копию

На шаблоне не всегда можно увидеть все возможные нюансы. Например, файл импорта содержит несколько тысяч записей, пролистав первую сотню, я решаю, что первичный ключ = контакт + контрагент, импортирую, вижу, что записей у меня меньше, оказывается, что нужно добавить еще адрес к проверке уникальности, конечно, можно было это предвидеть, но все же.
А если база оракловая, переподнимать бэкап каждый раз, когда что-то не получилось? :) Я тоже делаю импорт не на рабочей базе, но удалять записи проще, по-моему.

Скажите пожалуйста, можна ли импортировать контрагентов с идентичными названиями?

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

спасибо, я уже розобралась

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

Сейчас в деталях контрагента на вкладке "Контакты" выдаётся список контактов, у которых в поле "Место работы" указан выбранный контрагент. Это значит, что каждый контакт привязан только к одному контрагенту. Однако не всегда контактное лицо по какой-либо компании является её сотрудником.
Например: небольшие конторы часто пользуются услугами аутсорсинговых IT-компаний, поэтому контактом по техническим вопросам будет являться человек из такой обслуживающей компании. При этом он может являться контактом сразу для нескольких организаций. Можно решить задачу с помощью взаимосвязей, но это не совсем логично, поскольку пользователи системы будут искать контакты именно во вкладке "контакты" и будут правы.
Задача решается стандартными средствами CRM (заведение дополнительной таблицы соответствия контакта и контрагента, редактирование соответствующих вкладок деталей), но возможно есть смысл ввести этот функционал в стандартный конфиг.

Нравится

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

Добрый день Семен.
Для решения описанных Вами задач в Terrasoft CRM предусмотрена деталь "Карьера"

1.2.2.5. Деталь [Карьера]
Для каждого контакта можно вести историю продвижения по служебной
лестнице (как в рамках одной компании, так и при переходе из одной
компании в другую).
На этой детали последовательно фиксируется информация обо всех местах
работы контакта (Рис. 1.22).

Рис. 1.22 – Деталь [Карьера]

Для добавления на деталь места работы контакта используется карточка
[Карьера], пример которой изображен на Рис. 1.23.
Поля карточки заполняются стандартным образом.
В поле [Причина смены работы] из соответствующего справочника
указывается причина, по которой контакт решил перейти на работу в эту
компанию, например, это может быть «Интересная работа», «Повышение
заработной платы», «Карьерный рост» и др.
В поле [Дата] указывается дата, когда контакт приступил к работе в
компании. По умолчанию данное поле заполняется текущей датой,
которую, при необходимости, можно изменить.


Рис. 1.23 – Карточка записи о карьере

Признак [Текущая] позволяет отметить компанию, в которой выбранный
контакт работает в текущее время (их может быть несколько). Признак
[Основная] отмечается в случае, если указанное место работы является
основным (основным может быть только одно место работы). В этом
случае, информация о данном контрагенте отражается в карточке
контакта.
Если в карточке контакта изменить значение хотя бы одного из полей
[Департамент], [Должность], [Полное название должности] и сохранить эти
изменения (нажатием на кнопку [ОК] карточки), на деталь [Карьера]
автоматически добавится новая запись о месте работы контактного лица (с
отметкой в поле [Основная] карточки). Запись о прошлом основном месте
работы контакта при этом будет отображаться только на детали (без
отметки в поле [Основная] карточки).

Спасибо, это мне в голову не пришло, т.к. контакт формально не является сотрудником организации. Можно ввести специальную должность в справочнике для "внешних" контактов и проблема решена.

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

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

--обновляет средсва связей и адреса контактов по их контрагентам.
--Детали адреса и средства связей контактов наполняются по их контрагентам, при этом старые записи остаются
-- если старые записи не нужны убрать/закомментировать строчку помеченную /*!!!*/
declare @NeedOldDetailRecords int
set @NeedOldDetailRecords = 0
set @NeedOldDetailRecords = 1   /*!!!*/


print 'Update tbl_Contact'
update t1
set     t1.Communication1=t2.Communication1,
    t1.Communication2=t2.Communication2,
    t1.Communication3=t2.Communication3,
    t1.Communication4=t2.Communication4,
    t1.Communication1TypeID=t2.Communication1TypeID,
    t1.Communication2TypeID=t2.Communication2TypeID,
    t1.Communication3TypeID=t2.Communication3TypeID,
    t1.Communication4TypeID=t2.Communication4TypeID,
    t1.TerritoryID    =t2.TerritoryID,
    t1.AddressTypeID =t2.AddressTypeID,
    t1.CountryID =t2.CountryID,
    t1.StateID =t2.StateID,
    t1.CityID =t2.CityID,
    t1.ZIP =t2.ZIP,
    t1.Address =t2.Address
from tbl_Contact t1, tbl_Account t2
where t1.AccountID is not null
and t2.id=t1.AccountID

if @NeedOldDetailRecords = 1
begin
    print 'update tbl_ContactCommunication'
    update tbl_ContactCommunication
    set position = null
    where exists(select * from tbl_Contact t2 where tbl_ContactCommunication.ContactID=t2.ID and t2.AccountID is not null)
   
    print 'update tbl_ContactAddress'
    update tbl_ContactAddress
    set IsPrimary = null
    where exists(select * from tbl_Contact t2 where tbl_ContactAddress.ContactID=t2.ID and t2.AccountID is not null)
end
if @NeedOldDetailRecords = 0
begin
    print 'delete from tbl_ContactAddress'
    delete tbl_ContactAddress
    from tbl_ContactAddress t1
    where exists(select * from tbl_Contact t2 where t1.ContactID=t2.ID and t2.AccountID is not null)
   
    print 'delete from tbl_ContactCommunication'
    delete tbl_ContactCommunication
    from tbl_ContactCommunication t1
    where exists(select * from tbl_Contact t2 where t1.ContactID=t2.ID and t2.AccountID is not null)
end

print 'Insert into tbl_ContactAddress'
insert into tbl_ContactAddress(id,ContactID,AddressTypeid,Address,CityID,StateID, Zip, CountryID, IsPrimary, TerritoryID)
select newid(), t1.id, t3.AddressTypeid, t3.Address, t3.CityID, t3.StateID, t3.Zip, t3.CountryID, t3.IsPrimary, t3.TerritoryID
from tbl_Contact t1, tbl_Account t2, tbl_AccountAddress t3
where t1.accountid is not null
and t1.accountid=t2.id
and t2.id=t3.accountid

print 'Insert into tbl_ContactCommunication'
insert into tbl_ContactCommunication(id,ContactID,Number,CommunicationTypeID,Position,Digits)
select newid(), t1.id, t3.Number, t3.CommunicationTypeID, t3.Position, t3.Digits
from tbl_Contact t1, tbl_Account t2, tbl_AccountCommunication t3
where t1.accountid is not null
and t1.accountid=t2.id
and t2.id=t3.accountid

С уважением,
Коваленко Ирина

Нравится

Поделиться

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

При синхронизации полей раздела "Контакты" с MS Outlook возникает ситуация, когда информацию из некоторых полей нет надобности переносить.
Для того, чтобы сократить число синхронизируемых полей, достаточно закомментировать соответствующие строки в функции SetContactInfoFromMSOutlook скрипта scr_MSOutlookContactSynchronization. В этом скрипте описан перечень полей, информация которых должны быть синхронизирована. Вам необходимо закомментировать те поля, которые нет надобности синхронизировать, сохранить внесенные изменения, перезапустить рабочее приложение Terrasoft CRM и протестировать работоспособность системы.

Желаю удачи!

С уважением,
Мельникова Екатерина

Нравится

Поделиться

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