Здравствуйте.
Уточните вопрос, деталей с типом справочник не существует. Вам нужно существующее поле с типом справочник заменить на строковое? Т.е. Вам нужна инструкция как удалять поле и как добавлять его, а также как выполнить UPDATE поля в базе данных (т.к. справочное поле хранит в себе идентификатор записи из справочника, а текстовое поле собственно сам текст)? Или вы что то другое имели ввиду?
Дмитрий, здравствуйте.
Вы правильно поняли. Поле удалить я могу. Но корректно добавить строковое поле не получается.
Думаю лучше будет создать новое строковое поле, а не обновлять текущее.
1. Добавить в сервисе таблицы (tbl_Table) строковое поле.
2. Добавить колонку в сервисе выборки данных с таблицы (sq_Table)
3. Добавить поле в набор данных (ds_Table)
4. Добавить строковое поле (TextDataControl) в нужное вам место в карточку редактирования (wnd_Table) и там слева внизу в окне свойств для поля будет два свойства - DatasetLink заполняете как dlData, DatafieldName - как то поле которое вы добавили на шаге 1.
А вообще в руководстве администратора есть более подробная инструкция со скриншотами на каждый шаг.
Посмотрите в окне реестра wnd_TableGrid список колонок выведенных в реестр. Скорее всего вы какую то колонку таки удалили с таблицы и датасета, а в реестре ссылка на неё осталась.
Добрый день. Поставили Terrasoft CRM. Настроили. Есть несколько проблем:
1. Возникла необходимость добавить поле в карточке контрагента (Дополнительный контакт). Подскажите, насколько сложно и как это сделать?
2. Можно ли "прикрутить" к Террасофту адресный классификатор. Пользователи вводят данные по Местоположению кому как заблагорассудится. В результате получается каша (дублируются территории, города, страны, регионы).
Заранее благодарю за ответы.
Это существенная доработка: несколько новых таблиц, карточка ввода адреса, синхронизация с базой КЛАДРа (хотя бы разовая) и тому подобное. Скажем так, намного сложнее, чем поле добавить.
Один из вариантов реализации:
Такое могут сделать под заказ специально обученные люди из 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"?
Действительно, ввел в поиске Контакт и получил список. Только теперь опять проблема: какой бы из Контактов я ни выбирал (Контакт - 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. Возможно дело в репликации которая не так давно проводилась.
Помогите пожалуйста.
Добрый день
похоже у Вас просто есть зависимость от поля 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
В 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 forsystem tables.
Error Code:31
EXECUTE PROCEDURE "tsp.AdministratedByRecords":TableName, :RightTableName, :TableViewName, :RightTableViewName, :Enabled, :IsLogTable
"Березович Сергей" написал:попробуйте добавить нужное Вам поле через "Пользовательские поля"
жесть))
я бы предложил вернуть старый вариант сервиса из "коробочной" базы, потом рестарт firebird и попробовать создать вновь.
Кстати при работе с firebird очень полезная вещь - рестарт сервера firebird (службы, естественно), так как например изменения в индексировании таблиц (добавление/удаление индексов) не применятся пока оно не перезапустится))
Кстати, вопрос к топикстартеру)) Игорь, а если в других таблицах поле администратором создать, тоже ругается?
"Швец Александр Васильевич" написал:У меня похожая проблема при сохранении таблицы Продукт
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.
"support" написал:Александр, данное сообщение означает,что Вы не можете пересохранить таблицу, так как tbl_Offering (таблица продуктов) используется.
Это является особенностью СУБД Firebird, что пересохранение таблиц возможно при подключении только одного пользователя с правами системного администратора - SYSDBA. Для решения проблемы, попробуйте добавлять поля, когда никто из пользователей не подключен к БД, под пользователем SYSDBA.
Terrasoft Support Team
Спасибо за ответ, причина верна, но всё не так просто...
На сервере зависло 2е подключение при одновременном использовании админки и пользовательской платформы.
Перезагрузка ПК, и открытие только админчасти(1 SYSDBA, при том что с базой работаю только я) - не спасает.
Необходима была перезагрузка сервера firebird
"Александр Кудряшов" написал:Кстати при работе с firebird очень полезная вещь - рестарт сервера firebird (службы, естественно), так как например изменения в индексировании таблиц (добавление/удаление индексов) не применятся пока оно не перезапустится))