Удалял рабочее место вместе с пакетом, и после этого начали возникать ошибки компиляции

Contact.BackReferences.Base.cs The type or namespace name 'UsrContractorFile' could not be found (are you missing a using directive or an assembly reference?) CS0246473

ContactType.BackReferences.Base.cs The type or namespace name 'UsrContacts' could not be found (are you missing a using directive or an assembly reference?) CS024638

FileType.BackReferences.Base.cs The type or namespace name 'UsrContractorFile' could not be found (are you missing a using directive or an assembly reference?) CS0246188



Как решить эту проблему?

Нравится

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

Добрый день!

Попробуйте сначала выполнить полную генерацию системы, а после полную компиляцию. 

Если на элементах есть ошибки требующие установки или обновления БД, то нужно по каждому элементу провести установку, а потом выполнить компиляцию

 

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

Добрый день!

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

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

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

Ещё бы и группировать логически. Особенно для объектов типа Договор, Контрагент и т.п., где много колонок - общие, финансовые условия, сроки, средства связи и адреса...

Добрый день!



В данный момент в новом интерфейсе конфигурации нет данной  возможности

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

Я прикрепила Ваше обращение к существующему пожеланию, с целью повысить его приоритет.

 

С уважением Виталина,

Оператор

Группа компаний Terrasoft

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

Доброго времени суток!

Столкнулся с такой ситуацией. Для справочного поля в sql-запросе select через left join я выходил на "Название" значения (вместо айди, которое по умолчанию). Но, как выяснилось с помощью "Sys{объект}Lcz", отображались в запросе значения из другой локализации справочника, не "ru-RU". И на данный момент установлено у меня 2 локализации: RU и EN.



Вопрос. Можно ли как-то избавится от иной локализации вовсе, оставив русскую соответственно? Ну или убрать для уже существующих в системе объектов иную локализацию?

П.с. Мои коллеги подсказали, что, убрав локализацию, это повысило бы чутка быстродействие системы.

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

Нравится

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

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

 

Их можно выключить, отключив признак "активный". Это, а также список всех языков в системе можно увидеть в Languages разделе в дизайнере системы. 

Я бы не рекомендовал удалять английскую культуру, это может за собой повлечь проблемы в работе системы, которые сразу сложно предугадать. К тому же, в приложении почти всё завязывается на анг. культуру. Если бы речь шла об удалении Испанского или Иврита, то последствий было бы меньше или вовсе никаких. 

Скрипты есть, но выполнять их стоит на свой страх и риск. Скрипт удаляет все языки, которые не используются в профиле пользователей и который не является основным. 

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

 

IF OBJECT_ID('tempdb..#UsedCultures') IS NOT NULL

       DROP Table #UsedCultures

-- Получение списка используемых культур

SELECT DISTINCT cult.Id

INTO #UsedCultures

FROM SysCulture cult

INNER JOIN SysAdminUnit au

       ON au.SysCultureId = cult.Id

INSERT INTO #UsedCultures

    (Id)

SELECT

    SysSettingsValue.GuidValue

FROM

    SysSettingsValue

INNER JOIN SysSettings

    ON SysSettings.Id = SysSettingsValue.SysSettingsId

WHERE

    SysSettings.Code = 'PrimaryCulture'

-- Получение списка таблиц, из которых нужно удалять данные

DECLARE TableNamesCursor CURSOR FOR

SELECT

        t3.TABLE_NAME AS ChildTableName  

FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS t1 

        INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS t2 ON t1.UNIQUE_CONSTRAINT_NAME = t2.CONSTRAINT_NAME

        INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS t3 ON t1.CONSTRAINT_NAME = t3.CONSTRAINT_NAME

WHERE

       t2.TABLE_NAME = 'SysCulture'

       and t2.COLUMN_NAME = 'Id'

       and t3.COLUMN_NAME = 'SysCultureId'

DECLARE @TableName SYSNAME

OPEN TableNamesCursor

FETCH NEXT FROM TableNamesCursor INTO @TableName

WHILE @@FETCH_STATUS = 0  

BEGIN  

       PRINT @TableName

       DECLARE @Sql NVARCHAR(MAX);

       SET @Sql = 'DELETE FROM ' + @TableName + '

            WHERE SysCultureId NOT IN (SELECT Id FROM #UsedCultures)';

       PRINT @Sql

       EXECUTE sp_executesql @Sql

       FETCH NEXT FROM TableNamesCursor INTO @TableName

END

CLOSE TableNamesCursor

DEALLOCATE TableNamesCursor

DELETE FROM SysCulture

WHERE Id NOT IN (SELECT Id FROM #UsedCultures)

IF OBJECT_ID('tempdb..#UsedCultures') IS NOT NULL

       DROP Table #UsedCultures

K.Ivan,

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



Нет, удалять англ. культуру не собираемся.



Проблема в том, что меняются данные в таблице локализации, а не в таблице справочника.

Не подскажете, как обеспечить сохранение данных в справочнике, а не в таблице локализации? Или как привязать таблицу локализации объекта к пакету?



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

Английскую культуру деактивировать полностью невозможно, серый чекбокс - это нормальное поведение. 

 

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

Доброго дня коллеги, а есть такой скрипт для PostgreSQL?

Носуля Роман Викторович,



Роман, добрый день!

 

BEGIN;

-- Получение списка используемых культур

CREATE TEMP TABLE "UsedCultures" ON COMMIT DROP AS

SELECT DISTINCT cult."Id"

FROM "SysCulture" cult

INNER JOIN "SysAdminUnit" au

ON au."SysCultureId" = cult."Id";

INSERT INTO "UsedCultures" ("Id")

SELECT "SysSettingsValue"."GuidValue"

FROM "SysSettingsValue"

INNER JOIN "SysSettings"

ON "SysSettings"."Id" = "SysSettingsValue"."SysSettingsId"

WHERE "SysSettings"."Code" = 'PrimaryCulture';

-- Получение списка таблиц, из которых нужно удалять данные

DO $$

DECLARE

TableNamesCursor REFCURSOR;

TableName varchar;

BEGIN

OPEN TableNamesCursor FOR

SELECT kcu.TABLE_NAME

FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu

INNER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc

ON ccu.CONSTRAINT_CATALOG = rc.UNIQUE_CONSTRAINT_CATALOG

AND ccu.CONSTRAINT_SCHEMA = rc.UNIQUE_CONSTRAINT_SCHEMA

AND ccu.CONSTRAINT_NAME = rc.UNIQUE_CONSTRAINT_NAME

INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu

ON kcu.CONSTRAINT_CATALOG = rc.CONSTRAINT_CATALOG

AND kcu.CONSTRAINT_SCHEMA = rc.CONSTRAINT_SCHEMA

AND kcu.CONSTRAINT_NAME = rc.CONSTRAINT_NAME

WHERE ccu.COLUMN_NAME = 'Id'

AND ccu.TABLE_SCHEMA = 'public'

AND ccu.TABLE_NAME = 'SysCulture';

--Удаление локализаций

LOOP

FETCH TableNamesCursor INTO TableName;

EXIT WHEN TableName IS NULL;

RAISE NOTICE 'Deleting from table %', TableName;

EXECUTE format('DELETE FROM %I WHERE "SysCultureId" NOT IN (SELECT "Id" FROM

"UsedCultures")', TableName);

END LOOP;

CLOSE TableNamesCursor;

END $$;

DELETE FROM "SysCulture"

WHERE "Id" NOT IN (SELECT "Id" FROM "UsedCultures");

COMMIT

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

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

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

Сперва не напрягало, но постепенно стало надоедать. Месяц спора с техподдержкой ни к чему не провел, кроме того что в версии 7.16.2. будет новый конфигуратор. И вот сегодня прорыв! нашел причину и как решить. 

Все дела в использовании устаревающего метода. до версии 88 Chome  ошибку можно  решить внеся в реестр следующее:

Раздел реестра: HKEY_LOCAL_MACHINE или HKEY_CURRENT_USER
Путь: Software\Policies\Google\Chrome
Параметр: AllowSyncXHRInPageDismissal
Тип: REG_DWORD
Значение: 1.

Я внес в обе части реестра и теперь у меня все работает как на старых версиях браузера. Может кому пригодится, ну и ждем версию 7.16.2.

Нравится

Поделиться

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

Спасибо! Столкнулся с этим больше года назад, в Chrome 73.0.3683.103. Не знал, что есть параметр, или его добавили уже потом. Сейчас актуальная версия Chrome 83, до 88 времени немного, но есть.

 

Перестали сохраняться настройки разделов в интерфейсе 5.Х: например, ширина и набор колонок, выбранная деталь и прочее.

Это особенно существенно в версии 5.Х, но и в 7.Х есть несколько разделов в старом интерфейсе.

Проблема в невозможности при переходе между разделами запуска сервиса SaveProfileData из-за Synchronous XHR in page dismissal, подробнее см. https://stackoverflow.com/questions/55676319/ajax-synchronous-request-failing-in-chrome.

 

PS: Ещё можно не через реестр, а настройкой: chrome://flags/#allow-sync-xhr-in-page-dismissal

 

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

Доброго времени суток!
Случайно убрали поле "Требуется обновление БД" в конфигурации, штатной настройкой полей не получается вернуть, подскажите как снова добавить поле. Заранее спасибо:smile:

Нравится

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

Здравствуйте, Олег.

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

Через настройку колонок попробуйте.

"Мария Ватулина" написал:

Здравствуйте, Олег.

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


скриншот в приложении

"Кисловский Михаил Андреевич" написал:

Через настройку колонок попробуйте.


"Шамшин Олег" написал: штатной настройкой полей не получается вернуть

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

Для восстановления колонки можем вам рекомендовать восстановить настройки профиля пользователя по умолчанию (прилагаю скрин). После восстановления перелогиниться.

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

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

В процессе разработки, при тестировании процесса установки, просто перемещения изменений между средами разработчиков - очень большое время занимает выполнение действий в конфигураторе, причем практика показывает что выполнить одно единое действие требуется довольно редко, как правило, твои коллеги разработали несколько пакетов и тебе необходимо получить проделанные ими изменения, и тебе необходимо произвести "связку действий":Установить скрипты + Генерировать + Скомпилировать измененное или Обновить объекты в БД + Установить данные + Скомпилировать всё (т.к. приехало несколько компилируемых БП) и т.д. В конфигураторе, ИМХО, прям напрашивается функционал последовательного выполнения действий н/п организовать дополнительный пункт бокового меню по нажатию на который открывать окно В котором при помощи штатного Ext инструментария, выбрать набор пунктов и установить последовательность их выполнения (стрелочками) Нажал "ОК" По факту завершения, сгенерировать штатную нотификацию (которая вызывает выделение/мерцание вкладки) Что привлечет внимание - и можно продолжать работу :) PS: Поскольку отдельные действия выполняются довольно продолжительно, то разработчик все равно не сидит и не любуется progress-loader, а как правило переключается на что-то другое, то постоянно "ходить проверять как там дела", на этом теряется много времени, т.к. забываешь про запущенное действие, оно выполнится и стоит без дела, потом разработчик про него вспомнит - идет запускать следующие действия и т.д. Как считают пользователи сообщества - будет ли такой функционал полезен в их работе ?

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

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

Добрый день, Илья!

Спасибо за обратную связь и за то, что помогаете делать наш продукт еще лучше.
Согласно Вашего комментария создана проблема/пожелание на команду разработки платформы с целью рассмотрения возможности реализации описанного функционала в последующих релизах. Номер проблемы 7112.

Добрый день, Илья!

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

Выдержка из What’s New 7.10.2:

“Уменьшено количество действий при обновлении конфигурации из хранилища и пакетов при разработке в файловой системе. Для этого по умолчанию включены механизмы автоматического применения изменений (ключи AutoUpdateDBStructure, AutoInstallSqlScript, AutoInstallPackageData).”

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

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

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

Нравится

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

Здравствуйте! Посмотрите, пожалуйста, эту ветку https://community.terrasoft.ru/questions/kak-uznat-v-kakom-kanale-sozda…. Если у Вас возникнут вопросы по решению - буду готов ответить.

Здравствуйте. Возникли, да. Делают так же, как в предпоследнем посте

"Татаровская Дарья" написал:
Демьяник Алексей Олегович пишет:

Ну и остался последний шаг - элементом "Добавить данные" необходимо добавить запись в объект "Уведомления", указав значения полям "Кому" (ответственному), "Объект" (UId объекта), "Уникальный идентификатор записи" (Экземпляр объекта), Время (Текущая дата и время).

Хотела бы добавить уведомление по объекту(обращение) с помощью элеманта "Добавить данные"

у уведомления есть следующие поля

"Кому" - это ответственный

"Объект" - UID схемы объекта, по которому должно прийти уведомление

"Уникальный идентификатор заголовка" - это идентификатор самого объекта

"Время" - текущая дата и время

"Автор" - текущий контакт

SubjectCaption - это наименование уведомления

но есть еще

"SourceId" (Источник) - что такое источник? что необходимо туда вписывать?

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

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


но после выполнения ничего не появляется в ленте. Давайте опишу ситуацию полностью) Есть БП в котором выполняется какая то выборка(расчет зп водителя)и для каждого контакта добавляется объект, а по окончанию всего этого в ленту должно падать типа "все добавлено\посчитано" не важно какой текст, главное что бы в ленте как то это отображалось. В " добавить данные 2" беру объект уведомления, значения полей: кому из словаря контакты, время - системное время, а вот поля объект и уникальный идентифекатор заголовка не понимаю откуда брать. Ставил объект который добавляется для каждого контакта, а никальный ид не помню чей уже, но не сработало. Ничего не появилось в уведомлениях. Вт хотел бы уточнить, как заполнить объект и уникальный ид или мб в другом дело?

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

Уведомления привязаны к конкретной записи. Во вложении пример БП, который создает уведомления для существующей активности(пример был создан в версии 7.6).
1. Уникальный идентификатор заголовка – Id записи, к которой привязано уведомление (например, Id активности в таблице Activity).
2. Объект – идентификатор схемы объекта. Значение можно выбрать из справочника (например, Объект раздела (представление).Активность)
usrcreateremind.rar

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