Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Передача данных с обработки          
ZhenyaYa Подменю пользователя
сообщение 02.12.12, 11:57
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте! Подскажите, пожалуйста. Нужно из документа открыть модально обработку, там пользователь вводит все что нужно, обработка выполняется.При закрытии хотелось бы получить результат выполнения в документ, с которого открыли. Я так понимаю, можно через глобальный модуль это провернуть, но возможно есть получше решение?

Cthulhu Подменю пользователя
сообщение 02.12.12, 12:11
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

В форме документа:
тКонт="";
ОткрытьФормуМодально(<Параметр1>,тКонт[, < Параметр 3>]);
Если ТипЗначенияСтр(тКонт)<>"СписокЗначений" Тогда//Если (ТипЗначенияСтр(тКонт)="Строка")И(ПустоеЗначение(тКонт)<>0) Тогда
  тКонт="Облом-с... Форма не открылась (или ошибка, или там в ПриОткрытии обнулили статус возврата)...";
  Сообщить(тКонт,"!!!"); Предупреждение(тКонт,12); СтатусВозврата(0); Возврат;
КонецЕсли;
// а тут дергай из тКонт(списка значений) все, что вернулось из обработки ...


В форме обработки:
Процедура ПриЗакрытии() //предопределенная
  Форма.Параметр=СоздатьОбъект("СписокЗначений");
  Форма.Параметр.ДобавитьЗначение(<ЗначениеОчередногоЧоНадоВернуть>[,"<НаименованиеОчередногоЧоНадоВернуть>"]);
  // ...
КонецПроцедуры //ПриЗакрытии


ну, например...

Спасибо сказали: ZhenyaYa,

ZhenyaYa Подменю пользователя
сообщение 02.12.12, 12:35
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Cthulhu, спасибо, то что надо!
Только я теперь потерялся
ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>),
<КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. После исполнения данного метода система вернет в данную переменную контекст открытой формы (необязателен).
Под "данным методом" что имеется ввиду? не только открытие формы?

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

Cthulhu Подменю пользователя
сообщение 02.12.12, 13:41
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

Цитата(ZhenyaYa @ 02.12.12, 12:35) *
Только я теперь потерялся

Под "данным методом" подразумевается "ОткрытьФорму".

И сказанное тобой - справедливо только для НЕ МОДАЛЬНОГО открытия формы:
1) открывается указанная форма, в ней в Форма.Параметр доступно все, что ты туда передал (пока форма открыта, до самого закрытия);
2) в открытой форме выполняется "ПриОткрытии" (или "ПриПовторномОткрытии" если эта форма уже была ранее открыта), после чего выполнения кода переходит отбратно, на слкдующий после "ОткрытьФорму" оператор - причем уже в этом(!) коде в параметр принимается Контекст(!) открытой формы - через который можно поманипулировать с её ревизитами и доступными в её контексте методами формы и переменными модуля формы.
3) после закрытия открытой таким образом формы (и если на этот момент переменная-параметр ещё "живая" - т.е. если это переменная модуля, например) в этой переменной уже будет находится все, что в открытой форме присвоено параметру (Форма.Параметр). При не-модальном открытии формы отлов этого момента (закрытия открытой программно формы) - отдельная песня, и, как правило, не представляет интереса (потому что не так явно понятно, и требует дополнительных телодвижений).

При МОДАЛЬНОМ открытии формы:
1) открывается указанная форма, в ней в Форма.Параметр доступно все, что ты туда передал (пока форма открыта, до самого закрытия);
2) в открытой форме выполняется "ПриОткрытии" (или "ПриПовторномОткрытии" если эта форма уже была ранее открыта) и "всё-всё-всё остальное" в этой форме. Вызвавшая модальное открытие форма при этом как-бы "замерзает и ждет" закрытия модально открытой формы!
3) ТОЛЬКО сразу после после закрытия открытой модально формы выполнения кода переходит отбратно, на слкдующий после "ОткрытьФорму" оператор, и тут уже в этой переменной будет находится все, что в открытой модально форме присвоено параметру (Форма.Параметр). Соответственно при єтом возможно сравнительно простое использование полученного в єтой переменной значений(или, если надо, списка значений, например), которое возвращает "в параметре" ранее открытая (модально) форма.

надеюсь, понятно разжевал...

Сообщение отредактировал Cthulhu - 02.12.12, 13:41

Спасибо сказали: ZhenyaYa,

MATEVI Подменю пользователя
сообщение 02.12.12, 14:10
Сообщение #5

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 958 раз
Рейтинг: 0

Цитата(ZhenyaYa @ 02.12.12, 12:35) *
зы/только не надо мне предупреждение давать

Надо, надо. Для спасибо есть кнопочка smile.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 06.06.24, 2:28
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!