Добрый день, какое свойство отвечает за сохранение с игнорированием обязательных полей на js
я знаю что есть такое на c# entity.save(false)
Мне надо нечто подобное

Нравится

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

Попробуйте 

this.save({isSilent: true});

 

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

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

Нравится

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

Дмитрий, где именно Вы хотите это выполнять?

Если извне, то есть стандартный FileApiService, примеры работы с ним см. тут. Перед этим нужно ещё выполнить авторизацию.

 

Если же Вы хотите это делать это в серверной логике 7.Х, то нужно делать примерно то, что делается внутри этого сервиса, писать данные в поле Data записи о файле в таблице ...File от нужного раздела. См. пояснение в комментарии тут

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

Добрый день, мне надо. что бы при создании записи в разделе копировались значения и родительской записи, так как полей больше 70
Есть деталь, которая является раделом, т.е на ней отображены отфильтрованные записи раздела
При нажатии кнопки добавить, у меня создается новая запись, мне нужно. что бы при создании новой записи , копировались данные из родительской записи

Нравится

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

Да, возможно. Сделайте БП, запуск по записи. Читать родительскую запись, далее добавить запись в раздел и открыть страницу на редактирование только что созданной записи. У меня так реализовано добавление доп.соглашения к договору. 

Можно развить дальше и сделать отдельную кнопку для запуска процесса.

Алексей Следь,

мне надо что бы все 100+ полей копировались одной коллекцией, добавлять вручную такое мне не особо по душе

Dima Avdoshin,

Не понял. Один раз настроить в БП элемент добавить данные и все. Все 100+ полей будут копировать автоматически при создании новой записи. Если сложно настроить элемент добавить данные, то можно все сделать добавление данных скриптом в том же процессе. Можно через InsertSelect

Алексей Следь,

InsertSelect не вызвет событийную модель, что не есть хорошо.

Dima Avdoshin,

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

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

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

Владислав Литвинчук пишет:
InsertSelect не вызвет событийную модель, что не есть хорошо.

Если проблема только в этом, можно создавать Entity, наполнять её поля и затем вызывать Save. Или, как изначально предложили, средствами стандартных элементов БП для работы с данными.

 

По изначальному вопросу темы:

Вы хотите копировать из одноимённых полей одного объекта в другой?

А то, если просто создать копию записи, то в реестре есть кнопка копирования записи, при нажатии на неё создаётся новая запись с заполненными полями, у которых в объекте включена галка «Копировать данные при копировании записи».

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

то в реестре есть кнопка копирования записи, при нажатии на неё создаётся новая запись с заполненными полями, у которых в объекте включена галка «Копировать данные при копировании записи».
Да именно это мне нужно, каким образом я могу вызвать ее программно?

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

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

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

row = dataSource.Rows[0].Clone() as Terrasoft.Core.Entities.Entity;
Guid currentUserContactId = Page.UserConnection.CurrentUser.ContactId;
EntityPrimaryColumnValue = Guid.NewGuid();
row.SetColumnValue(primaryColumnName, EntityPrimaryColumnValue);
row.SetColumnValue("CreatedOn", DateTime.Now);
row.SetColumnValue("CreatedById", currentUserContactId);
row.SetColumnValue("ModifiedOn", DateTime.Now);
row.SetColumnValue("ModifiedById", currentUserContactId);
var columnNames = new List<string>();
foreach (var column in row.Schema.Columns) {
	if (column.HasDefValue && 
		((column.IsLookupType || column.IsMultiLookupType) &&
		column.ReferenceSchema.PrimaryDisplayColumn != null) &&
		!columnNames.Contains(column.Name)) {
		columnNames.Add(column.Name);
	}
}
row.LoadLookupDisplayValues(columnNames);
dataSource.Insert(row);

У объекта Entity есть метод .Clone() (или вызываемый им же конструктор Entity(Entity source)). Запускаем его, получаем новый объект в памяти. При необходимости заполняем текущими датой и пользователем стандартные 4 поля, затем те поля, значения которых в Вашей логике нужно поменять относительно образца. Все остальные поля, у которых в дизайнере есть галочка, скопировались автоматически. Id, естественно, будет уже новый.

Цикл из примера не нужен, ведь поля для отображения справочников нас сейчас не интересуют. И в конце запускаем у своего Entity метод .Save(), чтобы эта запись из памяти попала в базу. Кажется, ничего не упустил.

 

Но это всё на уровне C#-скрипта в процессе. Если надо в JS-логике, подобно кнопке копирования, нужно смотреть, как она устроена.

 

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

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

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

Нравится

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

Добрый день! Можно попробовать через атрибут, и в атрибут переопределять caption

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

А поделитесь плиз бизнес-задачей? Зачем вам такая штука?

Нигрескул Алексей,

сделал через свойство caption

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

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

Добрый день, как при выборе флага загружать почту из выбранных папок, отобразить папку
Изображение удалено.
У меня не отображается ничего, я следовал статье в академии, где было все нормально
может быть на стороне почтового клиента нужны какие-то доп настройки?

Нравится

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

Дмитрий, у меня тоже ничего не отображается:

 

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

Можете прикрепить картинку и описать подробнее, что не работает?

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

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

Нравится

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

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

Переводы хранятся в таблице SysTranslation, привязка данных осуществляется в разделе конфигурация -https://prnt.sc/w18hsw
https://prnt.sc/w18jq7
Хотя через привязку данных не очень хорошая идея, т.к. слишком большой объем данных.
Так же переводы можно выгрузить в Excel и потом залить на нужной среде в вышеуказанную таблицу.

 

 

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

Переводы хранятся в таблице SysTranslation, привязка данных осуществляется в разделе конфигурация -https://prnt.sc/w18hsw
https://prnt.sc/w18jq7
Хотя через привязку данных не очень хорошая идея, т.к. слишком большой объем данных.
Так же переводы можно выгрузить в Excel и потом залить на нужной среде в вышеуказанную таблицу.

 

 

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

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

Нравится

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

На текущий момент могу сказать, что элементарно это сделать. Читаем тут. Треугольник выбора валюты у поля пропадает по причине неверно названных атрибутов у коллекцией и методов, которые заменяют onCurrencyMenuItemClick.
В методе prepareCurrencyMenu мы биндим к своей функции "Click: {"bindTo": "on" + column + "CurrencyMenuItemClick"}". У меня мультивалютные колонки называются "NavDamageSize" и "NavSumCurrency", название методов "onNavDamageSizeCurrencyMenuItemClick", "onNavSumCurrencyCurrencyMenuItemClick" (изначально были другими). Название атрибутов должно быть "NavDamageCurrencyButtonMenuList" и "NavReqSumCurrencyButtonMenuList". Это особенности моей реализации.

Проще говоря, внимательно следите за названием методов и атрибутов.

На текущий момент могу сказать, что элементарно это сделать. Читаем тут. Треугольник выбора валюты у поля пропадает по причине неверно названных атрибутов у коллекцией и методов, которые заменяют onCurrencyMenuItemClick.
В методе prepareCurrencyMenu мы биндим к своей функции "Click: {"bindTo": "on" + column + "CurrencyMenuItemClick"}". У меня мультивалютные колонки называются "NavDamageSize" и "NavSumCurrency", название методов "onNavDamageSizeCurrencyMenuItemClick", "onNavSumCurrencyCurrencyMenuItemClick" (изначально были другими). Название атрибутов должно быть "NavDamageCurrencyButtonMenuList" и "NavReqSumCurrencyButtonMenuList". Это особенности моей реализации.

Проще говоря, внимательно следите за названием методов и атрибутов.

Алексей Следь
проблему с треугольником решить не удалось, и пришлось с каждым валютным полем связать справочное поле, которое отвечает за переключение валюты, в принципе все корректно

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

Пытаюсь перенести настройки реестра деталей на другую среду 
Мой алгоритм действий такой
В данных выбираю объект 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).

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

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

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

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

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

Нравится

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

            save: function(config) {
                config = config || {};
                config.isSilent = true;
                this.callParent([config]);
            }

            save: function(config) {
                config = config || {};
                config.isSilent = true;
                this.callParent([config]);
            }

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

Когда пытаюсь установить пакет , на новой среде, то выдает ошибку 
Конфликт инструкции INSERT с ограничением FOREIGN KEY "FKVJgxmU9tugUNJfIWHaADhTn9tE". Конфликт произошел в базе данных "ST_MENU_3503480_0906", таблица "dbo.SysCulture", column 'Id'. Выполнение данной инструкции было прервано.
Я пробовал методы из двух похожих тем, но не одна не помогла

Нравится

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

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

 

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

 

Если непонятно, о какой записи речь, можно записать неудавшийся запрос на вставку в профайлере и узнать её Id.

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