Здравствуйте, как сделать так что в реестре деталь, checkBox действовал как radioButon или можно ли в место checkBox добавить radioButton?

Нравится

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

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

 

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

Mira Dmitruk,

Спасибо

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

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

1) как отобразить все checkbox в реестр деталь?

2) при выбора запись checkbox стал true?

3) метод обработчик изменения checkbox?

пожалуйста покажите пример.

Нравится

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

Добрый день,



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

Больше информации на эту тему вы можете найти у нас на Академии:

https://academy.creatio.com/docs/user/customization_tools/ui_and_busine…

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

Здравствуйте, скажите пожалуйста как можно получить выбранную запись из реестр детали (через script) в странице записи?

Нравится

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

Добрый день,

 

находясь в контексте модели реестра нужно вызвать метод this.getActiveRow() чтобы получить модель выбранной записи, или this.get("ActiveRow") чтобы получить идентификатор выбранной записи. 



С уваженим,

Юрий. 

Yurii,

Спасибо

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

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

Нравится

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

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

 

В основном приложении, в разделе [Системные настройки] есть настройка с кодом [MobileSectionsWithSearchOnly]. Она отвечает за список разделов в мобильном приложении, данные в которых отображаются только через использование поиска.

Если в поле [Значение по умолчанию] проставить значение "0", то во всех разделах записи будут сразу отображаться, без использования поиска.



Если необходимо, чтобы в некоторых разделах записи отображались лишь через использование поиска, требуется прописать в поле [Значение по умолчанию] список объектов разделов, разделяемых точкой с запятой.

 

Эта логика задействована по нескольким причинам:

- с целью уменьшения потребления трафика на моб. приложении;

- уменьшение запросов к серверу на select, что снижает нагрузку на БД;

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

 

На СУБД PostgreSQL нет данной настройки, поэтому есть обходное решение для отображения записей в разделах мобильного приложения.

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



Скрипт по включению/выключению фичей ниже:

https://academy.terrasoft.ua/docs/developer/ehlementy_interfejsa/upravl…

 

Частично описание настроек мобильного приложения есть на Академии:

https://academy.terrasoft.ua/docs/8-0/user/ustanovka_i_administrirovani…

 

Так же некоторые настройки подписаны в самом приложении, если их открыть в разделе "Системные настройки".

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

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

 

Я установил приложение от DeVLabs - Настройка колонок реестра раздела в разрезе групп (Advanced list setup for Creatio) и последнее время, возможно при работе ТП над какими-то запросами у меня начали слетать настройки при переключении между группами.

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

Помогите разобраться, пожалуйста

Нравится

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

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

Вы могли бы предоставить более детальные кейсы или скриншоты, по которым мы могли бы провести тестирование?

Если у Вас есть пошаговый кейс воспроизведения ошибки - это поможет в анализе.



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

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

Доброго дня!

 

Из-за нестандартной логики по заполнению полей по умолчанию при добавлении записей в деталь приходится вызывать мини-форму вручную. При этом не происходит обновление грида -- запись появляется на детали только после обновления страницы. 

 

Есть предположение, что нужно как-то грамотно организовать колбэки с this.reloadGridData(), но никак не выходит. Может кто сталкивался с подобным кейсом

 

Исходный код прилагаю.

addRecord: function(typeColumnValue) {
    var config = {
	    recordId: Terrasoft.GUID_EMPTY,
		operation: Terrasoft.ConfigurationEnums.CardOperation.ADD,
		entitySchemaName: "Account",
		valuePairs: this.getAddMiniPageDefaultValues(),
		miniPageSchemaName: "AccountMiniPage",
	};
    this.openMiniPage(config);
},
 
getAddMiniPageDefaultValues: function() {
    var defaultValues = [];
    defaultValues.push({
        name: "Parent", 
        value: this.get("MasterRecordId")
    });
	defaultValues.push({
	    name: "Category",
		value: "dc199b6d-e948-4598-8a12-c38ca90428d8"
	});
	return defaultValues;
}

Благодарю за ваши ответы

Нравится

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

Вадим, добрый день

У вас деталь - это один модуль, а миникарточка - другой. Единственный вариант общения между модулями - это сообщения. И да, при  работе с этой миникарточкой вы всегда будете отправлять сообщение, а вот реагировать на него будет деталь только в том случае, если этот модуль сейчас загружен в системе (фактически, если он отображается на экране)

Вадим, добрый день.

 

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

Алла Савельева,

Спасибо за ответ! Однако реализация не совсем очевидна. Неужели для реализации этого кейса придется постоянно публиковать сообщение со стороны добавляемого объекта для обновления детали? Учитывая то, что добавляемый объект, помимо детали, может создаваться и из других мест

Вадим, добрый день

У вас деталь - это один модуль, а миникарточка - другой. Единственный вариант общения между модулями - это сообщения. И да, при  работе с этой миникарточкой вы всегда будете отправлять сообщение, а вот реагировать на него будет деталь только в том случае, если этот модуль сейчас загружен в системе (фактически, если он отображается на экране)

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

Добрый день, коллеги! Хотел узнать есть ли возможность переопределить командную строку, чтобы отображать реестр КОНТАКТ не по отображаемому полю ФИО, а по полю МОБИЛЬНЫЙ ТЕЛЕФОН.

 

Попытался переопределить метод getFilters в ContactSectionV2, но при открытие переходит раздела КОНТАКТЫ он вновь сбивает и делает по ФИО. Добавил в раздел КОНТАКТЫ колонку (секцию) МОБИЛЬНЫЙ ТЕЛЕФОН, но все равно переходит на ФИО.

Пример взял отсюда:

https://community.terrasoft.ru/questions/kastomizaciya-stroki-poiska-co…

 

После попробовал переопределить первичную колонку по этому примеру, но при открытие и фильтр отрабатывает корректно, но при открытие любой карточки требует обязательного заполнения МОБИЛЬНЫЙ ТЕЛЕФОН:

https://community.terrasoft.ru/questions/komandnaya-stroka

 

Может кто-то решил подобную проблему?

 

 

 

Нравится

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

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

В указанном вами примере в коде переопределённого метода есть условие на выполнение фильтра 

if (emailFilter && emailFilter.includes("@")). Скорее всего следует копать именно в этом месте, поскольку вместо вашего фильтра используется базовый.  Рекомендую сделать что-то наподоби регулярного выражения на номер телефона, вместо наведённого в примере символа "@".

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

Добрый день, я сделал справочное поле мульти справочным

вот так

attributes: {
           "qrtClientAccountSigner": { // поле, в котором создаем мультилукап
              "dataValueType": this.Terrasoft.DataValueType.LOOKUP,
              "multiLookupColumns": ["qrtContact", "qrtCounterparty"]  // перечисляем созданные нами колонки, которые будет содержать мультилукап
          }
        },

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

Нравится

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

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

Зверев Александр,

т.е вывести результат этого поля в реестре не выйдет?

и решение таковое, что выводим поля , по которым оно сформировано, а значения этих полей формируем при создании записи в мультисправочном поле

Зверев Александр,

 

При выборе контрагента в мульти-поле Инвестор, контрагент сохраняется и в инвесторе и

Дублируется в поле Контрагент.

При выборе контакта в мультиполе Инвестор, Контакт заполняется в поле Контрагента, но сразу исчезает с детали

Из поля Инвестор, но в карточке детали в поле Инвестор отображается.

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

 

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

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

Пытаюсь перенести настройки реестра деталей на другую среду 

Мой алгоритм действий такой

В данных выбираю объект sysprofiledata с типом установки установка

Далее на вкладке привязка данных по ключу ищу детали для фиксации настройки реестра, далее сохраняю, фиксирую изменения и заливаю на целевую среду,   но настройки реестра не применяются 

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

Раньше при фиксации изменений настройек реестра было больше колонок для выбора, а именнно нету данные и objectdifference, которые ставил обязательно для обновления)

Версия на которой фиксирую изменения 7 17 , целевая среда на 7 16

 

Нравится

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

Дима, больше всего смущает это: 

Версия на которой фиксирую изменения 7 17 , целевая среда на 7 16

Лучше всего переносить между идентичными версиями системы, в крайнем случае — от старой на новую, но не наоборот, из новой в старую, поскольку такое использование никто не тестировал. Если на базах разных версий привести содержимое поля ObjectData в SysProfileData у аналогичных записей к текстовому виду при помощи «cast([ObjectData] as varchar(max))», видно различия в параметрах и формате информации о столбцах. Вероятно, дело в этом. Более подробно можно сказать, сравнивая конкретное наполнение поля у Вас: дело в формате, дубле записей или ещё чём-то.

дев и прод еще не обновили, поэтому он на 16

Но меня больше смущает то. куда пропали колонки данные и objectdifference  в новой версии ?

У меня в 7.17 есть и [ObjectData], и [ObjectDifference] (в последней всегда null или «0x», и в 7.16, и в 7.17).

Зверев Александр,

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

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

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

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

 

Подскажите есть ли возможность сохранять реестр для нескольких культур разом?

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

Нравится

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

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

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



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

 

при сохранении настройки колонки идёт обращение к сервису /0/DataService/json/SyncReply/UserProfile, там передаётся в поле profileCultureId ссылка на Id конкретной культуры:

{
   "key":"AccountSectionV2GridSettingsGridDataView",
   "data":"{\"tiledColumnsConfig\":\"{}\",\"listedColumnsConfig\":\"{}\",\"DataGrid\":{\"tiledConfig\":\"{\\\"grid\\\":{\\\"rows\\\":2,\\\"columns\\\":24},\\\"items\\\":[{\\\"column\\\":0,\\\"caption\\\":\\\"Название\\\",\\\"metaPath\\\":\\\"Name\\\",\\\"isTitleText\\\":true,\\\"width\\\":8,\\\"dataValueType\\\":1,\\\"bindTo\\\":\\\"Name\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":8,\\\"row\\\":1},\\\"isCaptionHidden\\\":true,\\\"isURLType\\\":false,\\\"columnType\\\":\\\"title\\\",\\\"captionConfig\\\":{\\\"visible\\\":false},\\\"type\\\":\\\"title\\\"},{\\\"column\\\":8,\\\"caption\\\":\\\"Web\\\",\\\"metaPath\\\":\\\"Web\\\",\\\"isTitleText\\\":false,\\\"width\\\":6,\\\"bindTo\\\":\\\"Web\\\",\\\"position\\\":{\\\"column\\\":8,\\\"colSpan\\\":6,\\\"row\\\":1},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":14,\\\"caption\\\":\\\"Основной телефон\\\",\\\"metaPath\\\":\\\"Phone\\\",\\\"isTitleText\\\":false,\\\"width\\\":5,\\\"bindTo\\\":\\\"Phone\\\",\\\"position\\\":{\\\"column\\\":14,\\\"colSpan\\\":5,\\\"row\\\":1},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":19,\\\"caption\\\":\\\"Тип\\\",\\\"metaPath\\\":\\\"Type\\\",\\\"isTitleText\\\":false,\\\"width\\\":5,\\\"bindTo\\\":\\\"Type\\\",\\\"position\\\":{\\\"column\\\":19,\\\"colSpan\\\":5,\\\"row\\\":1},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":0,\\\"caption\\\":\\\"Основной контакт\\\",\\\"metaPath\\\":\\\"PrimaryContact\\\",\\\"isTitleText\\\":false,\\\"width\\\":8,\\\"dataValueType\\\":10,\\\"bindTo\\\":\\\"PrimaryContact\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":8,\\\"row\\\":2},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"columnType\\\":\\\"text\\\",\\\"captionConfig\\\":{\\\"visible\\\":true},\\\"type\\\":\\\"text\\\"},{\\\"column\\\":8,\\\"caption\\\":\\\"Адрес\\\",\\\"metaPath\\\":\\\"Address\\\",\\\"isTitleText\\\":false,\\\"width\\\":6,\\\"dataValueType\\\":1,\\\"bindTo\\\":\\\"Address\\\",\\\"position\\\":{\\\"column\\\":8,\\\"colSpan\\\":6,\\\"row\\\":2},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":14,\\\"caption\\\":\\\"Город\\\",\\\"metaPath\\\":\\\"City\\\",\\\"isTitleText\\\":false,\\\"width\\\":5,\\\"bindTo\\\":\\\"City\\\",\\\"position\\\":{\\\"column\\\":14,\\\"colSpan\\\":5,\\\"row\\\":2},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":19,\\\"caption\\\":\\\"Страна\\\",\\\"metaPath\\\":\\\"Country\\\",\\\"isTitleText\\\":false,\\\"width\\\":5,\\\"bindTo\\\":\\\"Country\\\",\\\"position\\\":{\\\"column\\\":19,\\\"colSpan\\\":5,\\\"row\\\":2},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}}]}\",\"listedConfig\":\"{\\\"items\\\":[{\\\"column\\\":0,\\\"caption\\\":\\\"Название\\\",\\\"metaPath\\\":\\\"Name\\\",\\\"isTitleText\\\":false,\\\"width\\\":9,\\\"dataValueType\\\":1,\\\"bindTo\\\":\\\"Name\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":9,\\\"row\\\":1},\\\"columnType\\\":\\\"text\\\",\\\"isURLType\\\":false,\\\"type\\\":\\\"text\\\"},{\\\"column\\\":9,\\\"caption\\\":\\\"Тип\\\",\\\"metaPath\\\":\\\"Type\\\",\\\"width\\\":5,\\\"bindTo\\\":\\\"Type\\\",\\\"position\\\":{\\\"column\\\":9,\\\"colSpan\\\":5,\\\"row\\\":1}},{\\\"column\\\":14,\\\"caption\\\":\\\"Основной телефон\\\",\\\"metaPath\\\":\\\"Phone\\\",\\\"width\\\":5,\\\"bindTo\\\":\\\"Phone\\\",\\\"position\\\":{\\\"column\\\":14,\\\"colSpan\\\":5,\\\"row\\\":1}},{\\\"column\\\":19,\\\"caption\\\":\\\"Основной контакт\\\",\\\"metaPath\\\":\\\"PrimaryContact\\\",\\\"width\\\":5,\\\"bindTo\\\":\\\"PrimaryContact\\\",\\\"position\\\":{\\\"column\\\":19,\\\"colSpan\\\":5,\\\"row\\\":1}}]}\",\"isTiled\":true,\"type\":\"tiled\",\"key\":\"AccountSectionV2GridSettingsGridDataView\"},\"DataGridVerticalProfile\":{\"tiledConfig\":\"{\\\"grid\\\":{\\\"rows\\\":5,\\\"columns\\\":24},\\\"items\\\":[{\\\"bindTo\\\":\\\"Name\\\",\\\"caption\\\":\\\"Название\\\",\\\"type\\\":\\\"title\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":1},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"Name\\\",\\\"captionConfig\\\":{\\\"visible\\\":false}},{\\\"bindTo\\\":\\\"Type\\\",\\\"caption\\\":\\\"Тип\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":2},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"Type\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"PrimaryContact\\\",\\\"caption\\\":\\\"Основной контакт\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":3},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"PrimaryContact\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"Phone\\\",\\\"caption\\\":\\\"Основной телефон\\\",\\\"type\\\":\\\"text\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":4},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"Phone\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}}]}\",\"listedConfig\":\"{\\\"items\\\":[]}\",\"key\":\"AccountSectionV2GridSettingsGridDataView\",\"isTiled\":true,\"type\":\"tiled\"},\"key\":\"AccountSectionV2GridSettingsGridDataView\",\"Filters\":{},\"isTiled\":true,\"MobileDataGrid\":{\"tiledConfig\":\"{\\\"grid\\\":{\\\"rows\\\":7,\\\"columns\\\":24},\\\"items\\\":[{\\\"bindTo\\\":\\\"City\\\",\\\"caption\\\":\\\"Город\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":1},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"City\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"Web\\\",\\\"caption\\\":\\\"Web\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":2},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"Web\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"Address\\\",\\\"caption\\\":\\\"Адрес\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":3},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"Address\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"ModifiedBy\\\",\\\"caption\\\":\\\"Изменил\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":4},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"ModifiedBy\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"AlternativeName\\\",\\\"caption\\\":\\\"Альтернативные названия\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":5},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"AlternativeName\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"AdditionalPhone\\\",\\\"caption\\\":\\\"Дополнительный телефон\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":6},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"AdditionalPhone\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"City\\\",\\\"caption\\\":\\\"Город\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":7},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"City\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}}]}\",\"listedConfig\":\"{\\\"items\\\":[]}\",\"isTiled\":true,\"type\":\"tiled\"},\"profileCultureId\":\"1a778e3f-0a8e-e111-84a3-00155d054c03\"}",
   "isDef":false
}

Настройка задаётся для себя с isDef =  false или для всех с isDef =  true.

Стандартно для отправки настроек в другой культуре функции нет, нужно делать доработку: либо отправлять ещё один запрос к сервису с указанием другой культуры и того же значения key, либо менять (или добавлять, если нет) в базе значения в таблице SysProfileData, отфильтровав там по Key и SysCultureId.

Сами настройки хранятся в поле ObjectData, его значение можно увидеть, написав в SQL-запросе «cast(ObjectData as varchar(max))».

Обратите внимание, там тоже упомянуты key и profileCultureId. Также просто скопировать из одной культуры в другую будет недостаточно, заголовки каждой колонки на соответствующем языке хранятся прямо в этом поле в значении параметров caption, их нужно будет перевести и для нелатинских букв представить в нужной кодировке.

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

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



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

 

при сохранении настройки колонки идёт обращение к сервису /0/DataService/json/SyncReply/UserProfile, там передаётся в поле profileCultureId ссылка на Id конкретной культуры:

{
   "key":"AccountSectionV2GridSettingsGridDataView",
   "data":"{\"tiledColumnsConfig\":\"{}\",\"listedColumnsConfig\":\"{}\",\"DataGrid\":{\"tiledConfig\":\"{\\\"grid\\\":{\\\"rows\\\":2,\\\"columns\\\":24},\\\"items\\\":[{\\\"column\\\":0,\\\"caption\\\":\\\"Название\\\",\\\"metaPath\\\":\\\"Name\\\",\\\"isTitleText\\\":true,\\\"width\\\":8,\\\"dataValueType\\\":1,\\\"bindTo\\\":\\\"Name\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":8,\\\"row\\\":1},\\\"isCaptionHidden\\\":true,\\\"isURLType\\\":false,\\\"columnType\\\":\\\"title\\\",\\\"captionConfig\\\":{\\\"visible\\\":false},\\\"type\\\":\\\"title\\\"},{\\\"column\\\":8,\\\"caption\\\":\\\"Web\\\",\\\"metaPath\\\":\\\"Web\\\",\\\"isTitleText\\\":false,\\\"width\\\":6,\\\"bindTo\\\":\\\"Web\\\",\\\"position\\\":{\\\"column\\\":8,\\\"colSpan\\\":6,\\\"row\\\":1},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":14,\\\"caption\\\":\\\"Основной телефон\\\",\\\"metaPath\\\":\\\"Phone\\\",\\\"isTitleText\\\":false,\\\"width\\\":5,\\\"bindTo\\\":\\\"Phone\\\",\\\"position\\\":{\\\"column\\\":14,\\\"colSpan\\\":5,\\\"row\\\":1},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":19,\\\"caption\\\":\\\"Тип\\\",\\\"metaPath\\\":\\\"Type\\\",\\\"isTitleText\\\":false,\\\"width\\\":5,\\\"bindTo\\\":\\\"Type\\\",\\\"position\\\":{\\\"column\\\":19,\\\"colSpan\\\":5,\\\"row\\\":1},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":0,\\\"caption\\\":\\\"Основной контакт\\\",\\\"metaPath\\\":\\\"PrimaryContact\\\",\\\"isTitleText\\\":false,\\\"width\\\":8,\\\"dataValueType\\\":10,\\\"bindTo\\\":\\\"PrimaryContact\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":8,\\\"row\\\":2},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"columnType\\\":\\\"text\\\",\\\"captionConfig\\\":{\\\"visible\\\":true},\\\"type\\\":\\\"text\\\"},{\\\"column\\\":8,\\\"caption\\\":\\\"Адрес\\\",\\\"metaPath\\\":\\\"Address\\\",\\\"isTitleText\\\":false,\\\"width\\\":6,\\\"dataValueType\\\":1,\\\"bindTo\\\":\\\"Address\\\",\\\"position\\\":{\\\"column\\\":8,\\\"colSpan\\\":6,\\\"row\\\":2},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":14,\\\"caption\\\":\\\"Город\\\",\\\"metaPath\\\":\\\"City\\\",\\\"isTitleText\\\":false,\\\"width\\\":5,\\\"bindTo\\\":\\\"City\\\",\\\"position\\\":{\\\"column\\\":14,\\\"colSpan\\\":5,\\\"row\\\":2},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"column\\\":19,\\\"caption\\\":\\\"Страна\\\",\\\"metaPath\\\":\\\"Country\\\",\\\"isTitleText\\\":false,\\\"width\\\":5,\\\"bindTo\\\":\\\"Country\\\",\\\"position\\\":{\\\"column\\\":19,\\\"colSpan\\\":5,\\\"row\\\":2},\\\"isCaptionHidden\\\":false,\\\"isURLType\\\":false,\\\"captionConfig\\\":{\\\"visible\\\":true}}]}\",\"listedConfig\":\"{\\\"items\\\":[{\\\"column\\\":0,\\\"caption\\\":\\\"Название\\\",\\\"metaPath\\\":\\\"Name\\\",\\\"isTitleText\\\":false,\\\"width\\\":9,\\\"dataValueType\\\":1,\\\"bindTo\\\":\\\"Name\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":9,\\\"row\\\":1},\\\"columnType\\\":\\\"text\\\",\\\"isURLType\\\":false,\\\"type\\\":\\\"text\\\"},{\\\"column\\\":9,\\\"caption\\\":\\\"Тип\\\",\\\"metaPath\\\":\\\"Type\\\",\\\"width\\\":5,\\\"bindTo\\\":\\\"Type\\\",\\\"position\\\":{\\\"column\\\":9,\\\"colSpan\\\":5,\\\"row\\\":1}},{\\\"column\\\":14,\\\"caption\\\":\\\"Основной телефон\\\",\\\"metaPath\\\":\\\"Phone\\\",\\\"width\\\":5,\\\"bindTo\\\":\\\"Phone\\\",\\\"position\\\":{\\\"column\\\":14,\\\"colSpan\\\":5,\\\"row\\\":1}},{\\\"column\\\":19,\\\"caption\\\":\\\"Основной контакт\\\",\\\"metaPath\\\":\\\"PrimaryContact\\\",\\\"width\\\":5,\\\"bindTo\\\":\\\"PrimaryContact\\\",\\\"position\\\":{\\\"column\\\":19,\\\"colSpan\\\":5,\\\"row\\\":1}}]}\",\"isTiled\":true,\"type\":\"tiled\",\"key\":\"AccountSectionV2GridSettingsGridDataView\"},\"DataGridVerticalProfile\":{\"tiledConfig\":\"{\\\"grid\\\":{\\\"rows\\\":5,\\\"columns\\\":24},\\\"items\\\":[{\\\"bindTo\\\":\\\"Name\\\",\\\"caption\\\":\\\"Название\\\",\\\"type\\\":\\\"title\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":1},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"Name\\\",\\\"captionConfig\\\":{\\\"visible\\\":false}},{\\\"bindTo\\\":\\\"Type\\\",\\\"caption\\\":\\\"Тип\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":2},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"Type\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"PrimaryContact\\\",\\\"caption\\\":\\\"Основной контакт\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":3},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"PrimaryContact\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"Phone\\\",\\\"caption\\\":\\\"Основной телефон\\\",\\\"type\\\":\\\"text\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":4},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"Phone\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}}]}\",\"listedConfig\":\"{\\\"items\\\":[]}\",\"key\":\"AccountSectionV2GridSettingsGridDataView\",\"isTiled\":true,\"type\":\"tiled\"},\"key\":\"AccountSectionV2GridSettingsGridDataView\",\"Filters\":{},\"isTiled\":true,\"MobileDataGrid\":{\"tiledConfig\":\"{\\\"grid\\\":{\\\"rows\\\":7,\\\"columns\\\":24},\\\"items\\\":[{\\\"bindTo\\\":\\\"City\\\",\\\"caption\\\":\\\"Город\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":1},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"City\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"Web\\\",\\\"caption\\\":\\\"Web\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":2},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"Web\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"Address\\\",\\\"caption\\\":\\\"Адрес\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":3},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"Address\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"ModifiedBy\\\",\\\"caption\\\":\\\"Изменил\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":4},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"ModifiedBy\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"AlternativeName\\\",\\\"caption\\\":\\\"Альтернативные названия\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":5},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"AlternativeName\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"AdditionalPhone\\\",\\\"caption\\\":\\\"Дополнительный телефон\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":6},\\\"dataValueType\\\":1,\\\"metaPath\\\":\\\"AdditionalPhone\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}},{\\\"bindTo\\\":\\\"City\\\",\\\"caption\\\":\\\"Город\\\",\\\"position\\\":{\\\"column\\\":0,\\\"colSpan\\\":24,\\\"row\\\":7},\\\"dataValueType\\\":10,\\\"metaPath\\\":\\\"City\\\",\\\"captionConfig\\\":{\\\"visible\\\":true}}]}\",\"listedConfig\":\"{\\\"items\\\":[]}\",\"isTiled\":true,\"type\":\"tiled\"},\"profileCultureId\":\"1a778e3f-0a8e-e111-84a3-00155d054c03\"}",
   "isDef":false
}

Настройка задаётся для себя с isDef =  false или для всех с isDef =  true.

Стандартно для отправки настроек в другой культуре функции нет, нужно делать доработку: либо отправлять ещё один запрос к сервису с указанием другой культуры и того же значения key, либо менять (или добавлять, если нет) в базе значения в таблице SysProfileData, отфильтровав там по Key и SysCultureId.

Сами настройки хранятся в поле ObjectData, его значение можно увидеть, написав в SQL-запросе «cast(ObjectData as varchar(max))».

Обратите внимание, там тоже упомянуты key и profileCultureId. Также просто скопировать из одной культуры в другую будет недостаточно, заголовки каждой колонки на соответствующем языке хранятся прямо в этом поле в значении параметров caption, их нужно будет перевести и для нелатинских букв представить в нужной кодировке.

Зверев Александр,

Спасибо

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