Имя: Пароль:
1C
1С v8
Как сделать подбор документов во внешней обработке?
0 Босечка
 
13.03.14
15:55
Как сделать подбор  документов во внешней обработке? Эту процедуру повесила на кнопку. Список документов открывается. Что надо сделать, чтобы выбранный документ попал в список значений, который находится в форме внешней обработки,

Процедура СделатьПодбор(Кнопка)
   ФормаПодбора = Документы.ТехническоеЗадание.ПолучитьФормуВыбора(, ЭтаФорма.ЭлементыФормы.НадписьТехническоеЗадание);
   ФормаПодбора.ЗакрыватьПриВыборе = Истина;
   ФормаПодбора.РежимВыбора = Истина;
   ФормаПодбора.Открыть();
КонецПроцедуры
1 ДенисЧ
 
13.03.14
15:57
ФормаПодбора = Документы.ТехническоеЗадание.ПолучитьФормуВыбора(, ЭтаФорма.ЭлементыФормы.ИмяЭлементаУправленияСписка);

И процедру соответствующую
2 Босечка
 
13.03.14
16:00
ИмяЭлементаУправленияСписка - это имя табличного поля во внешней обработке? И какую процедуру, куда ее вставить?
3 Remark
 
13.03.14
16:16
Можно так:

РезультатВыбора = ФормаПодбора.ОткрытьМодально();
4 Remark
 
13.03.14
16:17
В СП прочитать еще:

ОповеститьОВыборе()
ОбработкаВыбора()
5 Босечка
 
13.03.14
16:40
Как передать в список значений во внешней обработке выбранный документ?
6 Босечка
 
13.03.14
16:43
Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
  МассивВыбранныхЭлементов = Новый Массив;
  Если ТипЗнч(ЗначениеВыбора) = Тип("ДокументСсылка.ТехническоеЗадание") Тогда
     МассивВыбранныхЭлементов.Добавить(ЗначениеВыбора);
  ИначеЕсли ТипЗнч(ЗначениеВыбора) = Тип("Массив") Тогда
     МассивВыбранныхЭлементов = ЗначениеВыбора;
  КонецЕсли;

  Для каждого Элемент Из МассивВыбранныхЭлементов Цикл
      
  КонецЦикла;
КонецПроцедуры



Процедура СделатьПодбор(Кнопка)
  ФормаПодбора = Документы.ТехническоеЗадание.ПолучитьФормуВыбора(, ЭтаФорма);
  ФормаПодбора.МножественныйВыбор = Истина;
  ФормаПодбора.ЗакрыватьПриВыборе = Истина;
  ФормаПодбора.Открыть();
КонецПроцедуры

Обработка выбора стоит в формевыбора в документе.
7 barrgand
 
13.03.14
16:47
(6) ВладелецФормы.КакойтоСписок.Добавить(ЗначениеВыбора)
8 Remark
 
13.03.14
16:49
(6)
Для каждого Элемент Из МассивВыбранныхЭлементов Цикл
    ТвойСписокЗначений.Добавить(Элемент);      
КонецЦикла;

(7) Зачем? Добавлять уже в обработке.
9 floody
 
13.03.14
16:52
Форма выбора и так возвращает значение выбора. Т.е. достаточно сделать как в (3).
10 Remark
 
13.03.14
16:52
(6) Или ЗакрыватьПриВыборе или МножественныйВыбор
Форма (Form)
ЗакрыватьПриВыборе (CloseOnChoice)
Использование:

Чтение и запись.
Описание:

Тип: Булево.
Содержит признак того, что форму необходимо закрывать после осуществления выбора. Если свойство имеет значение Ложь, можно использовать форму для выбора нескольких позиций или элементов. По умолчанию свойство имеет значение Истина.
11 Босечка
 
13.03.14
17:02
процедуру ОбработкаВыбора(....... помещать в форму выбора документа или во внешнюю обработку?
12 Босечка
 
13.03.14
17:06
ап...
13 Босечка
 
13.03.14
17:14
все равно не получается...
14 Remark
 
13.03.14
17:47
(11)
ОбработкаВыбора() - в обработку
ОповеститьОВыборе() - в форму выбора документов

ИЛИ

просто использовать метод формы выбора: ЗначениеВыбора = Форма.ОткрытьМодально()
15 Босечка
 
13.03.14
18:24
А как ее зарегистрировать?
16 Босечка
 
13.03.14
18:26
А оповеститьовыборе( зачем нужен, можно без него?
17 takefive
 
13.03.14
18:27
1. Обработка выбора сработает для 2 параметра процедуры ПолучитьФормуВыбора
2. Не забудь привязать событие
18 Босечка
 
13.03.14
18:29
А куда привязывать обработку?
19 takefive
 
13.03.14
18:29
оповеститьовыборе нужен если ФормаПодбора.РежимВыбора = ложь
20 takefive
 
13.03.14
18:30
к событию
21 Босечка
 
13.03.14
18:30
К какому??????
22 Босечка
 
13.03.14
18:31
Во внешней обработке? К событию табличного поля? формы?
23 takefive
 
13.03.14
18:33
в конфигураторе у правого края панель свойств
к тому, что ты передаешь 2 параметром. Форма или элемент формы
24 takefive
 
13.03.14
18:36
событие формы или элемента формы называется ОбработкаВыбора
25 Босечка
 
13.03.14
18:36
Ясно... А как тогда заполнить список значений, я так пробовала программа ругается на неизвестную переменную.
26 takefive
 
13.03.14
18:38
Список.Добавить(ЗначениеВыбора)
27 Босечка
 
13.03.14
18:40
{Документ.ТехническоеЗадание.Форма.ФормаВыбора(11,6)}: Переменная не определена (ТехническоеЗадание)
        <<?>>ТехническоеЗадание.Добавить(Элемент);      

ТехническоеЗадание - это список значений во внешней обработке
28 Remark
 
13.03.14
18:43
ТехническоеЗадание - это список значений во внешней обработке, а обращаетесь вы к нему в форме документа.
29 Босечка
 
13.03.14
18:45
А как и где к нему обращаться?
30 Remark
 
13.03.14
18:47
Такс...

В модуле формы внешней обработки:

Процедура СделатьПодбор(Кнопка)
   ФормаПодбора = Документы.ТехническоеЗадание.ПолучитьФормуВыбора(, ЭтаФорма.ЭлементыФормы.НадписьТехническоеЗадание);
   ФормаПодбора.ЗакрыватьПриВыборе = Истина;
   ФормаПодбора.РежимВыбора = Истина;
   ЗначениеВыбора = ФормаПодбора.ОткрытьМодально();
   ТехническоеЗадание.Добавить(ЗначениеВыбора);
КонецПроцедуры
31 Remark
 
13.03.14
18:48
Процедура СделатьПодбор(Кнопка)
   ФормаПодбора = Документы.ТехническоеЗадание.ПолучитьФормуВыбора(, ЭтаФорма);
   ФормаПодбора.ЗакрыватьПриВыборе = Истина;
   ФормаПодбора.РежимВыбора = Истина;
   ЗначениеВыбора = ФормаПодбора.ОткрытьМодально();
   ТехническоеЗадание.Добавить(ЗначениеВыбора);
КонецПроцедуры
32 Босечка
 
13.03.14
18:54
Спасибо большое! А множественный выбор почему-то не работает.
33 Remark
 
13.03.14
19:06
Процедура СделатьПодбор(Кнопка)
   ФормаПодбора = Документы.ТехническоеЗадание.ПолучитьФормуВыбора(, ЭтаФорма);
   ФормаПодбора.МножественныйВыбор= Истина;
   ФормаПодбора.РежимВыбора = Истина;
   ЗначениеВыбора = ФормаПодбора.ОткрытьМодально();
   Для Каждого ЭлементМассива Из ЗначенияВыбора Цикл
      ТехническоеЗадание.Добавить(ЗначениеВыбора);
   КонецЦикла;
КонецПроцедуры