Имя: Пароль:
1C
1С v8
Интерактивные операции недоступны
,
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) полностью согласен, если в продакшен такое писать, то должно быть

ЗаписьЖурналаРегистрации(...);

Отказ = Истина;

Но тут только демо, на что обратить внимание.