Добрый день. Встречалась ли кому-нибудь такая ошибка при попытке установки пакетов через WorkspaseConsole? 

Лог ошибки:

Installing data
Error: Incorrect syntax near ')'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Terrasoft.Core.DB.DBExecutor.FailoverExecute[TResult](DbCommand command, Func`1 func)
   at Terrasoft.Core.DB.DBExecutor.Execute(String sqlText, QueryParameterCollection parameters)
   at Terrasoft.Core.DB.Query.Execute()
   at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.InstallWorkspaceFromRepository(String sourcePath, String destinationPath, String packageName)
   at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.InstallWorkspacesFromRepository(String sourcePath, String destinationPath, String packageName)
   at Terrasoft.Tools.WorkspaceConsole.WorkspaceConsoleApplication.Execute()
   at Terrasoft.Tools.Common.BaseConsoleApplication`2.Run(String[] args)

Скрипт запуска:

chcp 1251
SET IIS_NAME=Test
SET WS_NAME=Default
SET APP_WC_DIR=Z:\%IIS_NAME%\Terrasoft.WebApp\DesktopBin\WorkspaceConsole
 
SET CHECKOUT_PATH=C:\Workplaces\Kercher\Packages\DestinationPath
SET PKG_PATH=C:\Workplaces\Kercher\Packages\Create
SET LOG_PATH=C:\Workplaces\Kercher\Packages\Log
 
ECHO | %APP_WC_DIR%\Terrasoft.Tools.WorkspaceConsole.exe -packageName=KercherMain -workspaceName=%WS_NAME% -operation=InstallFromRepository -sourcePath=%PKG_PATH% -destinationPath=%CHECKOUT_PATH% -continueIfError=true -logPath=%LOG_PATH% -regenerateSchemaSources=true -updateDBStructure=true -installPackageData=true -installPackageSqlScript=true
 
pause

Само приложение находится на другом сервере. На диск Z замаплен путь к приложению.

Нравится

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

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

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

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

Добрый день, коллеги.

Кто-нибудь встречался с проблемой переноса функциональности между стендами? Мне надо было в детали "Связи объекта системы" сделать 2 поля только для чтения. Эта деталь коробочная, формируется по значениям из справочника в БД. Клиентские схемы загружаются не напрямую, а при помощи модуля "SectionBundleModule". Я заместил схему EntityConnectionsDetailV2 в своём пакете и добавил свойство Ensbled = false. На моём стенде все заработало отлично. А при переносе на другой стенд схема перенеслась, но она не подгружается модулем SectionBundleModule.

define("EntityConnectionsDetailV2", ["terrasoft", "EntityConnectionsDetailV2Resources", "EntityConnectionViewModel",
	"ConfigurationItemGenerator", "BaseDetailV2", "EntityConnectionLinksUtilities"],
	function(Terrasoft) {
		return {
			methods: {
 
				/**
				 * Переопределил метод получения дефолтного конфига.
				 * Добавил условие для колонок Контакт и Контрагент.
				 */
				getDefaultItemConfig: function(columnName, dataValueType) {
					var defaultItemConfig = this.callParent(arguments);
					if (columnName === "Contact" || columnName === "Account") {
						defaultItemConfig.controlConfig.enabled = false;
					}
					return defaultItemConfig;
				}
			}
		};
	});

 

Нравится

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

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

 

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

 

Сравните, совпадает ли на обеих системах наполнение в таблицах SysSchem и SysSchemaContent. Например, записи для «коробочной» схемы EntityConnectionsDetailV2 можно увидеть так:

select top 100 * from sysschema where name = 'EntityConnectionsDetailV2'
select top 100 * from SysSchemaContent where sysschemaid = '2CA8C908-28A3-4505-AE9A-69A2018E5467'--EntityConnectionsDetailV2

У Вас, соответственно, строк будет больше. При корректном переносе всё должно было автоматически перенестись и быть одинаковым. Возможно, есть ещё какие-то таблицы, где нужно было прописывать вручную. 

 

Также см. обсуждения похожих случаев.

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

День добрый. 

Требуется добавить Notes из продукта в печатную форму предложения (Содержит описание продукта и процедуру предоставления услуги).

Нигде не могу найти данный параметр для отображения в печатной форме. Подскажите логику? 

 

Нравится

2 комментария
Лучший ответ

У меня когда-то была подобная проблема - поле 'Notes' не отображалось в списке полей в форме настройки печатной формы.

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

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

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

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

Пробовали по родительскому объекту и из табличной части по связанному объекту (см. скриншоты ниже).

 

 

Перепроверьте наличие колонки в объекте.

Также рекомендуем ознакомиться с функционалом печатных форм - https://academy.terrasoft.ru/documents/administration/7-13/registraciya…

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

У меня когда-то была подобная проблема - поле 'Notes' не отображалось в списке полей в форме настройки печатной формы.

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

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

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

Использую onEntityInitialized:

methods: {
            onEntityInitialized: function() {
                this.setFinishDate();
            },
            
            setFinishDate: function() {
                    var finishDate = new Date();
                    finishDate.setFullYear(finishDate.getFullYear()+1);
                    this.set("UsrFinishDate", finishDate);
            }
        },

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

Нравится

1 комментарий
Лучший ответ

В конце onEntityinitialized добавить this.callParent(arguments);

В конце onEntityinitialized добавить this.callParent(arguments);

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

Здравствуйте, в детали [Амбулаторная карточка] есть поле [ФИО Врача] и поле [Специализация Врача]. Нужно вывести [Специализацию Врача] из установленного поля [Фио Врача]. Врач-это контакт и у него уже есть поле Специализации. Везде описывают кейс с числовыми значениями, но вывод из БД нигде нет. Буду очень благодарен, если подскажите.

Нравится

4 комментария
Лучший ответ

Все можно проще сделать укажите чтоб для доктора вычитывались колонки ФИО и Специлизация и используйте их!

"UsrDoctor": {
  lookupListConfig: {
   columns: ["FIO","UsrDoctorsSpecialization"]
  }
 },

После єтого можно обращатся к полю как UsrDoctor.UsrDoctorsSpecialization

Если я правильно понял, то надо сделать вот так:

attributes: {
//Здесь мы "смотрим" внутрь справочного поля [UsrDoctor], которое ссылается на раздел [Контакты]
//и ищем там специализацию [UsrDoctorsSpecialization]
 "UsrDoctor": {
  lookupListConfig: {
   columns: ["UsrDoctorsSpecialization"]
  }
 },
//Здесь мы вызываем метод, который будет устанавливать специализацию, когда пользователь 
//внесет изменения в поле [UsrDoctor]
 "UsrDoctorsSpecialization": {
  dependencies: [
   {
    columns: ["UsrDoctor"],
    methodName: "setDoctorsSpecializtion"
   }
  ]
 }
},
methods: {
//собственно метод, который устанавливает специализацию в нужное поле
//условие можно и изящней написать. Сделал так, чтобы было понятно.
 setDoctorsSpecializtion: function() {
  var doctor = this.get("UsrDoctor");
  if (doctor) {
   if (doctor.UsrDoctorsSpecialization) {
    this.set("UsrDoctorsSpecialization", doctor.UsrDoctorsSpecialization);
   }
   else {
    this.set("UsrDoctorsSpecialization", null);
   }
  } 
  else {
   this.set("UsrDoctorsSpecialization", null);
  }
 }
},

 

Все можно проще сделать укажите чтоб для доктора вычитывались колонки ФИО и Специлизация и используйте их!

"UsrDoctor": {
  lookupListConfig: {
   columns: ["FIO","UsrDoctorsSpecialization"]
  }
 },

После єтого можно обращатся к полю как UsrDoctor.UsrDoctorsSpecialization

Григорий Чех,

Вау, почему в документации еще нет этого способа?:)

Есть:

lookupListConfig — свойство, отвечающее за свойства поля-справочника. Подробнее об использовании данного параметра можно узнать из статьи "Применение фильтрации к справочным полям". Это конфигурационный объект, который может содержать в себе следующие опциональные свойства:

  • сolumns — массив имен колонок, которые будут добавлены к запросу дополнительно к колонке Id и первичной для отображения колонке.
  • orders — массив конфигурационных объектов, которые определяют сортировку данных при отображении.
  • filter — метод, возвращающий объект класса Terrasoft.BaseFilter или его наследника, который, в свою очередь, будет применен к запросу. Не может использоваться совместно со свойством filters.
  • filters — массив фильтров (методов, возвращающих коллекции класса Terrasoft.FilterGroup). Не может использоваться совместно со свойством filter.
Показать все комментарии

Сорри за нубский вопрос!

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

Если уесть готовые примеры то киньте ссылку  плз.

Спасибо

Нравится

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

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

Для реализации описанной Вами бизнес-задачи Вы можете использовать функционал бизнес-процессов. Логика бизнес-процесса будет примерно следующая:
1. Начальный сигнал (Простой или добавление/изменение записи)
2. Читать данные объекта Контакт
3. Условный поток - формула - [Читать данные Контакт. Контрагент]==Guid.Empty
Если условие не выполняется
4. Необходимое Вам действие
Если условие выполняется
5. Отправка сообщения

Скриншот примера реализации: http://prntscr.com/jth3um

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

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

Нравится

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

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

Данное поведение может происходит из-за множества причин:

1. Изменение настроек почтового ящика и провайдера;

2. Изменения логики работы процесса по отправке уведомлений.

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

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

Коллеги, посоветуйте, пожалуйста, какой формат даты и времени выбрать, чтобы иметь возможность вводить её в общепринятом виде dd.MM.yyyy?

Перепробовали очень многие, но на такой так и не нарвались (версии 7.8 и 7.11)

Нравится

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

Здравствуйте, Владимир!

Можете выбрать формат Russian (Russia). 

 

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

Добрый день, не могу установить значения системной настройки из кода, код отрабатывает без ошибок но значение на меняется, подскажите в чем может быть проблема, настройка не персональная и не кешируемая. Заранее благодарен.
Код установки значения:
 

 Terrasoft.Core.Configuration.SysSettings.SetDefValue(_userConnection, "CRMTMessagesOffset", _messageOffset);
_userConnection.ResetSettingsCache("CRMTMessagesOffset");

 

Нравится

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

Дмитрий, 

Следующий код работает:

//Установить значение системной настройки
Terrasoft.Core.Configuration.SysSettings.SetValue(UserConnection, "SysSettingsName","SysSettingsValue");
 
//Установить значение системной настройки без учета прав
Terrasoft.Core.Configuration.SysSettings.SetValue(UserConnection, UserConnection.RootAdminUnitGroupId, "SysSettingsName", "SysSettingsValue");

                                        

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

Каким образом изменить исполнителя проекта? В проекте изменить невозможно.

Нравится

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

Добрый день, Павел!

 

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

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