|
Интерактивные операции недоступны | ☑ | ||
---|---|---|---|---|
0
SpiKe
11.03.13
✎
16:27
|
Из формы документа хотел открыть форму бизнес-процесса, пишет "Интерактивные операции недоступны", как это можно реализовать?
|
|||
1
pessok
11.03.13
✎
16:29
|
на сервере делаешь
|
|||
2
SpiKe
11.03.13
✎
16:30
|
да
|
|||
3
regniws
11.03.13
✎
16:30
|
открывать с клиента.
ваше к. о. |
|||
4
SpiKe
11.03.13
✎
16:33
|
он мне на клиенте не даст потом сделать то, что нужно
|
|||
5
pessok
11.03.13
✎
16:33
|
(4) передавать потом. форму на сервере открывать нельзя
|
|||
6
SpiKe
11.03.13
✎
16:33
|
а как передать?
|
|||
7
regniws
11.03.13
✎
16:34
|
ваще угар..
|
|||
8
SpiKe
11.03.13
✎
16:35
|
мне её сначала создать надо, потом открыть
|
|||
9
pessok
11.03.13
✎
16:37
|
создавай на сервере, открывай на клиенте
|
|||
10
pessok
11.03.13
✎
16:38
|
в клиентской процедуре вызываешь серверную функцию, в которой создается а потом возвращается объект, а потом по объекту октрываешь форму
|
|||
11
regniws
11.03.13
✎
16:39
|
(10) итого 2 серверных вызова. плохо.
|
|||
12
pessok
11.03.13
✎
16:41
|
(11) откуда ты два насчитал?
|
|||
13
pessok
11.03.13
✎
16:42
|
&НаКлиенте
Процедура Создать() Объект = СоздатьДокументНаСервере(); Объект.ПолучитьФорму("ФормаДокумента").Открыть(); КонецПроцедуры |
|||
14
regniws
11.03.13
✎
16:42
|
(13) две строки , два вызова..
|
|||
15
pessok
11.03.13
✎
16:44
|
(14) да ну ты шо? объект уже создан, где тут второй вызов?
|
|||
16
regniws
11.03.13
✎
16:45
|
(13) а еще учитывая то, что метода
объект.ПолучитьФорму не бывает.. ну это так, детали |
|||
17
pessok
11.03.13
✎
16:46
|
(16) ну я на коленке писал, чисто идею
|
|||
18
regniws
11.03.13
✎
16:46
|
(13) причем тут объект и причем тут форму?
СоздатьДокументНаСервере серверная ? первый вызов. ПолучитьФорму("") приводит к вызову сервера. Еще и Открыть иногда может приводить. Итого - два вызова минимум, обычно три и оптимистично. |
|||
19
pessok
11.03.13
✎
16:48
|
(18) и как тогда красиво? :)
кстати, а почему (4) |
|||
20
SpiKe
11.03.13
✎
16:48
|
(19) Ну мне надо заполнить вновь созданный...
|
|||
21
pessok
11.03.13
✎
16:49
|
(20)
Расширение формы документа.ЗаписатьВФорме (Document form extension.WriteInForm) Расширение формы документа (Document form extension) ЗаписатьВФорме (WriteInForm) Синтаксис: ЗаписатьВФорме(<РежимЗаписи>) Параметры: <РежимЗаписи> (необязательный) Тип: РежимЗаписиДокумента. Позволяет указать режим записи документа. Возвращаемое значение: Тип: Булево. Истина - документ успешно записан; Ложь - в противном случае. Описание: Записывает объект, редактируемый в данный момент в форме. Доступность: Толстый клиент. См. также: Расширение формы документа, свойство ИспользоватьРежимПроведения |
|||
22
SpiKe
11.03.13
✎
16:50
|
&НаКлиенте
Процедура СоздатьБП(Команда) СоздатьНовыйБП(); КонецПроцедуры &НаСервере Процедура СоздатьНовыйБП() Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | CRM_БизнесПроцесс.Ссылка |ИЗ | БизнесПроцесс.CRM_БизнесПроцесс КАК CRM_БизнесПроцесс |ГДЕ | CRM_БизнесПроцесс.КоммерческоеПредложение = &КоммерческоеПредложение"; Запрос.УстановитьПараметр("КоммерческоеПредложение", ЭтаФорма.Объект.Ссылка); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Сообщить("На основании этого документа уже создан бизнес-процесс!"); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ЭтаФорма.Объект.БизнесПроцесс = Выборка.Ссылка; КонецЦикла; Возврат КонецЕсли; БП = БизнесПроцессы.CRM_БизнесПроцесс.СоздатьБизнесПроцесс(); БП.Дата = ТекущаяДата(); БП.ДатаСтарта = ТекущаяДата(); БП.Наименование = Строка(ЭтаФорма.Объект.Ссылка); БП.Автор = Пользователи.ТекущийПользователь(); БП.КоммерческоеПредложение = ЭтаФорма.Объект.Ссылка; БП.Партнер = ЭтаФорма.Объект.Партнер; БП.Организация = Справочники.Организации.ОсновнаяОрганизация; БП.Проект = ЭтаФорма.Объект.Проект; БП.Записать(); КонецПроцедуры |
|||
23
SpiKe
11.03.13
✎
16:51
|
пока как-то так(((
|
|||
24
SpiKe
11.03.13
✎
16:53
|
но мне надо, чтоб он сразу форму открывал
|
|||
25
regniws
11.03.13
✎
16:53
|
ОткрытьФорму("ПутьТребуемойФормыОбъекта",
Новый Структура("СоздатьОбъектПриОткрытии", Истина)); &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтдОбр) Если Параметры.СоздатьОбъектПриОткрытии Тогда Если ЗначениеЗаполнено(Параметры.Ключ) Тогда ВызватьИсключение(НСтр("ru='Нельзя открывать форму при указанном и ключе и параметре СоздатьОбъектПриОткрытии'")); КонецЕсли; СоздатьОпределенныйОбъект(); КонецПроцедуры Процедура СоздатьОпределенныйОбъект() // создаем. записываем. ------- ЗначениеВРеквизитФормы(СозданныйОбъект, "Объект"); КонецПроцедуры |
|||
26
SpiKe
11.03.13
✎
16:53
|
куда это добавить?
|
|||
27
samozvanec
11.03.13
✎
16:55
|
данные заполнения тоже параметром передавай и вперед
|
|||
28
samozvanec
11.03.13
✎
16:56
|
(25) вот пользователь ахренеет от такого сообщения
|
|||
29
regniws
11.03.13
✎
16:59
|
(28) полностью согласен, если в продакшен такое писать, то должно быть
ЗаписьЖурналаРегистрации(...); Отказ = Истина; Но тут только демо, на что обратить внимание. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |