экспорт
excel
Studio_Creatio_enterprise_edition
#7.18

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

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

Нравится

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

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



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



Пожелание зафиксировано и передано на ответственную команду разработки для рассмотрения реализации в будущих версиях.



С уважением,

Богдан

Можно настроить список в аналитике и экспортировать оттуда.



Можно добавить как справочник и экспортировать оттуда.



Можно в PowerBI получить данные через ODATA

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

Как массово экспортировать данные из детали Контакты и структура в Контрагенте? 

Нравится

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

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



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

Больше информации на нашей Академии:

https://academy.terrasoft.ua/docs/8-0/user/bazis_platformy/dannye/excel…

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

Больше информации в статье:

https://academy.terrasoft.ua/docs/user/bazis_platformy/interfejs/reestr…

В случае же с деталью "Контакты", она построена просто на обьекте "Контакт", поэтому нужную Вам выгрузку Вы можете осуществить из раздела "Контакт" установив предварительно необходимые фильтр. условия (к примеру "Контрагент" существует).  



С уважением,

Анастасия

Показать все комментарии
роли
функциональные роли
организационные роли
экспорт
ролевая
модель
Sales_Creatio_enterprise_edition
7.17

Добрый день! 

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

Нравится

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

Добрый день,

 

Спасибо за обращение.

 

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

 

С уважением,

Анастасия

Добрый день,

 

Спасибо за обращение.

 

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

 

С уважением,

Анастасия

Показать все комментарии
экспорт
7.10
Sales_Creatio_enterprise_edition

При попытке выгрузки списка, выдается ошибка "Неполадка сервера". Дело в том что мы увеличили количество столбцов до 50 и после этого перестали экспортироваться списки больше ~25, ограничение в web.config на количество выгружаемых строк увеличено до 40 000, есть ли возможность выгрузить большее количество строк?

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

 

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

Нравится

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

Такие большие массивы мы через ODATA в Excel Power BI выгружали

Если сайт развёрнут локально, то ещё можно брать информацию напрямую запросами к базе. Или сохранить в файл, используя Management Studio, или подключаться к базе прямо из Excel по кнопке на вкладке «Данные».

 

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

Здравствуйте, Сакен!

 

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

 

Такое поведение ещё может быть, если в системной настройке "Количество записей в пачке для экспорта в Excel" стоит слишком больше значение. Коробочное значение равно 2000.

Показать все комментарии
экспорт
расписание
Периодические задачи
7.4
sales_enterprise

Необходимо с определенной периодичностью (например 1 раз в день) экспортировать определенный справочник (с ранее подготовленным форматом экспорта) в xls/csv формате и ложить его на сервер, чтобы он был доступен по http. 

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

Можно ли создать БП с действием "Запустить экспорт №3" и положить его на сервер

Как альтернатива - отправить экспортированный файл на определенную почту

Нравится

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

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

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

Показать все комментарии
экспорт
экспорт данных
xlsx
7.9
service_enterprise

Коллеги, добрый день.

Подскажите возможен ли экспорт реестра данных в формат xls и/или xlsx.

Нравится

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

Здравствуйте, Евгений!

В текущей реализации приложения экспорт возможен только в формат *.csv, но реализация экспорта в *.xlsx запланирована на версию 7.12.

Показать все комментарии
excel
FastReport
xlsx
экспорт
Отчёты
Разработка

Здравствуйте!
Подскажите пожалуйста как реализовать возможность экспорта отчета FR в xlsx. Доступно только xls, хоть в программе и прописаны все версии офиса. По большей части нужно для автоматического формирования и сохранения отчета. Если указывать в названии файла расширение xlsx - файл создается, но не открывается (((( На скрине - пользовательский экспорт отчета в Microsoft Excel.
Версия ТС - 3.4.0.38.
Спасибо!

Нравится

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

Светлана, используемый в Terrasoft движок FastReport является сторонним компонентом, влиять извне на его работу не всегда есть возможность. Если он не поддерживает сохранение в XLSX, то нельзя.

Можно попробовать следующие обходные решения:

  • Сохранять файл в XLS, потом отдельно конвертировать файлы с помощью Microsoft OFC.
  • Полностью переписать построение отчёта, вместо FastReport использовать чисто программное формирование при помощи COM-объекта Excel, там можно и XLSX.

"Зверев Александр" написал: Если он не поддерживает сохранение в XLSX, то нельзя.

Судя по форумам, вполне поддерживает. Возможно, вопрос в используемой версии в TS

Печально(( движок FR тоже ведь не заменить?
Спасибо!

В Terrasoft встроена конкретная версия движка. Возможно, по ссылке более новая.

Версия FR 4.10.18

А Владимир привёл ссылку на 5.5.9.

Менять встроенный движок нельзя.

Показать все комментарии
curl
slack
экспорт
Технические вопросы
7.x

Приветствую.
Хочу сделать интеграцию с внешней системой, в частности мессенджером Slack, он позволяет сделать WebHook, и обращаться к нему посредством POST запроса, например:

curl -X POST --data-urlencode 'payload={"channel": "#general", "username": "BPM-bot", "text": "This is posted to #general and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXX

Это запостит в канал #general от имени BPM-bot сообщение text и смайл, https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXX уникальный адрес webhook`а для моего инстанса Slack.

Как в BPM реализовать отправку этого сообщения? Т.е. как сделать бизнес-процесс мне понятно, а вот с отправкой сложности...

Нравится

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

[csharp]
public class RequestUtils: IDisposable {

#region Methods: Private

private async Task SendRequest(WebRequest request) {
var response = await request.GetResponseAsync();
return (HttpWebResponse)response;
}

#endregion

#region Methods: Public

public void Dispose() {
}

public void DoPostRequest(string requestUri, string user, string pwd, string text) {
/* data sample
{
"userName": "user1",
"password": "password",
"data": "Hello"
}
*/
/* Преобразовываем в json */
string jsonData = JsonConvert.SerializeObject(new {
userName = user,
paswword = pwd,
data = text
});
/* uri sample: http://localhost/MyApp/bla.svc/Login */
WebRequest request = WebRequest.Create(requestUri);
byte[] dataArray = Encoding.UTF8.GetBytes(jsonData);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = dataArray.Length;
Stream stream = request.GetRequestStream();
stream.Write(dataArray, 0, dataArray.Length);
/* send request */

/* async */
var response = SendRequest(request);

/* or sync*/
var response = request.GetResponse();
}

#endregion
}

[/csharp]

Показать все комментарии
Контрагент
экспорт
Интеграция и импорт данных
Разработка

И снова здравствуйте!

Третий день мучаюсь с экспортом контрагентов в 1C. Сам контрагент, включая название передаётся легко, но загвоздка в его деталях - адресах, ИНН и КПП.

Адреса берутся из набора данных ТС "Адреса контрагента", а ИНН и КПП - из "Платежные реквизиты" но экспортируются в самого контрагента. То есть, это, вроде, подчинённые детали, а вроде и нет.

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

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

Нравится

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

С ИНН и КПП разобрался программно, а также с произвольной строкой адреса. Теперь осталось только передавать детали адреса - Страну, Город, Улицу и т.д.

Лично у меня экспорт контрагентов всё одной настройкой...
Вот кусок с адресами. Событие OnAfterRecordExport:

[javascript]
//удалить все адреса и средства связи
var ci1C = Param.Obj1C.РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
ci1C.Отбор.Объект.Установить(Select1C.Ссылка);
//[не регистрируем изменения на стороне 1с
ci1C.ОбменДанными.Получатели.АвтоЗаполнение = false;
//]
ci1C.Записать();
//Адреса
var AccountID = Dataset('ID');
var ds = Services.GetNewItemByUSI('ds_AccountAddress');
ApplyDatasetFilter(ds, 'AccountID', AccountID, true);
ds.Open();
while(!ds.IsEOF) {
var ci1CMain = Param.Obj1C.РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
var ci1C = ci1CMain.Добавить();
ci1C.Объект = Select1C.Ссылка;
var met=Param.Obj1C.Метаданные.Перечисления.Найти("ТипыКонтактнойИнформации");
var meta=met.ЗначенияПеречисления.Найти('Адрес');
var metalink = Param.Obj1C.Перечисления.ТипыКонтактнойИнформации[meta.Имя];
ci1C.Тип = metalink;
var AdrTypeID = ds('KLADRAddressTypeID');
var AdrTypeUID1C = GetDatasetFieldValueByID('ds_AddressType',
AdrTypeID, 'UID1C');
var AddressType1CLink;
if(!IsEmptyValue(AdrTypeUID1C)) {
AddressType1CLink = GetObjectLinkByUID(
Param.Obj1C.Справочники.ВидыКонтактнойИнформации, AdrTypeUID1C, Param);
ci1C.Вид = !AddressType1CLink.Пустая() ? AddressType1CLink : null;
ci1C.Представление = ds('KLADRAddress');
ci1C.Поле1 = ds('KLADRAddressZIP');
ci1C.Поле2 = ds('KLADRAddressSubject');
ci1C.Поле3 = ds('KLADRAddressRegion');
ci1C.Поле4 = ds('KLADRAddressDistrictCenter');
ci1C.Поле5 = ds('KLADRAddressCity');
ci1C.Поле6 = ds('KLADRAddressStreet');
ci1C.Поле7 = ds('KLADRAddressHouse');
ci1C.Поле8 = ds('KLADRAddressCase');
ci1C.Поле9 = ds('KLADRAddressFlat');
//[не регистрируем изменения на стороне 1с
ci1CMain.ОбменДанными.Получатели.АвтоЗаполнение = false;
//]
ci1CMain.Записать(false);
}
ds.GotoNext();
}
ds.Close();
[/javascript]

По поводу заполнения справочных реквизитов...
Получаете ID страны из детали адреса, далее по этому ID получаете значение в поле UID1C, и далее получаете ссылку на страну в 1с, и кладете её в реквизит...
Примерно так:

[javascript]
var Invoice1C = Param.Obj1C.Документы.Счет;
var InvoiceUID1C = GetDatasetFieldValueByID('ds_Opportunity',
dlData.Dataset('ID'), 'UID1C');
InvoiceUID1C = CreateGUID1C(InvoiceUID1C, Param.Obj1C);
var Link1C = Invoice1C.GetRef(InvoiceUID1C);
[/javascript]

[javascript]
function CreateGUID1C(UID1C, Obj1C) {
if(UID1C == null) {
return '';
}
UID1C = UID1C.replace('{', '');
UID1C = UID1C.replace('}', '');
UID1C = Obj1C.NewObject('УникальныйИдентификатор', UID1C);
return UID1C;
}
[/javascript]

> Лично у меня экспорт контрагентов всё одной настройкой...

Да, этот ваш код мне сильно помог, хоть он и не подходит для 1С 8.3, так как "РегистрыСведений.КонтактнаяИнформация" больше не существует, они переехали в справочники.

> Получаете ID страны из детали адреса, далее по этому ID получаете значение в поле UID1C, и далее получаете ссылку на страну в 1с, и кладете её в реквизит...

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

ОК. Если что будет конкретного: кидайте ваш код или скрины.

Попробовал, не то чтобы получилось. Работает всё так:

Берём объект:

[javascript]
var Contragent = Select1C.Ссылка.ПолучитьОбъект();
[/javascript]

Получаем его ID, идём по списку адресов, добавляя каждый:

[javascript]
var AccountID = Dataset('ID');

var ds = Services.GetNewItemByUSI('ds_AccountAddress');
ApplyDatasetFilter(ds, 'AccountID', AccountID, true);
ds.Open();

while(!ds.IsEOF) {
AddAddress(Param, Contragent, ds);
ds.GotoNext();
}
ds.Close();

[/javascript]

Функция AddAddress:

[javascript]
var newAddress= Contragent.КонтактнаяИнформация.Добавить() ;
newAddress.Тип = Param.Obj1C.Перечисления.ТипыКонтактнойИнформации.Адрес;

switch(Dataset('AddressTypeID'))
{
//Добавляем вид адреса
}

//Из комментария выше
var Contragent1C = Param.Obj1C.Справочники.СтраныМира;
var CountryUID1C = GetDatasetFieldValueByID('ds_Country', Dataset('CountryID'), 'UID1C');
CountryUID1C = CreateGUID1C(CountryUID1C, Param.Obj1C);
newAddress.Страна = Contragent1C.GetRef(CountryUID1C);

Contragent.Записать(false);
[/javascript]

При этом поле Страна отображается верно. Однако, при обзоре в клиенте 1С, поле не заполнено.

Как-то так пока.

После записи выполните запрос в 1с и посмотрите что в этом поле. Если ничего - значит не записалось. Возможно срабатывают какие то проверки "перед записью" на стороне 1с?

Имеется ввиду запрос к БД 1С? Я, честно говоря, не в курсе, как это сделать с файловой версией 1С.

Забавно, но при попытке импорта импортируется именно то значение, что было экспортировано. Однако, в самом клиенте оно не меняется.

Посмотрите в 1С Администраторе - быть может в коде формы есть какая-то логика...

В функции РазместитьКонтактнуюИнформацию() логика загрузки простая:

[javascript]
ТаблицаРазмещенияКИ = УправлениеКонтактнойИнформациейБП.ПолучитьПустуюТаблицуРазмещенияКонтактнойИнформации();

УправлениеКонтактнойИнформациейБП.ДобавитьОписаниеРазмещенияКонтактнойИнформации(ТаблицаРазмещенияКИ, Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента, Элементы.ЮрАдресКонтрагента.ПутьКДанным);

[/javascript]

Ничего подозрительного пока не заметил.

Ну смотрите, предлагаю сделать так: зайдите в 1с и в меню "Операции" выберите "Обработка". Найдите там "КОнсоль запросов" либо "Консоль отчетов" (если нет - установите), и после записи через ТС выполните в обработке запрос к БД (думаю для файловой БД они тоже работают):

Выбрать ВашРеквизит Из Справочник.ВашСправочник.ВашаТаблЧасть
Где Ссылка.Наименование = "МойКонтрагент"

Если реквизит будет заполнен - значит запись проходит, если нет - значит нет :)

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

пс: выполнение 1с-ного кода через COM (Террасофт) также можно отлаживать - погуглите.

Та-да! Всё дело в поле "ЗначенияПолей" (sic!), которое содержит... значения полей! То есть, значения всех остальных полей, у которых есть и свои собственные значения, только в xml формате. Я уже попробовал просто вбить скопированный и подправленный xml, всё загружается. Подробнее инфу можно найти тут: http://forum.aeroion.ru/topic779.html

Спасибо, Дмитрий. Без консоли запросов я бы ещё долго бился бы об это.

Ого! Это что-то новое :)

Показать все комментарии
адреса
экспорт
Интеграция и импорт данных
Разработка

Общая картина:
Есть настроена интеграция, импорт/экспорт
деталь адресса только импорт, экспорт делается через скрипт. Все бы хорошо, записывает в 1С адреса, но поле Code1C пустое и при импорте создается новая запись.
вот часть кода где записывается адресс в 1С:

 var ci1CMain = Param.Obj1C.РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
 var ci1C = ci1CMain.Добавить();
 ci1C.Объект = Select1C.Ссылка;
 ci1C.Тип = metalink;
 ci1C.Вид = !AddressType1CLink.Пустая() ? AddressType1CLink : null;
 ci1CMain.Записать(false);  

пример значения поля:"f90039f8-ce1b-11e4-849f-002590a73b07#//#Адрес#//#87d961a6-9e2f-405c-855e-215869755d34#//#"
первую часть(f90039f8-ce1b-11e4-849f-002590a73b07) я могу получить так: Param.Obj1C.XMLString(Select1C.Ref.UUID()).
а как и где получить это:"87d961a6-9e2f-405c-855e-215869755d34"???

Нравится

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

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

К сожалению - это регистр сведений и в нем нет никакого UID который определит уникальность. Добавьте поле "Значение" и "Тип средства связи" как ключевое, либо перед имопртом очищайте деталь, и загружайте все средства связи по объекту.

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