В Академии есть описание как скачать шаблон для импорта объектов из Конфигурации. В предыдущих версиях часто это использовала. 

Но в версии 7,17,0 - не могу определить где находится кнопка Настройки. 

Пример на скрине

Нравится

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

На версии 7.17.0 можно попробовать пройти по адресу yoursite/0/ViewPage.aspx?Id=c2af7f54-07df-4670-9c2b-af2497d3231f

 

На версии 7.17.1 прежде чем эту ссылку использовать надо реанимировать старый конфигуратор

 

Спасибо! Вот только клиенту это уже не объяснишь....

А клиент в старой конфигурации умел это делать сам? в этом случае дайте ему ссылку, а дальше все тоже самое осталось.

Екатерина, что Вы имеете в виду под шаблоном для импорта объектов из Конфигурации? Речь о выгрузке схем или данных в Excel? Приведите ссылку или скриншот, как раньше было.

вот тут ссылка на окошко старого интерфейса /0/ViewPage.aspx?Id=c2af7f54-07df-4670-9c2b-af2497d3231f

добраться из старой конфигурации можно так:

 

Было бы не плохо вставить эту кнопку "Скачать шаблон"  в новый мастер импорта, который по адресу /0/Nui/ViewModule.aspx?vm=FileImportWizard#FileImportModule/FileImportStartPage/f0a9cd02-5a19-4a4b-9e6e-7505bd509247

Спасибо, теперь понял, о чём Вы. В новой конфигурации нет кнопки «настройки», поскольку она была не частью старой конфигурации, а частью старого 5.Х-интерфейса вообще, была видима в любом разделе. А в 7.17 старый интерфейс окончательно убрали, а с ней и кнопку настройки, и окно старого импорта, и кнопку скачивания в нём. В новом интерфейсе свой экран настроек, «Дизайнер системы».

В академию по поводу неактуального абзаца сообщил.

Сложность в использовании функциональности импорта из Excel о том, что нет возможности скачать шаблон файла для загрузки данных объекта была зарегистрирована ещё при запуске нового UI импорта из Excel, но пока ничего не планировали. Приоритетность реализации зависит от количества запросов  по этой теме.

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

Как обходной вариант, можно просто вывести в реестре раздела нужные колонки и скачать файл по действию «Экспорт в Excel», а затем его открыть и оставить только «шапку».

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

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

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

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

Не, идея не в этом. Шаблон выгружается согласно доработанной объектное модели.(он не статичен) Т.о. добавляем в объект все нужные поля и справочники, выгружаем шаблон и отдаем для наполнения. А так как у всех модели данных разные, то и выгрузка шаблонов - регулярна.

В таком случае, можно опять выгрузить по действию «Экспорт в Excel».

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

Да, но для этого нужно опять добавлять колонки в реестр.

А зачем Вы их удаляли?

С выгрузкой по действию «Экспорт в Excel» тоже есть свои нюансы. Так например списочное представление позволяет вывести только 24 колонки. Можно конечно в плиточном вывести все необходимые колонки. Тогда Экспорт в Excel выгрузит все что надо. Но Выгрузка шаблона позволяла выгрузить сразу всю объектную модель данных без настройки реестра записей, да еще и с указанием обязательности полей

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

а зачем мне в реестре весь список полей из объекта? Алексей в сообщении выше очень точно описал суть проблемы)

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

Или самостоятельно сделать БП с логикой, взятой из DownloadTemplateMenuItemClickScriptTaskExecute схемы ImportSettingsPage и адаптированной под сохранение файла где-то в базе.

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

Нынешняя логика этой кнопки такая:

		public virtual bool DownloadTemplateMenuItemClickScriptTaskExecute(ProcessExecutingContext context) {
			Page.BaseMessagePanel.Clear();
			if (string.IsNullOrEmpty(SchemaName)) {
				Page.BaseMessagePanel.AddMessage(WarrningMessage, UnableSelectObjectMessage, MessageType.Warning, true);
				return true;
			}
			Page.Response.ClearHeaders();
			Page.Response.ClearContent();
			string fileName = SchemaName;
			var instance = UserConnection.EntitySchemaManager.GetInstanceByName(SchemaName);
			if (instance != null) {
				fileName = instance.Caption.ToString();
			}
			Page.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
			if (HttpContext.Current.Request.Browser.Browser == "IE") {
				string fileNameEnc = HttpUtility.UrlPathEncode(fileName);
				Page.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileNameEnc + ".xlsx\"");
			} else {
				Page.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
			}
			List<double> columnWidthsList = new List<double>();
			using (MemoryStream stream = new MemoryStream()) {
				using(SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook)) {
					// Add a WorkbookPart to the document.
					var workbookpart = spreadsheetDocument.AddWorkbookPart();
					workbookpart.Workbook = new OpenXmlSpreadsheet.Workbook();
 
					// Add a WorksheetPart to the WorkbookPart.
					var worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
					var workbookStylesPart = workbookpart.AddNewPart<WorkbookStylesPart>(); 
					worksheetPart.Worksheet = new OpenXmlSpreadsheet.Worksheet(new OpenXmlSpreadsheet.SheetData());
 
					// Add Sheets to the Workbook.
					OpenXmlSpreadsheet.Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<OpenXmlSpreadsheet.Sheets>(new OpenXmlSpreadsheet.Sheets());
 
					// Append a new worksheet and associate it with the workbook.
					string relationshipId = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart);
					string sheetName = fileName;
					OpenXmlSpreadsheet.Sheet sheet = new OpenXmlSpreadsheet.Sheet() {
						Id = relationshipId,
						SheetId = 1, 
						Name = sheetName
					};
					sheets.Append(sheet);
 
					OpenXmlSpreadsheet.Worksheet worksheet = new OpenXmlSpreadsheet.Worksheet();
					OpenXmlSpreadsheet.SheetData sheetData = new OpenXmlSpreadsheet.SheetData();
					OpenXmlSpreadsheet.Row row = new OpenXmlSpreadsheet.Row();
 
					OpenXmlSpreadsheet.Cell currentCell;
					int columnCount = 0;
					var entitySchema = UserConnection.EntitySchemaManager.GetInstanceByName(SchemaName);
					foreach (EntitySchemaColumn column in entitySchema.Columns) {
						if (!column.DefValue.IsSystemValue &&
								(column.UsageType != EntitySchemaColumnUsageType.Advanced) && 
								(column.UsageType != EntitySchemaColumnUsageType.None) &&
								!column.Name.Equals("ProcessListeners") &&
								!(column.DataValueType is ImageDataValueType) &&
								!(column.DataValueType is ImageLookupDataValueType)) {
							currentCell = new OpenXmlSpreadsheet.Cell();
							currentCell.DataType =  OpenXmlSpreadsheet.CellValues.String;
							if (column.RequirementType == EntitySchemaColumnRequirementType.ApplicationLevel || column.RequirementType == EntitySchemaColumnRequirementType.DBLevel) {
								currentCell.StyleIndex = 3;
							} else {
								currentCell.StyleIndex = 4;
							}
							columnWidthsList.Add(CalculateWidth(column.Caption.Value));
							currentCell.CellValue = new OpenXmlSpreadsheet.CellValue(column.Caption.Value);
							row.AppendChild(currentCell);
						}
					}
					sheetData.Append(row);
					row = new OpenXmlSpreadsheet.Row();
					for (int i=0;i<columnWidthsList.Count; i++) {
						currentCell = new OpenXmlSpreadsheet.Cell();
						currentCell.DataType =  OpenXmlSpreadsheet.CellValues.String;
						currentCell.StyleIndex = 5;
						row.AppendChild(currentCell);
					}
					sheetData.Append(row);
					//Adding columns and specifeing width
					OpenXmlSpreadsheet.Columns columns = new OpenXmlSpreadsheet.Columns();
					uint j = 1;
					foreach (var w in columnWidthsList) {
						columns.Append(CreateColumnData(j, w));
						j++;
					}
					worksheet.Append(columns);
					//--
					worksheet.Append(sheetData);
 
					workbookStylesPart.Stylesheet = CreateStyleSheet();
					worksheetPart.Worksheet = worksheet;
					spreadsheetDocument.Close();
 
					stream.Seek(0, SeekOrigin.Begin);
					byte[] dataArray = stream.ToArray();
 
					Page.Response.BinaryWrite(dataArray);
					Page.Response.End();
				}
			}
			return true;
		}

 

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

Использую вот такой вот скрипт, где FileID - id нашего файла

EntitySchemaManager esqManager = UserConnection.EntitySchemaManager;
var esqResult = new EntitySchemaQuery(esqManager, "File");
esqResult.AddAllSchemaColumns();
esqResult.AddColumn("Data");
Entity currentFile = esqResult.GetEntity(UserConnection, FileID);
       
//файл должен появиться
while (currentFile == null) {
        currentFile = esqResult.GetEntity(UserConnection, FileID);     
}
var currentFileName = currentFile.GetTypedColumnValuestring>("Name");
var currentFileData = currentFile.GetBytesValue("Data");

var Response = Page.Response;

Response.AddHeader("Content-Disposition", "attachment; filename=\""" + System.Web.HttpUtility.UrlPathEncode(currentFileName) + ""\"""");

Нравится

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

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

public virtual bool DownloadTemplateScriptExecute(ProcessExecutingContext context) {
			var entitySchemaManager = UserConnection.EntitySchemaManager;
var entitySchema = entitySchemaManager.GetInstanceByName("File"); 
var entitySchemaQuery = new EntitySchemaQuery(entitySchemaManager, entitySchema.Name);
 
var dataColumn = entitySchemaQuery.AddColumn("Data");
entitySchemaQuery.Filters.Add(
	entitySchemaQuery.CreateFilterWithParameters(
		FilterComparisonType.Equal, "[KnowledgeBaseFile:FileId].KnowledgeBase", new object[] {new Guid("edb71f06-f46b-1410-e980-20cf30b39373")}));
entitySchemaQuery.Filters.Add(
	entitySchemaQuery.CreateFilterWithParameters(
		FilterComparisonType.Equal, "Name", new object[] {FileName.ToString()}));
 
var entityCollection = entitySchemaQuery.GetEntityCollection(UserConnection);
if (entityCollection.Count > 0) {
	var data = entityCollection[0].GetBytesValue(dataColumn.Name)  as byte[];    
	var response = HttpContext.Current.Response; 
	TSConfiguration.PageResponse.Write(response, data, FileName, TSConfiguration.ContentType.XmlType);
}
 
return true;
		}

К сожалению у меня TSConfiguration не знает методов PageResponse и ContentType, и в процессе "Скачать шаблон ..." вместо TSConfiguration стоит скрипт

Response.AddHeader("Content-Disposition", "attachment; filename=\"" + System.Web.HttpUtility.UrlPathEncode(FileName) + ""\"""");

Александр, какая у Вас версия ядра?
Попробую воспроизвести.
По поводу загрузки данных попробуйте перед вызовом LoadRows() установить

Page.DataSource.PageRowsCount = -1; //или заведомо вольшое числ
Показать все комментарии

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

Нравится

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

Добрый день,

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

Это необходимо, так как Вы правы в том, что система сложная. Именно поэтому наши менеджеры и консультанты проходят подготовку от одного месяца прежде, чем начинают самостоятельно работать с клиентами. При этом необходимо понимать, что демо-версия будет без настроек под потребности Вашей компании. Из нашей практики, не более 20-30% конечных клиентов достаточно компетентны в области CRM и/или обладают достаточным количеством свободного времени, чтобы самостоятельно разобраться как эффективнее использовать CRM систему.

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

Горелов Виталий
Компания Лабитек

Благодарю за ответ.
Но тогда у меня напрашивается следующий вопрос: зачем делать такую сложную систему чтобы в ней нужно было месяц разбираться? Это же потеря месяца работы - и соответсттвенно потеря прибыли.
Например есть до безумия простая программа Easy Clients, в ней я разобралась буквально за первую неделю. Как я уже сказала программа до безумия простая и страшно недоработанная, но в общем мне, например, она подходит. Чего в этой программе лично мне не хватает, так это чтобы выдавалось сообщение о дубляже компаний, когда вносится название компании, которая уже есть в базе. Не хватает разбивки по статусам пользователей - чтобы информацию в компаниях где куратор я, не мог изменить никто кроме меня. Толково прописанная рассылка по электронным адресам, печать наклеек на конверты, сигнал о том, что у кого-то день рождения, разбивка клиентов на действительных, потенциальных и т. д. - вот вобщем-то и всё что лично мне нужно от программы для ведения базы клиентов - согласитесь запросы довольно скромные, но тем не менее даже такой скромной программы я не могу найти.
В программе Easy Clients версия на один компьютер может быть скачана с интернета и в ней можно нормально работать. Учитывая несовершенность программы (которая абсолютно понятна, если знать, что её стоимость в начале прошлого года была 95 гривен на 1 компьютер), я понимаю, что те функции, которые нужны мне, естественно, сделают стоимость программы выше, но не 200 Евро за версию на 1 компьютер (и насколько я подозреваю это не вся сумма, которую нужно будет заплатить) - мне кажется слишком дорого. Такая стоимость подходит компаниям с миллионными годовыми оборотами, а подскажите что у Вас есть для компаний, у которых не большой штат и соответственно оборот не большой - и требования к функциям базы клиентов как минимум в половину меньше, чем в Ваших версиях, ?

"Мещерякова Елена Викторовна" написал:нужно было месяц разбираться?

Курс по функциональным возможностям системы длиться 2 рабочих дня.
Менеджер из Террасофт за 1 презентацию (1-1,5 часа) Вам расскажет о возможностях системы и покажет основные приёмы работы. Сами Вы потратите горазо больше времени, согласитесь.

"Мещерякова Елена Викторовна" написал:200 Евро за версию на 1 компьютер

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

"Мещерякова Елена Викторовна" написал:мне кажется слишком дорого.

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

"Мещерякова Елена Викторовна" написал:компаниям с миллионными годовыми оборотами

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

"Мещерякова Елена Викторовна" написал: в половину меньше, чем в Ваших версиях

Я текстовый редактор Word использую на 20%. Но, не хочу менять на какую либо урезанную версию либо на редактор другого производителя. Майкрософт делает отличный офисный пакет, Swatch делают отличные часы, Террасофт делает отличную CRM. Вы хотите урезанный инструмент в работе с самым ценным -с Вашим Клиентом???

"Мещерякова Елена Викторовна" написал:послушать рассказы менеджера о том "какое всё красивое, какое всё зелёное" - сама продавец

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

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

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

Шаг навстречу Клиенту, профессионализм и желание решить проблему Клиента всегда ценяться в бизнесе Террасофт больше чем "впарит 1 лицензию".

Удачных продаж, Вы ведь тоже продавец!

Елена, к тому что сказал Юрий можно добавить только то, что если Вам нужна электронная база клиентов чуть более удобная, чем outlook, то Вы никогда не выберите Террасофт. Потому что Терассофт это действительно качественная CRM-система, сделанная для компаний, которые действительно нуждаются в автоматизации работы своих продавцов и маркетологов. Такие компании не обязательно могут иметь миллионные обороты и их достаточно много.

Михаил Талалай
руководитель направления отраслевых решений
ООО "Лабитек", Санкт-Петербург
тел: (812) 448-49-06
e-mail: talalay@labitec.ru

"Талалай Михаил Вячеславович" написал:Елена, к тому что сказал Юрий можно добавить только то, что если Вам нужна электронная база клиентов чуть более удобная, чем outlook, то Вы никогда не выберите Террасофт. Потому что Терассофт это действительно качественная CRM-система, сделанная для компаний, которые действительно нуждаются в автоматизации работы своих продавцов и маркетологов. Такие компании не обязательно могут иметь миллионные обороты и их достаточно много.

Михаил Талалай
руководитель направления отраслевых решений
ООО "Лабитек", Санкт-Петербург
тел: (812) 448-49-06
e-mail: talalay@labitec.ru

Михаил,
дело в том, что кто-то готов такие большие суммы вкладывать в программы, а мы не готовы. И к тому же есть довольно известная компания (по определённым причинам не буду называть её) предложила нам систему похожую на Вашу, с той же функциональностью, но на 40% дешевле и к тому же рассматривают предложение о бартерном обмене, чего работники компании Terrasoft делать отказались.
И здесь действительно срабатывает пословица, что рыба ищет где глубже, а человек где лучше - мы нашли лучше:)

Добрый день,

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

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

А на счет той же функциональности - пример из другой области... Жигули (или Хундаи) и мерседес - функциональность схожа, однако большая часть людей считают, что Мерседес все же лучше. То, что многие не могут его себе позволить - это другой вопрос.

Горелов Виталий
Компания Лабитек

Вопрос оказался не в демо-версии, а в 40% скидке и бартере.

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

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

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