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

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

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

Нравится

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

Владислав, вы можете реализовать его используя ModalBox. Посмотрите каким образом реализован ModalBox и его использование (на примере lookupPage)

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

Что-то типа этого:

var modal_box_container = ModalBox.show();
sandbox.loadModule("MyModule", {
    renderTo: modal_box_container
})

 

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

Добрый день.
Необходимо создать всплывающее окно при нажатии на кнопку "Отправить смс" на CTI панели.
В всплывающем окне необходимо разместить Справочник, Текстовое поле, и две кнопки Отправить и Отмена. И реализовать Логику отправки XML на некий урл.
Похожее окно есть в мастере раздела при добавлении нового поля(например). Скрин прикреплю.
И похоже при добавлении адреса доставки в "Заказе". Как вызвать его я не очень понимаю.

Подскажите как правильно(легче) это реализовать(любое из этих двух окон)?
В каком направлении вообще искать?

Нравится

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

Добрый день Дмитрий!!!

судя по скриншотам у вас версия 7.7. на первой картинке изображено Модальное окно созданное вручную. Базового инструмента в 7.7 генерирующие Модальные окна нет, как это к примеру сделано с Базовой схемой карточки редактирования. На втором скриншоте изображено PopUp окно. и данное окно можно привязать к любой кнопке, к любому событию. Легче реализовать 2 скриншот, так как все инструменты для генерации данного окна в системе есть. И там его не так сложно создавать вручную. Нужно только разобраться как работает данное окно при Добавление адреса, на карточки редактирования Заказа. Но еще раз повторюсь сложностей там никаких нет.

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

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

Василий сам код вам ничего не даст. Если разбирать вызов окна по кнопке "Добавить адрес" на детали "Адрес доставки", то могу ответить, что метод с помощью которого происходит открытие PopUp окна это   showCard: . Данный метод вызывается и отрабатывается, когда пользователь нажимает на Радио-кнопку "Добавить адрес".

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

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

Добрый день!
Создал своё окно и вызываю его в коде, но оно отрывается без данных.
В чём может быть проблема?

Нравится

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

Как именно вы его открываете и какова вообще задача?

"Андросов Дмитрий" написал:

Как именно вы его открываете и какова вообще задача?

Открываю так:
WindowPrompt = GetSingleItemByCode('wnd_CategoryGiftArea');
WindowPrompt.ShowModal();

Мне нужно отобразить в собственном окне данные справочника.

Такое чувство, что окно базу не подключает.

если ваш реестр унаследован от базового и все остальное настроено правильно, то вам надо просто добавить Prepare() в эту функцию:

WindowPrompt = GetSingleItemByCode('wnd_CategoryGiftArea');
WindowPrompt.Prepare();
WindowPrompt.ShowModal();

"Андросов Дмитрий" написал:если ваш реестр унаследован от базового и все остальное настроено правильно, то вам надо просто добавить Prepare() в эту функцию:

Пробовал, не отображает.
В обработчике этого события нужно, что-то писать?

"Егоров Руслан" написал:В обработчике этого события нужно, что-то писать?

если ваш реестр унаследован от базового и для dlData указан нужный датасет, то достаточно в OnPrepare написать

wnd_BaseGridAreaOnPrepare(Window);

"Андросов Дмитрий" написал:если ваш реестр унаследован от базового

А если нет?

тогда надо проинициализировать все (в т.ч. датасет) самому. Проще унаследовать :wink:

"Андросов Дмитрий" написал:Проще унаследовать

Т.е. указать значение в свойстве TemplateWindowUSI = wnd_BaseGridArea?
А после этого я могу удалить в окне не нужные мне элементы?

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

"Андросов Дмитрий" написал:потом скрыть то, что не нужно

можно только скрыть или удалить тоже можно?

"Егоров Руслан" написал:удалить тоже можно

не выйдет :smile:

"Андросов Дмитрий" написал:Проще унаследовать

Создал окно заново, но данных так и нет((
Где еще капать?

для начала прочитайте
http://www.community.terrasoft.ru/developer/advice/4576
а потом посмотрите, как реализованы существующие реестры

если не поможет, покажите скриншоты настроек окна и его скрипт

"Андросов Дмитрий" написал:для начала прочитайте
http://www.community.terrasoft.ru/developer/advice/4576
а потом посмотрите, как реализованы существующие реестры

если не поможет, покажите скриншоты настроек окна и его скрипт


Делал всё также.


а теперь еще события окна, пожалуйста

ПС. вы знаете о существовании окон выбора из справочника?

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

Открыть свое окно можно следующим образом:

var EditWindowUSI = 'wnd_OpportunityEdit';
var Attributes = GetNewDictionary();
Attributes.Add('RecordID', GUID_NULL);  // если не указываем RecordID, то открывается окно для добавления данных, если указываем, то запись с ID = RecordID открывается для редактирование
var DefaultValues = GetNewDictionary();  // значения по умолчанию
DefaultValues.Add('CustomerID', AccountID); 
ShowEditWindowEx(EditWindowUSI, Attributes, DefaultValues);

"Безродный Андрей" написал:Здравствуйте!

Открыть свое окно можно следующим образом:

Это тоже пробовал. Та же самая ситуация, данных нет.

"Андросов Дмитрий" написал:ПС. вы знаете о существовании окон выбора из справочника?

Где можно про это почитать?

"Андросов Дмитрий" написал:а теперь еще события окна, пожалуйста

Вот:

Сделал через вызов окна "SelectData".
Но мне бы хотелось узнать, как можно подгрузить данные в своё окно?

Сделайте dlData.Dataset.Open() на OnPrepare()

"Олейник Дмитрий" написал:Сделайте dlData.Dataset.Open() на OnPrepare()

Сделал, не подгружает.

Здравствуйте, Руслан!

Прикрепите все используемые Вами сервисы и сообщите точную версию.

Будем воспроизводить.

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

В презентации Terrasoft XRM Distribution на слайде под названием "Интеграция с 1С" встретил следующую фразу:
"Возможность поднятия окон 1С в Terrasoft"

Я знаю, что в базовом функционале Террасофт нет примера реализации этой функциональности.

Кто-то имел дело с открытием окон 1С из Террасофт? Когда это может пригодиться? Может есть какие-то жизненные примеры и как это реализуется.

Интересует версия 1С 8.1, 8.2, можно написать и по 7.7.

Нравится

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

Возможно, это поможет?

"Зверев Александр" написал:Возможно, это поможет?

Александр, спасибо за полезную ссылку, думаю пригодиться.

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

Добрый день!

Подскажите, пожалуйста, создаю ExcellApplication

        var ExcelApplication = new ActiveXObject('Excel.Application');
        ExcelApplication.Visible = false;

        ...

        ExcelApplication.Visible = true;      

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

Заранее спасибо!

Нравится

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

я вот чего нарыл)
http://www.redov.ru/kompyutery_i_internet/o_chyom_ne_pishut_v_knigah_po…

осталось вызвать это как-то из TS :exclaim:

Проверял, API из ТС можно вызвать только подключая ДЛЛ, этот вариант у меня оставлен на последок, я думаю может как-то проще можно...

Здравствуйте, Алексей.

К сожалению, методами Excell.Application управлять окном приложения не получится. Есть метод Activate, но вызываемое окно уже, по умолчанию, активно, просто отображается не на переднем плане.
Поэтому, придется использовать упомянутый вариант - обращаться к системе.

Понял, спасибо!

я правильно понимаю, конструкция (MSDN):

            string caption = oExcel.Caption;
            IntPtr handler = FindWindow(null, caption);
            SetForegroundWindow(handler);
            oExcel.Visible = true;

работать не будет?

сделал не совсем логичный вариант:

            var Shell = new ActiveXObject('WScript.Shell');
            Shell.AppActivate(Excel.Caption);
            Excel.Visible = true;

после чего повторный вызов метода, отрабатывающего предыдущий код, с помощью:

            Shell.AppActivate(Control.ParentWindow.WindowCaption); 
            Shell.SendKeys("~");

то есть "двойное нажатие на кнопку" в террасофте всё-таки активирует эксель :smile:

--
Terrasoft 3.4.1.84
SQL Server 10.50.2500.0
Microsoft Windows NT 6.1 (7601) x64 en

Думаю первая конструкция будет работать, если подключить в конфигурацию библиотеку user32.dll, а затем вызывать в скрипте функции FindWindow, SetForegroundWindow, описанные в библиотеке.

"Бондарь Наталия" написал:подключить в конфигурацию библиотеку user32.dll

Это можно сделать так.

"Бондарь Наталия" написал:

Думаю первая конструкция будет работать, если подключить в конфигурацию библиотеку user32.dll, а затем вызывать в скрипте функции FindWindow, SetForegroundWindow, описанные в библиотеке.

Может быть можно сразу указать в System.CreateObject объект из user32.dll которому принадлежат эти методы? чтобы не пользоваться сторонними разработками, типа:

Wrap = System.CreateObject("DynamicWrapper");
Wrap.Register("SHELL32.DLL", "ShellExecute", "i=lssssl", "f=s", "r=l");

"AlexLS" написал:для непосвященных: а где эту длл-ку взять?

C:\Windows\System32

"Андросов Дмитрий" написал:AlexLS пишет:

для непосвященных: а где эту длл-ку взять?

C:\Windows\System32


Спасибо Дмитрий! Осталось определиться: возможно ли запустить com-объект этой библиотеки без использования чего-то дополнительного...

"AlexLS" написал:Может быть можно сразу указать в System.CreateObject объект из user32.dll которому принадлежат эти методы?

Инетересно, какой? С учётом того, что user32.dll написана на C задолго до появления COM.

"Зверев Александр" написал:Инетересно, какой? С учётом того, что user32.dll написана на C задолго до появления COM.

жаль. значит (если по-мне) нужно использовать мой

"AlexLS" написал:не совсем логичный вариант

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

Hello colleagues,

I would like to ask some help with fields in editable grid. I have an editable Grid Area Window with two columns (one field is read only and other editable).
When I am using my mouse, everytime I am clicking on that editable field (moving through the records), it focuses on that field: marks whole text if there is any and I can type in it. That's great.
But everytime I am selecting that field using only keyboard (e. g. pressing DOWN key), that field is selected, but not focused, i. e. I have to either press LEFT key and RIGHT key or click with mouse in that field to change value.

What I would like to do is to be able to change field's value instantly after pressing DOWN key (or something like that).

I am using TS 3.4.0 version.

Any help would be very appreciated.

Thank you.

Нравится

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

I don't think that it is possible at all

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

В администраторе создал окно, однако, не смог его изменить его размеры растягивая окно (нет возможности), только изменяя свойства height и width.
Действительно ли отсутствует возможность изменения окна "вручную", либо необходимо указать какие-то параметры для активации такой возможности?

Нравится

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

Тоже удивился такому изменению в редакторе окон )

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

Исправим обязательно в ближайшее время. Хочу отметить, что такая проблема есть только с окнами у которых BorderStyle не равно wbsSizeable.

Спасибо. Жду решение.

Олег, данная проблема исправлена в сборке 3.4.0.56. Для пакета обновления, пожалуйста, напишите на suport@terrasoft.ru

Анна, спасибо. Уже запросил.

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