|
|
|
Отказаться от открытия формы | ☑ | ||
|---|---|---|---|---|
|
0
Prazdnik1С
29.10.09
✎
14:41
|
Создаю один документ на основании другого. Заполняю в ОбработкеЗаполнения, если что-то не так, то не хочу открывать форму порождаемого документа. Посоветуйте как сделать пож-та
|
|||
|
1
Ksandr
29.10.09
✎
14:42
|
Возврат;
|
|||
|
2
Ksandr
29.10.09
✎
14:42
|
Или Объект.ПолучитьФорму("Имя", Ссылка).Закрыть();
|
|||
|
3
Ksandr
29.10.09
✎
14:45
|
Еще идея. при открытии формы проверять значение переменной из модуля объекта и в зависимости от нее что то делать или не делать
|
|||
|
4
Prazdnik1С
29.10.09
✎
14:56
|
(3) это вроде подходит, но из модуля формы я не могу получить переменную модуля объекта
|
|||
|
5
Prazdnik1С
29.10.09
✎
14:57
|
пятаюсь обработать в ПриСозданииНаСервере, но не пойму как
|
|||
|
6
73
29.10.09
✎
14:59
|
(4) <не могу получить переменную модуля объекта> - "Экспорт" должен помочь.
|
|||
|
7
vde69
29.10.09
✎
15:00
|
примерно так:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) // сначало проверим для вложеных БП, если есть - вообще форму не покажем Попытка Если Ссылка.ТочкаМаршрута.Вид = ВидТочкиМаршрутаБизнесПроцесса.ВложенныйБизнесПроцесс Тогда Отказ = Истина; // здесь можно сделать открытие формы вложеного БП, или списка текущих задачь по вложеному БП Возврат; КонецЕсли; // проверим, что нельзя двигать процесс если есть пред обработка (0-уровень) Если Константы.ИспользоватьПредварительныйКонтроль.Получить() и (Константы.ГруппаАдресацииПервойЛинии.Получить() = Ссылка.Адресат) тогда Предупреждение("Используется режим предварительной оценки. Используйте быструю переадресацию"); Отказ = Истина; СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; Исключение Отказ = Истина; Возврат; КонецПопытки; // // тут проверим, может надо открыть другую форму // ВНИМАНИЕ!!! данный алгоритм возможно надо будет переделать, сравнение строк не надежно, // возможно совпадение с названиями в будующих БП Попытка АльтернативнаяФорма = Ссылка.ПолучитьФорму(СокрЛП(Ссылка.ТочкаМаршрута.Имя), ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности); Исключение АльтернативнаяФорма = Неопределено; КонецПопытки; // позможно есть форма по умолчанию для этого БП Если АльтернативнаяФорма = Неопределено Тогда Если БизнесПроцесс.Метаданные().Имя = "Работа" Тогда АльтернативнаяФорма = Ссылка.ПолучитьФорму("ОсновнаяДляБПРабота", ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности); КонецЕсли; КонецЕсли; // позможно есть форма по умолчанию для этого БП Если АльтернативнаяФорма = Неопределено Тогда Если БизнесПроцесс.Метаданные().Имя = "Согласование" Тогда АльтернативнаяФорма = Ссылка.ПолучитьФорму("ОсновнаяДляБПСогласование", ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности); КонецЕсли; КонецЕсли; ПланируемаяДатаНачала = ГлавныйБП.ПланируемаяДатаНачала; ПланируемаяДатаОкончания = ГлавныйБП.ПланируемаяДатаОкончания; Если АльтернативнаяФорма <> Неопределено Тогда // есть специальная форма, надо работать с ней АльтернативнаяФорма.ТолькоПросмотр = ЭтаФорма.ТолькоПросмотр; АльтернативнаяФорма.Открыть(); АльтернативнаяФорма.Активизировать(); Отказ = Истина; СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; КонецПроцедуры |
|||
|
8
Prazdnik1С
29.10.09
✎
15:07
|
(7) не то немного. Как мне кажется, в ОбработкеЗаполнения нужно указать то, что открывать не будем, а в ПриСозданииНаСервере этот параметр получить. Но не пойму как
|
|||
|
9
НЕА123
29.10.09
✎
15:09
|
(6) 8.2
|
|||
|
10
Prazdnik1С
29.10.09
✎
15:28
|
ап
|
|||
|
11
73
29.10.09
✎
15:29
|
(9) Уже увидел, что не попал...
|
|||
|
12
vde69
29.10.09
✎
15:31
|
(10) почему мой вариант не катит?
|
|||
|
13
Prazdnik1С
29.10.09
✎
15:33
|
(12) у меня основной вопрос как передать что-то из модуля объекта в модуль формы
|
|||
|
14
tsr
29.10.09
✎
15:34
|
(13) Реквизит какой нибудь заполни. Комментарий, например. При открытии анализируй. Можно еще через временное хранилище замутить
|
|||
|
15
xard
29.10.09
✎
15:35
|
(13) сделай реквизит формы и после создания самой формы, заполняй этот реквизит
|
|||
|
16
vde69
29.10.09
✎
15:37
|
(13) вариантов масса...
1. через реквезит формы 2. через доп. данные обьекта (на 8.0 нету, на 8.1 есть) 3. через глобальную переменную 4. через параметр сеанса 5. через параметр процедуры единственные траблы - это "мутабельные данные", в остальном проблемм вообще нет! ну и еще, на сервере нельзя форму юзать :) |
|||
|
17
Prazdnik1С
29.10.09
✎
15:39
|
(16) пока только понимаю как через 4 сделать:)Ну я пока 8.2 изучаю только. ПриСозданииНаСервере как раз на сервере выполняется и форма там есть
|
|||
|
18
vde69
29.10.09
✎
15:43
|
(17) обьект на сервере доступен? посмотри в типовых как переменные передаються из модуля проведения в модуль регистра
|
|||
|
19
Prazdnik1С
29.10.09
✎
15:45
|
(18) ок, наверно надо почитать внимательно руководство разработчика
|
|||
|
20
Mort
29.10.09
✎
15:57
|
Надо учесть, что в 8.2 ОбработкаЗаполнения вызывается просто при интерактивном добавлении элемента. Думаю ты не туда роешь, может быть проверку делать стоит в момент когда юзер решает ввести на основании, например делаешь свою команду в группе ввода на основании и заменяешь ею в командном интерфейсе родную (галочками).
|
|||
|
21
Prazdnik1С
29.10.09
✎
16:03
|
(20) да нет, мне надо стандартный ввод на основании, из заказа покупателя ввожу реализацию товаров и услуг. Просто если по заказу уже по всем товарам сделаны реализации, то новую реализацию порождать не нужно. В ОбработкеЗаполнения отказаться от создания не могу, а в ПриСозданииНаСервере не пойму как
|
|||
|
22
Prazdnik1С
29.10.09
✎
16:04
|
(20)а вообще перечитал - можно и так сделать. Спасибо!
|
|||
|
23
Mort
29.10.09
✎
16:07
|
(21) Делаешь команду в группе ввод на основании, тип параметра - твой заказ. В модуле команды проверяешь параметр (это заказ) и если надо открываешь форму нового задав для него параметры заполнения. Тупо идешь в форму списка и элемента и снимаешь в командном интерфейсе в группе "На основании" галки с автоматом созданной команды и ставишь на свою. Чо сложного?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |