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

Нравится

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

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

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

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

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

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

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

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

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

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

Доброе время суток!

Платформа Terrasoft XRM Distribution 3.4.1.75 на MS SQL 2008 R2

Уважаемые форумчане, подскажите пожалуйста, перечитал много постов коммьюнити, но ответа не нашел.

Моя ситуация: В процессе разработки создаются справочники, разделы, правятся скрипты и т.д. Так как в этом деле я новичек, то неизбежно возникают ошибки (лишнего удалил или не того добавил.) Иногда после опытов невозможно запустить систему, приходится удалять все свои наработки, чтобы так сказать вернуться к исходному состоянию. Так вот вопрос в чем - как можно создать некую точку восстановления, чтобы при очередном сбое вернуться именно к этому месту, когда все работало. Т.е. при попытке написать какой-либо скрипт или что-то подобное заранее сохранить текущее состояние (конфигурацию, данные), а потом в случае сбоя вернуться к этому состоянию.
Желательно, чтобы данный метод сохранения и восстановления можно было как-то автоматизировать (может батник какой написать). Если данный вопрос обсуждался - ткните носом плиз, я не нашел полного описания.

Заранее благодарю!

Нравится

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

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

Посмотрите наш продукт, с его помощью можно не только видеть историю изменений и откатывать их при необходимости, но и еще всякие штуки делать :smile:
PVC

"Валерий Андрусик" написал:
Посмотрите наш продукт, с его помощью можно не только видеть историю изменений и откатывать их при необходимости, но и еще всякие штуки делать

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

Откат дело тонкое :smile:

Согласен с Валерием и PVC рекомендую, как давний его пользователь.

"Кретов А.Н." написал:не стандартно

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

"Александр Кудряшов" написал:
Стандартно это бэкап базы данных. Либо ручками сервисы выгружайте в файл перед правкой. Накосячите, загружайте предварительно сохраненную версию.

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

"Кретов А.Н." написал:Только бэкапа базы будет достаточно

Избыточный вариант. Полный бэкап базы на сервере. Накосячили - восстановили базу. Тяжелая артиллерия, но 100% гарантия. Понятно, что далеко вы так не уедете, после каждой ошибки откатываться и бэкапы делать перед каждой правкой, так никто не работает.

Облегченный вариант - сервис в администраторе - правый клик - сохранить в файл и правьте его потом. Ошиблись - восстановили сервис. Тоже неудобно - когда править будете не один, а 50 сервисов, запутаетесь.

"Александр Кудряшов" написал:
Тоже неудобно - когда править будете не один, а 50 сервисов, запутаетесь.

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

Спасибо за ответы!

"Кретов А.Н." написал:при создании раздела с помощью мастера

Перед этим бэкап полезнее, согласен :)

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

"Кретов А.Н." написал:
Валерий Андрусик пишет:

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

Спасибо, но это не вариант в данном случае, так как платно и не стандартно.

Должен же быть стандартный вариант решения, вопрос только в том какие компоненты и как сохранять.

PVC заметно удешевляет (и ускоряет) разработку

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

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

В качестве сервер БД используется MS SQL Server, поэтому я решил попробовать добавить в таблицу поле типа timestamp, которое обновляется при любом изменении записи. Но, естественно, столкнулся с проблемами:
1. При попытке добавления поля в эту таблицу и сохранение изменений в БД я получаю ошибку "cannot update timestamp column". Я не знаю, как Террасофт обновляет таблицы в БД на основании конфигурации, но выходит, что система пытается обновить поле, которое в конфигурации не описано.
2. Если выгрузить сервис такой таблицы в файл, а потом попытаться загрузить обратно, то получаю ошибку "Duplicate hash list entry ", где это идентификатор сервиса в конфигурации.

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

Нравится

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

Здравствуйте, Riptor.

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

Прошу уточнить, почему бы просто не добавить новое поле "Дата/время" через конфигурацию и писать данные в него, к примеру, триггером?

Добрый день, Андрей.

"Безродный Андрей" написал:почему бы просто не добавить новое поле "Дата/время" через конфигурацию и писать данные в него, к примеру, триггером?

Скорее всего так и придется сделать. Думал, что проще поле добавить в 3 десятка таблиц, чем триггеры. С другой стороны интересно, почему платформа Террасофт поля CreatedOn и ModifiedOn не заполняет в триггере. Производительность?

Riptor

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

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

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

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

Есть установщик Terrasoft Press 3.3.0.45. Поставлена задача поставить на комп с Win7 x64. Но установщик просит версию .Net Framework 3.5 Sp1. В самой ОС уже установлен Framework 3.5.1, который по идее включает в себя весь функционал нужной библиотеки, но установщик все равно требует 3.5.

Как же теперь быть? Утилиты проверки установки .Net показывают, что сбоев нет. Все обновления установлены.

Спасибо.

Нравится

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

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

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

Здравствуйте.
Дело в том, что Windows 7 не фигурирует среди декларируемых клиентских ОС для Terrasoft 3.3.0. Соответственно такое взаимодействие не проверялось. Рекомендую Вам обратиться в поддержку (support@terrasoft.ru) для решения вопроса.
Спасибо.

Спасибо за ответ. Буду писать в Support.

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

Здравствуйте! У нас не открывается Dataset ds_EmptyChangesLog. Нет запроса sq_EmptyChangesLog. Можно ли его восстановить? Версия 3.2.1.62.

Нравится

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

Версия террасофт 3.3.0
Сервер 2008R2
MS SQL Server 2012 Express
Клиенты работают в режиме сервера терминалов.
Разместили базу на SSD диске, однако, периодически наблюдается подвисание террасофта, монитор ресурсов показывает, что в этот момент система занимается чтением/записью в папки где находятся пользовательские данные типа %appdata%\Terrasoft\3.3.0\Cash, Profiles. Отсюда вопросы:
1. Если выбрать вариант хранение профиля в БД, там будут храниться все данные из папки с пользовательскими данными, или только данные из папки Profiles? И насколько такой вариант избавит от тормозов, если профили пользователей хранятся не на SSD диске?
2. Есть ли возможность хранить папки с пользовательскими данными где-то кроме %appdata%\Terrasoft\, в более поздних версиях есть настройка в файле runsetting.xml типа UserAppDataDirectory="", моем файле runsetting.xml такой настройки - нет.

Нравится

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

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

Здравствуйте.
1. Если выбрать хранение профиля в базе, то в таком случае туда будет помещаться только содержимое папки Profile. На предмет выигрыша в быстродействии однозначно сказать сложно. Здесь присутствует масса таких аспектов, как мощность клиентской машины, количество пользовательских настроек, фрагментация и скорость HDD, нагрузка на БД, оптимальность её структуры (например индексов) и т. д.. Этот механизм (возможность хранения профиля в разных местах) был создан скорее для возможности более гибких настроек. Например, если хранить профиль в базе, тогда пользователь не "привязан" к рабочему месту, но возрастёт нагрузка на базу.
2. В Вашей версии можно изменить только место хранения файла с настройками параметров подключения к базе (configs.xml). Параметр - UserSettingsDirectory.

Есть параметр UseCash в БД в таблице dbo.tbl_DatabaseInfo который я так понимаю отвечает за наличие кэширования ... так как у нас все работают в терминальном режиме на том же сервере, что и БД, особого смысла в размещении кэша на диске нет, тем более сейчас база находиться на SSD носителе... если я этот параметр обнулю?

Здравствуйте.
Действительно, значение поля "UseCache" определяет возможность кэширования данных. Данные кэша хранятся не в базе данных, а в директории профиля пользователя. Включённое кэширование позволяет сократить время отклика системы при однотипных действиях (например, при первом входе в раздел основная информация сохраняется в кэше и в дальнейшем минимизируется время выборки тех же данных).

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

Добрый день!
При авторизации Terrasoft XRM 3.x по TCP/IP (СУБД Firebird) возникает ошибка "Ошибка конфигурации. Лицензия для модуля не найдена". Пользователь sysdba. С локального ПК авторизация проходит. На удалённом проходит тестовое подключение. Лицензии конкурентные.
Заранее спасибо за помощь!

Нравится

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

Здравствуйте.
При авторизации с использованием конкурентных лицензий строка подключения должна визуально выглядеть точно так же, как и на той машине, с которой формировался запрос на лицензии. Допускаю, что у Вас база расположена на локальном компьютере и указан тип подключения "local". С такими настройками, соответственно, по сети подключиться не получится. Рекомендую указать на локальной машине подключение как по сети к самому себе (указать TCP/IP и свой IP). После чего перезаказать лицензии.

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

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

Нравится

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

Вопрос закрыт. Контрагента указал не того!

С конкурентными лицензиями вроде бы перезаказывать не надо.

Проверьте в разделе Администрирования, во вкладке Конкурентные лицензии, Разрешения на продукты лицензирования, разрешено ли данному пользователям или группам, куда они входит, использовать конкурентные лицензии.

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

Всем доброго дня!
Есть проблема: добавили память на сервер SQL, теперь периодическая загрузка ЦП 99-100%. Раньше памяти не было и проблемы не было. Как выяснить с чем связана проблема?

Нравится

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

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

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

"Резвов Роман" написал:обратить внимание на процессы

Добрый день, Роман! Один процесс занимает ресурс: sqlservr :-)

Не редки случаи, когда 100% загрузка ЦП SQL сервером происходит при блокировках. Ранее у вас узкое место было в системе ввода-вывода, а теперь в обработке самих данных. Внимательно смотрите какие части БД на каких дисках располагаются, например, TEMPDB, по умолчанию находится на диске С, а в этой базе происходят сортировки и создания временных таблиц. Эту базу лучше класть на RAID, а еще лучше на SSD. Так же, не маловажным моментом является сбор статистики и дефрагментация индексов, это нужно делать каждый день.

"Евгений Либин" написал:

какие части БД на каких дисках располагаются, например, TEMPDB

Евгений, добрый день!

Блокировки действительно частое явление, пока не думал что с ними делать.

Я правильно понимаю: что при добавлении оперативной памяти кардинально меняется "узкое место"?
TEMPDB как и лог базы црм реально лежат на c:\ а не на ssd как сама база! Надо всё вместе с логами на ssd закинуть?

Да, обязательно. Это одно из узких мест БД

Но будьте аккуратными, SSD имеет ограниченный ресурс, и если будет утеряна TEMPDB, то вы ничего не потеряете, а вот с файлами данных могут быть проблемы. Лучше саму базу на 10 RAID, а темповую базу на SSD.

А какой то монитор по процессу sqlservr существует, типа профайлера, но чтоб все действия сервера видны были? Чтобы наверняка определить в чем причина периодических (каждые 3-5 мин) уходов процессора в 100%

Есть монитор активности, там видно какие сессии что делают, есть активность по запросам, а вообще это работа для DBA, т.е. настройка и тюнинг БД.

Начните с простого,в 60% это помогает
1. tempdb на ссд
2 ежедневный ребилд индексов и сбор статистики.

Дальше нужно смотреть, может индексов не достаточно, может наоборот, слишком много.

"Евгений Либин" написал:Есть монитор активности, там видно какие сессии

Евгений, спасибо! Именно благодаря этой замечательной функции (подсказал доблестный админ) в mssms и нашел косячную процедуру, которая в джобе часто запускалась. А еще понял (так же благодаря админу), что параллелизм зло, поэтому
Max Degree of Parallelism = 4 (а лучше вооюще 2 поставить)!!!

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

Здравствуйте!
Можно ли сделать администрирование по записям для справочника в версии 3.2. Я пытался сделать для одного из своих справочников - не удалось. Выставил флаг "Администрирование по записям", занес права пользователей, но доступ пользователей к записям справочника стал невозможен несмотря на выставленные права, пока не убрал администрирование по записям, да и убрать удалось далеко не с первой попытки.

Нравится

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

Добрый день!

Во вложении находится руководство по настройке прав доступа на справочники.prava_dostupa_na_otdelnye_spravochniki.doc

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

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