Здравствуйте.
Необходимо в карточке контрагента заменить деталь с типом справочник на деталь ИНН

Нравится

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

Здравствуйте.
Уточните вопрос, деталей с типом справочник не существует. Вам нужно существующее поле с типом справочник заменить на строковое? Т.е. Вам нужна инструкция как удалять поле и как добавлять его, а также как выполнить UPDATE поля в базе данных (т.к. справочное поле хранит в себе идентификатор записи из справочника, а текстовое поле собственно сам текст)? Или вы что то другое имели ввиду?

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

Евгений, необходимо следовать алгоритму:

1. Добавить в сервисе таблицы (tbl_Table) строковое поле.
2. Добавить колонку в сервисе выборки данных с таблицы (sq_Table)
3. Добавить поле в набор данных (ds_Table)
4. Добавить строковое поле (TextDataControl) в нужное вам место в карточку редактирования (wnd_Table) и там слева внизу в окне свойств для поля будет два свойства - DatasetLink заполняете как dlData, DatafieldName - как то поле которое вы добавили на шаге 1.

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

Дмитрий, спасибо. Все работает. Но теперь при обращении к списку Юр.лиц появляется ошибка: "Недопустимое имя столбца tbl_Table" и список пуст ((

Посмотрите в окне реестра wnd_TableGrid список колонок выведенных в реестр. Скорее всего вы какую то колонку таки удалили с таблицы и датасета, а в реестре ссылка на неё осталась.

Дмитрий, вопрос снят.
Пересоздал все заново.
Все работает.
Спасибо за помощь.

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

Добрый день.
Поставили Terrasoft CRM. Настроили. Есть несколько проблем:
1. Возникла необходимость добавить поле в карточке контрагента (Дополнительный контакт). Подскажите, насколько сложно и как это сделать?
2. Можно ли "прикрутить" к Террасофту адресный классификатор. Пользователи вводят данные по Местоположению кому как заблагорассудится. В результате получается каша (дублируются территории, города, страны, регионы).
Заранее благодарю за ответы.

Нравится

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

Речь о версии 3.Х?

1. Можно. Просто.

2. Можно. Сложно.

Да, речь о версии 3.х. Спасибо. Буду пробовать. А насчет второго вопроса есть советы?

Это существенная доработка: несколько новых таблиц, карточка ввода адреса, синхронизация с базой КЛАДРа (хотя бы разовая) и тому подобное. Скажем так, намного сложнее, чем поле добавить.
Один из вариантов реализации:
КЛАДР
Такое могут сделать под заказ специально обученные люди из Terrasoft или её партнёров.

Понятно. В общем надо проводить разъяснительную работу среди пользователей, чтобы сначала искали нужный элемент, а потом, если не найдут, заводили новый.
Спасибо большое за разъяснения.
И еще. Не могли бы вы подсказать как накатить сервисы из FieldMaker'а на нашу базу? Просто с Terrasoft'ом только-только начинаю разбираться.

"Зюльков И.А." написал:И еще. Не могли бы вы подсказать как накатить сервисы из FieldMaker'а на нашу базу?

Запустить TSAdmin.exe, правой кнопкой по дереву справа, "Загрузить из файла", выбрать все файлы за раз.

Да, когда будете создавать в FieldMaker'е новое поле, на второй вкладке колонку для отображения ContactName заменить на что-то вроде AdditionalContactName. И аналогично, на первой вкладке исправьтеLEFT JOIN TABLE tbl_Contact AS tbl_Contact на LEFT JOIN TABLE tbl_Contact AS AdditionalContact.

Попробовал. Получилось. Александр, а можно ли сделать это поле таким же как и для Основного контакта (т.е. с выбором из справочника Контакты)?

А сейчас оно какое?

Обычная строка. Я так понимаю, что-то не то я навыбирал на закладках.

Обычная строка. Я так понимаю, что-то не то я навыбирал на закладках.

На первой нужно тип данных "справочник", название "AdditionalAccountID" и заголовок "Дополнительный контакт". Как на картинке в описании FieldMaker. Кстати, почему назвали "AdditionalAccount", а не "AdditionalContact"?

"Зверев Александр" написал: Кстати, почему назвали "AdditionalAccount", а не "AdditionalContact"

Вы правы. AdditionalContact будет логичнее.
Не совсем понятно какой выбрать источник данных на 1 закладке? Контакта там нет. И добавить нельзя.

Должен быть. Искали и по "Контакт", и по "Contact"?

Да. Искал. Вот что система предлагает на выбор.

Это только первая страница списка. Введите "Contact" в поле в правом верхнем углу и оно отфильтрует.

Александр. Я Вас наверное замучаю сегодня.

Действительно, ввел в поиске Контакт и получил список. Только теперь опять проблема: какой бы из Контактов я ни выбирал (Контакт - ds_Contact, Контакт - ds_SelectContact, Контакт контрагента - ds_ContactInAccount) при попытке сохранить карточку Контрагента вываливается ошибка.

сначала очистите все заполненые поля AdditionalAccountID или удалите поле и сделайте все заново
чтобы удалить поле надо поочередно удалить его в сервисах
wnd_AccountEdit
ds_Account
sq_Account
tbl_Account

ОГРОМНОЕ СПАСИБО Александр и Дмитрий за терпение и ответы.
Все получилось.

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

Здравствуйте!
Хочу добавить новое поле в карточку контрагента. При попытке сохранить tbl_account выдает ошибку unsuccessful metadata update
Column Name from table tbl_Account is referenced in tsp_GetCurrentUserInfo
This operation is not defined for system tables.
Error Code: 31
ALTER TABLE "tbl_Account" ALTER "Name" TYPE VARCHAR(250) CHARACTER SET UNICODE_FSS

Причем ошибка появляется даже если изменений не было сделано. Раньше все было нормально, поля добавлялись. Используем Terrasoft Sales 3.2, Firebird. Возможно дело в репликации которая не так давно проводилась.
Помогите пожалуйста.

Нравится

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

Terrasoft Sales 3.2.0.16

Добрый день
похоже у Вас просто есть зависимость от поля Name
попробуйте удалить tsp_GetCurrentUserInfo
провести нужные изменения в таблице
и создать заново tsp_GetCurrentUserInfo
для этого сначала в IBExpert сгенерируйте скрипт создания tsp_GetCurrentUserInfo потом в TSAdmin сохраните таблицу
и в IBExpert выполните скрипт для создания tsp_GetCurrentUserInfo

Добрый день.
Попробовал. После удаления tsp_GetCurrentUserInfo тоже не сохраняет, пишет:
unsuccessful metadata update
Column Name from table tbl_Account is referenced in tsp_GetLoginInfo
This operation is not defined for system tables.
Error Code: 31
ALTER TABLE "tbl_Account" ALTER "Name" TYPE VARCHAR(250) CHARACTER SET UNICODE_FSS

Удалил tsp_GetLoginInfo -
тоже самое но про CIAccountName

Как быть? Подскажите пожалуйста

если Вам нужно добавить поле в таблицу можно
создать поле в IBExpert а потом в TSAdmin добавить етоже поле
и сохранить сервис но на вопрос "сохранить в базе данных" ответить "нет"
в результате у Вас будет поле в базе и поле в конфигурации

Попробовал. В TSAdmin все получилось. Но при окрытии карточки контрагента в TSCRM выскакивает ошибка:
Ошибка выполнения метода 'wnd_AccountEditOnPrepare'. Ошибка открытия источника данных "ds_Account".
Оригинальное сообщение об ошибке: Dynamic SQL Error
SQL error code = -206
Column unknown
tbl_Account.REGMANID
At line 71, column 25
Column does not belong to referenced table
Error Code: 249

REGMANID - новое поле.

Возможно после добавления поля в таблицу в IBExspert Вы непотвердили изменения?

Да нет. Все потверждено. Все сохранилось.

если ошыбка под пользователем
то нужно добавить поле во вюху vw_Account

Ошибка под SYSDBA. vw_Account не находит ни IBManager, ни TSAdmin. может в этом проблема?

нет vw_Account есть только если в tbl_Account стоит галочка администрируеться по записям
Вы можете в IBManager выбрать данные из нового поля?

В tbl_Account галочка "администрируеться по записям" стоит. в IBManager в новом поле везде Null, но я могу вручную вносить значения, но это мне никак не поможет т.к. поле должно быть типа справочник.

к сожалению немогу указать причину ошыбки "на слух" :(
Вышлите пожалйста сервисы tbl_Account sq_Account ds_Account и описание проблемы на support@tscrm.com

и попробуйте добавить нужное Вам поле через "Пользовательские поля"

Чем решился данный вопрос?
У меня похожая проблема при сохранении таблицы Продукт

unsuccessful metadata update
object vw_Offering is in use
This operation is not defined for system tables.
Error Code: 31
EXECUTE PROCEDURE "tsp.AdministratedByRecords" :TableName, :RightTableName, :TableViewName, :RightTableViewName, :Enabled, :IsLogTable

3.3.1.36 Firebird

"Березович Сергей" написал:попробуйте добавить нужное Вам поле через "Пользовательские поля"

жесть))
я бы предложил вернуть старый вариант сервиса из "коробочной" базы, потом рестарт firebird и попробовать создать вновь.
Кстати при работе с firebird очень полезная вещь - рестарт сервера firebird (службы, естественно), так как например изменения в индексировании таблиц (добавление/удаление индексов) не применятся пока оно не перезапустится))

Кстати, вопрос к топикстартеру)) Игорь, а если в других таблицах поле администратором создать, тоже ругается?

ООО "Лайнсервис"
www.ls-crm.ru

"Швец Александр Васильевич" написал:У меня похожая проблема при сохранении таблицы Продукт

unsuccessful metadata update
object vw_Offering is in use
This operation is not defined for system tables.
Error Code: 31
EXECUTE PROCEDURE "tsp.AdministratedByRecords" :TableName, :RightTableName, :TableViewName, :RightTableViewName, :Enabled, :IsLogTable


Александр, данное сообщение означает,что Вы не можете пересохранить таблицу, так как tbl_Offering (таблица продуктов) используется.
Это является особенностью СУБД Firebird, что пересохранение таблиц возможно при подключении только одного пользователя с правами системного администратора - SYSDBA. Для решения проблемы, попробуйте добавлять поля, когда никто из пользователей не подключен к БД, под пользователем SYSDBA.

Terrasoft Support Team

"support" написал:Александр, данное сообщение означает,что Вы не можете пересохранить таблицу, так как tbl_Offering (таблица продуктов) используется.
Это является особенностью СУБД Firebird, что пересохранение таблиц возможно при подключении только одного пользователя с правами системного администратора - SYSDBA. Для решения проблемы, попробуйте добавлять поля, когда никто из пользователей не подключен к БД, под пользователем SYSDBA.

Terrasoft Support Team


Спасибо за ответ, причина верна, но всё не так просто...
На сервере зависло 2е подключение при одновременном использовании админки и пользовательской платформы.
Перезагрузка ПК, и открытие только админчасти(1 SYSDBA, при том что с базой работаю только я) - не спасает.
Необходима была перезагрузка сервера firebird
"Александр Кудряшов" написал:Кстати при работе с firebird очень полезная вещь - рестарт сервера firebird (службы, естественно), так как например изменения в индексировании таблиц (добавление/удаление индексов) не применятся пока оно не перезапустится))

Ещё раз спасибо за ответы.

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