Все доброго времени суток. Столкнулся с проблемой добавления ангуляр компоненты в Creatio.

Реализовал по примеру как описано в статье Изображение удалено.

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

В чем может быть проблема?

Нравится

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

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

2 Перед сборкой проверьте что у вас нет свойства bootstrap в app module

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

Коллеги всем доброго времени суток.

Наблюдаю следующую проблему. После разворачивания приложения On-site и выполнения компиляции возникают следующие ошибки.

 

Build CaptureOutput - System.UnauthorizedAccessException: Access to the path 'c:\windows\system32\inetsrv\NuGet\Migrations' is denied.
2023-02-07 02:27:29,403 [82] INFO IIS APPPOOL\Dev Build CaptureOutput -    at System.IO.FileSystem.CreateDirectory(String fullPath, Byte[] securityDescriptor)
2023-02-07 02:27:29,403 [82] INFO IIS APPPOOL\Dev Build CaptureOutput -    at System.IO.Directory.CreateDirectory(String path)
2023-02-07 02:27:29,403 [82] INFO IIS APPPOOL\Dev Build CaptureOutput -    at NuGet.Common.Migrations.MigrationRunner.GetMigrationsDirectory()
2023-02-07 02:27:29,403 [82] INFO IIS APPPOOL\Dev Build CaptureOutput -    at NuGet.Common.Migrations.MigrationRunner.Run()
2023-02-07 02:27:29,403 [82] INFO IIS APPPOOL\Dev Build CaptureOutput -    at Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.Configure()
2023-02-07 02:27:29,403 [82] INFO IIS APPPOOL\Dev Build CaptureOutput -    at Microsoft.DotNet.Cli.Program.ConfigureDotNetForFirstTimeUse(IFirstTimeUseNoticeSentinel firstTimeUseNoticeSentinel, IAspNetCertificateSentinel aspNetCertificateSentinel, IFileSentinel toolPathSentinel, Boolean isDotnetBeingInvokedFromNativeInstaller, DotnetFirstRunConfiguration dotnetFirstRunConfiguration, IEnvironmentProvider environmentProvider, Dictionary`2 performanceMeasurements)
2023-02-07 02:27:29,403 [82] INFO IIS APPPOOL\Dev Build CaptureOutput -    at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, TimeSpan startupTime, ITelemetry telemetryClient)
2023-02-07 02:27:29,403 [82] INFO IIS APPPOOL\Dev Build CaptureOutput -    at Microsoft.DotNet.Cli.Program.Main(String[] args)
2023-02-07 02:27:29,403 [124] INFO IIS APPPOOL\Dev Build BuildInternalNetStandard - WorkspaceCompiler.Build finished at 00:00:06.7546725
2023-02-07 02:27:29,403 [124] INFO IIS APPPOOL\Dev Build BuildInternalNetStandard - Время компиляции: 00:00:06.7550266

c:\windows\system32\inetsrv\NuGet\Migrations - данной директории нет на пк. Пробовал создать и раздать права - без изменений ошибка воспроизводится.

Кто ни будь сталкивался с подобной проблемой и как  ее решить?

Благодарю!

Нравится

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

Проблема была в dotnet 7. После удаления sdk и runtime - ошибка ушла.

корректно работает со следующими библиотеками:

3.1.301 [C:\Program Files\dotnet\sdk]

6.0.405 [C:\Program Files\dotnet\sdk]



Microsoft.AspNetCore.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]

Microsoft.AspNetCore.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]

Microsoft.AspNetCore.App 6.0.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]

Microsoft.NETCore.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Microsoft.NETCore.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Microsoft.NETCore.App 6.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Microsoft.WindowsDesktop.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Microsoft.WindowsDesktop.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Microsoft.WindowsDesktop.App 6.0.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]  

Не так давно столкнулся с такой же проблемой, решил ее созданием пути руками

c:\windows\system32\inetsrv\NuGet\Migrations

и дал ему права доступа для пользователя. Больше данной ошибки не было

Можно добавить, что если в настроках пула в IIS установлено Identity = ApplicationPoolIdentity, то на уровне файловой системы для папки "c:\windows\system32\inetsrv\NuGet\Migrations" нужно давать доступ на чтение и изменение для роли IIS_IUSRS. Это решение помогло устранить проблему.

Тоже столкнулся с этой проблемой. Долго не понимал в чём проблема.

Создал папку c:\windows\system32\inetsrv\NuGet\Migrations, раздал на неё полный доступ - не помогло.

Удалил dot.net 7 - не помогло.

Удалил Visual Studio 2022 - проблема исчезла.

Поставил заново Visual Studio 2022, с которой заново установился dot.net 7 - ошибок при компиляции уже не было.

Не знаю, что произошло и почему исчезли ошибки. Заметил только одно, что после установки винды я сразу же поставил Visual Studio 2022, а уже после все необходимые компоненты для разворачивания сайта, а не наоборот, как я делал ранее

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

Добрый день. есть вот такой пример запроса.

Изображение удалено.

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

в результате он генерирует следующий SQL запрос который не совсем подходит, так как он возвращает запись которая была возвращена в прошлой выборке (я вытаскиваю данные по 10 записей).

Изображение удалено.

пример запроса, который создается

SELECT
       "Contact"."Name" "Name",
       "Contact"."QSoftGSTime" "QSoftGSTime",
       "Contact"."ContactPhoto" "ContactPhoto",
       "Contact"."Phone" "Phone",
       "Contact"."CreatedOn" "CreatedOn",
       COALESCE("SysCityLcz"."Name", "City"."Name") "City.Name"
FROM
       "public"."Contact" "Contact"
       LEFT OUTER JOIN "public"."City" "City" ON ("City"."Id" = "Contact"."CityId")
       LEFT OUTER JOIN "public"."SysCityLcz" "SysCityLcz" ON ("SysCityLcz"."RecordId" = "City"."Id"
       AND "SysCityLcz"."SysCultureId" = '{F0EA9715-8757-474C-AEE9-743D672E48C9}')
WHERE
       "Contact"."CreatedOn" > TO_TIMESTAMP('2023-02-06 21:21:02.149', 'YYYY-MM-DD HH24:MI:SS.FF3')
ORDER BY
       "CreatedOn" ASC NULLS FIRST
LIMIT 10

получается что при выборке данных проверяется только первые три цифры из милисекунд ('2023-02-06 21:21:02.149', 'YYYY-MM-DD HH24:MI:SS.FF3'). в итоге я получаю два раза одну и ту же запись. решение это указывать все 6 цифр милисекунд следующий запрос выполняется корректно и не приводит к дублированию данных

SELECT
       "Contact"."Name" "Name",
       "Contact"."QSoftGSTime" "QSoftGSTime",
       "Contact"."ContactPhoto" "ContactPhoto",
       "Contact"."Phone" "Phone",
       "Contact"."CreatedOn" "CreatedOn",
       COALESCE("SysCityLcz"."Name", "City"."Name") "City.Name"
FROM
       "public"."Contact" "Contact"
       LEFT OUTER JOIN "public"."City" "City" ON ("City"."Id" = "Contact"."CityId")
       LEFT OUTER JOIN "public"."SysCityLcz" "SysCityLcz" ON ("SysCityLcz"."RecordId" = "City"."Id"
       AND "SysCityLcz"."SysCultureId" = '{F0EA9715-8757-474C-AEE9-743D672E48C9}')
WHERE
       "Contact"."CreatedOn" > TO_TIMESTAMP('2023-02-06 21:21:02.149528', 'YYYY-MM-DD HH24:MI:SS.FF6')
ORDER BY
       "CreatedOn" ASC NULLS FIRST
LIMIT 10

я не нашел способа управлять количеством цифр милисекунд в запросе.

можете подсказать как это правильно сделать?

пока что как хак я решил генерировать запрос с помощью EntitySchemaQuery, делать esqResult.GetSelectQuery(_connection), с него получать текст запроса и в нем уже подменять значения с помощью регулярки. но это выглядит костылем, который не хотелось бы оставлять.

 

спасибо!

 

 

 

 

Нравится

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

добавлю, что когда пробовал делать через new Select(connection), то такой проблемы не было, но тогда надо вручную управлять локализацией и делать джоины, чего не хотелось бы делать.

так же регулярное выражение может не работать для других типов БД. в данный момент используется PostgreSql

Добрый день,

 

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

а можете подсказать как работать с встроенным механизмом постраничной обработки? пример или ссылка на статью. спасибо!

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

Есть несколько страниц раздела, по справочнику выполняется переход не на ту страницу.

Подскажите, пожалуйста, как поправить эту проблему.

Нравится

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

Добрый день,



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

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

Підкажіть будьласка, чи можна 7.18.5.1500 оновити до 8.0.6.3429?

І якщо так, то де можна почитати про це?

Нравится

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

Добрий вечір!

 

Так, Ви можете оновити сайт з версії на версію покроково як описано в цій статті: https://academy.creatio.com/docs/release/update-guide/update-guide



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

 

З повагою,

Юлія Гриценко

Добавить комментарий

Юлія Гриценко,

Добре, буду писати, пробував оновити за допомогою UpdaterService, але він ніби як тільки до 7.18.5.1500 оновлює.

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

Здравствуйте! На скриншоте показана кнопка по которой открывается страница справочника, как добавить такую же в другой справочник? 

Прикрепленные файлы

Нравится

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

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

 

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

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

Добрый день.

Столкнулся с проблемой обновления на 7.18.1.

Проблема заключается в том, что при отключении ODataEntities с помощью скрипта Set-AppSettingInWebConfig обрезается "\" ,если указан путь на удаленную машину.

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

https://community.creatio.com/questions/error-while-updating-7180-7181

 

Возможно что-то с этим сделать, кроме как обновлять на сервере, где установлено приложение?

 

Спасибо!

 

Прикрепленные файлы

Нравится

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

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

 

Обновление необходимо запускать на сервере, на котором размещено приложение.  

 

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

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

Добрый день коллеги, при загрузке раздела дважды возникает ошибка

 

Заголовок для подписи "SymptomsFieldContainer1" не был найден.

Невозможно найти колонку по конфигурации: "{"layout":{"colSpan":24,"rowSpan":1,"column":0,"row":2},"name":"SymptomsFieldContainer1"}" .

 

SymptomsFieldContainer1 это поле типа контейнер для того, чтобы было реализовано новое поле по типу "Описание".

Оно было добавлено в замещающей странице CasePage

{
	"operation": "insert",
	"name": "SymptomsFieldContainer1",
	"values": {
		"layout": {
			"column": 0,
			"row": 2,
			"colSpan": 24,
			"rowSpan": 1,
			"layoutName":"Header"
		},
		"wrapClass": [
			"control-width-15 control-left solution-field-container"
		],
		"itemType": 7,
		"items": []
	},
	"parentName": "CaseInformation_gridLayout",
	"propertyName": "items",
},

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

Изображение удалено.

При этом CasePage является родительской для всех Page в данном разделе.

Ошибка не возникает на других двух схемах, но при этом видимо конфликтует с старыми.

Нравится

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

Добрый день,

 

Попробовал добавить этот контейнер на демку - никаких ошибок нет. Кроме того, Вы уверены, что у страниц редактирования из Вашего скриншота родитель CasePage, а не BaseModulePageV2 (стандартная для типизированных страниц). Или была дополнительная кастомизация и родитель у страниц менялся? Если так, то можно получить полный код одной из страниц редактирования, открытие которой возвращает ошибку и еще как она влияет на работу сайта помимо того, что контейнер не отображается?

Добавить комментарий

Oleg Drobina,

Спасибо за ваш ответ, визуально проблем выявлено не было, но само наличие ошибки смущает.

Родительская страница у всех CasePage, но при реализации кастомного пакета, этот CasePage был замещен и в нём реализован новый контейнер, прикрепляю код данной страницы

define("CasePage", [], function() {
	return {
		entitySchemaName: "Case",
		attributes: {},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{
			"FileDetailV2fe3b2d92": {
				"schemaName": "FileDetailV2",
				"entitySchemaName": "CaseFile",
				"filter": {
					"detailColumn": "Case",
					"masterColumn": "Id"
				}
			},
			"KnowledgeBaseInCaseDetailfca68878": {
				"schemaName": "KnowledgeBaseInCaseDetail",
				"entitySchemaName": "KnowledgeBaseInCase",
				"filter": {
					"detailColumn": "Case",
					"masterColumn": "Id"
				}
			},
			"VisaDetailV218d4bda2": {
				"schemaName": "VisaDetailV2",
				"entitySchemaName": "ITdsCaseVisa",
				"filter": {
					"masterColumn": "Id",
					"detailColumn": "ITdsCase"
				}
			}
		}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {},
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "ReclassificationButton",
				"values": {
					"itemType": 5,
					"caption": {
						"bindTo": "Resources.Strings.ReclassificationButtonCaption"
					},
					"click": {
						"bindTo": "onReclassificationButtonClick"
					},
					"enabled": true,
					"visible": true,
					"style": "red",
					"layout": {
						"column": 1,
						"row": 6,
						"colSpan": 1
					}
				},
				"parentName": "LeftContainer",
				"propertyName": "items",
				"index": 10
			},
			{
				"operation": "insert",
				"name": "TestButton1",
				"values": {
					"itemType": 5,
					"caption": "Test",
					"click": {
						"bindTo": "onTestButtonClick1"
					},
					"enabled": true,
					"visible": false,
					"style": "yellow",
					"layout": {
						"column": 1,
						"row": 6,
						"colSpan": 1
					}
				},
				"parentName": "LeftContainer",
				"propertyName": "items",
				"index": 11
			},
			{
				"operation": "insert",
				"name": "NegotiationButton1",
				"values": {
					"itemType": 5,
					"caption": {
						"bindTo": "Resources.Strings.NegotiateButtonCaption1"
					},
					"click": {
						"bindTo": "onNegotiationButtonClick1"
					},
					"enabled": {
						"bindTo": "isNegotiatorSet1"
					},
					"visible": {
						"bindTo": "isNegotiatorSet1"
					},
					"style": "green",
					"layout": {
						"column": 1,
						"row": 6,
						"colSpan": 1
					}
				},
				"parentName": "LeftContainer",
				"propertyName": "items",
				"index": 12
			},
			{
				"operation": "remove",
				"name": "Symptoms"
			},
			{
				"operation": "insert",
				"name": "SymptomsFieldContainer",
				"values": {
					"layout": {
						"column": 0,
						"row": 1,
						"colSpan": 24,
						"rowSpan": 1
					},
					"wrapClass": [
						"control-width-15 control-left solution-field-container"
					],
					"itemType": 7,
					"items": []
				},
				"parentName": "CaseInformation_gridLayout",
				"propertyName": "items",
			},
			{
				"operation": "insert",
				"name": "Symptoms",
				"values": {
					"itemType": 3,
					"dataValueType": 1,
					"contentType": 4,
					"value": {
						"bindTo": "Symptoms"
					},
					"markerValue": "Symptoms",
					"labelConfig": {
						"visible": false
					},
					"controlConfig": {
						"imageLoaded": {
							"bindTo": "onImageLoaded"
						},
						"imagePasted": {
							"bindTo": "onImagePasted"
						},
						"plainTextValue": {
							"bindTo": "NotHtmlNote"
						},
						"images": {
							"bindTo": "Images"
						},
						"plainTextMode": {
							"bindTo": "plainTextMode"
						}
					}
				},
				"parentName": "SymptomsFieldContainer",
				"propertyName": "items"
			},
			{
				"operation": "move",
				"name": "ESNTab",
				"parentName": "Tabs",
				"propertyName": "tabs"
			},
			{
				"operation": "move",
				"name": "TimelineTab",
				"parentName": "Tabs",
				"propertyName": "tabs",
				"index": 3
			},
			{
				"operation": "insert",
				"propertyName": "tabs",
				"parentName": "Tabs",
				"name": "Tabf1d4d2a9TabLabel",
				"values": {
					"caption": {
						"bindTo": "Resources.Strings.TabVisaCaption"
					},
					"items": []
				}
			},
			{
				"operation": "insert",
				"propertyName": "items",
				"parentName": "Tabf1d4d2a9TabLabel",
				"name": "VisaDetailV218d4bda2",
				"values": {
					"itemType": 2,
					"markerValue": "added-detail"
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

 

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

Добрый день.

 

раньше создавал обычные пакеты для проектов, в которых после создания обьекта генерировались соответствующие обьекты в проекте Terrasoft.Configuration (Autogenerated\Src папка). Таким образом можно было удобно их использовать в своих целях при написании c# кода.

Изображение удалено.

все что начинается на QSoft... это были наши обьекты.

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

Поддерживается ли генерация исходников в таком случае? Где их найти? может необходимо теперь делать ссылку на библиотеку?

 

Спасибо

Прикрепленные файлы

Нравится

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

Добрый день!

Если не ошибаюсь, вы говорите о механизме пакета-сборки.

В таком случае файлы пакета будут находиться по пути \Terrasoft.WebApp\Terrasoft.Configuration\Pkg\[Имя пакета].

В любом случае используйте поиск по папкам находясь внутри Terrasoft.Configuration на необходимые вам исходники дабы точно определить их местоположение.

добрый вечер!

да, я о механизме пакета-сборки.

спасибо за ответ и извините за столь долгий ответ с моей стороны. я веду разработку в .NET Core версии приложения на Linux (докер). 

после компиляции приложения в получаю примерно пакет, который прикрепил к запросу (содержимое частично удалено, но основная структура сохранена). в нем нету .cs файлов с исходным кодом для обьектов. и это сильно мешает. иногда файлы создаются, но они пустые (0 байт размер).

в чем может быть причина? доступ к папке вероятно есть, так как остальные файлы создают отлично и без проблем. может это быть связано с конфигурацией проекта/пропущенной настройкой? 

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

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

Добрый день, интересует следующий вопрос - надо ли добавлять файлы из Files/obj/ папки в пакет? И стоит ли их коммитить в Git?

Как я понимаю это всего лишь временные файлы для компиляции проекта, и в пакет их включать не обязательно. Главное, чтоб там были библиотеки. 

 

Изображение удалено.

Спасибо!

Нравится

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

Добрый день.



Все верно, файлы из Files/obj/ временные и их можно удалить.

Добрый день.



Все верно, файлы из Files/obj/ временные и их можно удалить.

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