Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не работает множественный выбор

Не работает множественный выбор
Я
   Eva_J
 
10.10.19 - 10:50
Нужно организовать множественный выбор из справочника в реквизите табличной части, ТабЧасть "Дисциплины", Реквизит "Дисциплина", Справочник "Дисциплины". Ошибок не выдает, просто значения не заполняются при выборе. Что не так?

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

&НаКлиенте
Процедура ДисциплиныДисциплинаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
         Дисциплина = ВыбранноеЗначение;
    
КонецПроцедуры
 
 
   FIXXXL
 
1 - 10.10.19 - 11:03
в ВыбранноеЗначение что прилетает?
   DrWatson
 
2 - 10.10.19 - 11:04
(0) Все правильно написано. Какие вопросы к множественному выбору?
   FIXXXL
 
3 - 10.10.19 - 11:06
Дисциплина = ВыбранноеЗначение; 
Дисциплина - это что?
   DrWatson
 
4 - 10.10.19 - 11:07
+(2) ВыбранноеЗначение должен быть массивом, и с ним надо что-то делать.
Как по замыслу хотели несколько выбранных элементов выбирать в одну строку?
   Eva_J
 
5 - 10.10.19 - 11:10
(3) это реквизит где нужен множественный выбор
   Eva_J
 
6 - 10.10.19 - 11:11
(4) а как сделать подскажите пожалуйста
   ДенисЧ
 
7 - 10.10.19 - 11:12
Как ты желаешь несколько значений в один реквизит завпихнуть?
Ведь сказали же мудрые человеки - нельзя впихнуть невпихнуемое...
   Eva_J
 
8 - 10.10.19 - 11:16
(7) да я поняла, а как правильно сделать? подскажите
   FIXXXL
 
9 - 10.10.19 - 11:16
(5) это реквизит ТЧ? чет непохоже... на переменную больше похоже
   pechkin
 
10 - 10.10.19 - 11:17
МножественныйВыбор и ЗакрыватьПриВыборе - разные вещи
   FIXXXL
 
11 - 10.10.19 - 11:17
(6) взять коллекцию ВыбранноеЗначение и распихать ее по строкам ТЧ
ил добавить строки ТЧ и каждой присвоить нужное значение из коллекции ВыбранноеЗначение
отсюда не видно твоих задумок
   pechkin
 
12 - 10.10.19 - 11:18
тут по идее нужен подбор делать
   Eva_J
 
13 - 10.10.19 - 11:25
(11) а можете код подсказать пожалуйста, а то я ещё пока не очень в этом разбираюсь
   FIXXXL
 
14 - 10.10.19 - 12:24
(13) код чего?
   Случайный прохожий
 
15 - 10.10.19 - 12:29
Ты выбираешь значение для одной ячейки ТЧ и хочешь при этом, чтобы все остальные строки тоже заполнились или как?
   Eva_J
 
16 - 10.10.19 - 13:55
(14) процедуры обработки выбора как правильно сделать
   FIXXXL
 
17 - 10.10.19 - 13:57
(16) ну дык у тебя все правильно
а что дальше с выбранным делать ты видимо и сама не знаешь
какой тут код?
   Eva_J
 
18 - 10.10.19 - 14:02
(17) так я поэтому у вас и спрашиваю, чтобы вы помогли, делаю вот так:

&НаКлиенте
Процедура ДисциплиныДисциплинаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
СтандартнаяОбработка = Ложь;

Список = Новый СписокЗначений;
Список.Добавить(ВыбранноеЗначение);
Для каждого Дисциплина Из Список Цикл
    

Строка = Объект.Дисциплины.Добавить();
Строка.Дисциплина = Дисциплина;
                    
КонецЦикла;                    

КонецПроцедуры

Но это тоже не правильно, подскажите скажите как надо, чтобы работало
   Eva_J
 
19 - 10.10.19 - 14:03
(17) надо чтобы осуществлялся множественный выбор, и значения заполнялись в реквизит табличной части!
   hhhh
 
20 - 10.10.19 - 14:06
(18) ну вот это выкинь
Список = Новый СписокЗначений;
Список.Добавить(ВыбранноеЗначение);

пиши проще

Список = ВыбранноеЗначение;
   FIXXXL
 
21 - 10.10.19 - 14:07
Для каждого Дисциплина Из ВыбранноеЗначение Цикл
    

Строка = Объект.Дисциплины.Добавить();
Строка.Дисциплина = Дисциплина;
                    
КонецЦикла;
   FIXXXL
 
22 - 10.10.19 - 14:08
ты без отладчика кодишь?
   Eva_J
 
23 - 10.10.19 - 14:14
(20) &НаКлиенте
Процедура ДисциплиныДисциплинаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
СтандартнаяОбработка = Ложь;

Список = ВыбранноеЗначение;
Для каждого Дисциплина Из ВыбранноеЗначение Цикл
    

Строка = Объект.Дисциплины.Добавить();
Строка.Дисциплина = Дисциплина;
                    
КонецЦикла;                    

КонецПроцедуры

Так все равно не работает
   unenu
 
24 - 10.10.19 - 14:19
пока автор не покажет формы помогать нет смысла
   hhhh
 
25 - 10.10.19 - 14:20
(23) ну отладчиком заходит в процедуру?
   hhhh
 
26 - 10.10.19 - 14:22
(24) ей же отроду 4 с половиной месяца. У нее еще формы несформировавшиеся.
   Eva_J
 
27 - 10.10.19 - 14:31
(25) да заходит
   unenu
 
28 - 10.10.19 - 14:42
(26) Почему, Евгения Ефимова из Калининграда дружит с управляемыми формами, просто вот как управлять выбором, когда
ничего не показали?
   D_E_S_131
 
29 - 10.10.19 - 14:46
(27) В отладчике если посмотреть через "табло", то какой тип у "ВыбранноеЗначение"?
   Eva_J
 
30 - 10.10.19 - 14:53
(29) массив
 
 Рекламное место пустует
   unenu
 
31 - 10.10.19 - 15:01
(30) а что в отладчике покажет

ВыбранноеЗначение[0]?
   Eva_J
 
32 - 10.10.19 - 15:13
(31) элемент из справочника
   unenu
 
33 - 10.10.19 - 15:22
(32) тогда в вашем коде
Для каждого Дисциплина Из ВыбранноеЗначение Цикл
  Строка = Объект.Дисциплины.Добавить();
  Строка.Дисциплина = Дисциплина;
КонецЦикла;     

у Строка.Дисциплина другой тип.
отладчик все расскажет
   Eva_J
 
34 - 10.10.19 - 15:54
(33) у него тип ссылка на справочник
   DrWatson
 
35 - 10.10.19 - 15:55
(23) >>Так все равно не работает
А что значит "не работает"?
 - Форма выбора не закрывается;
 - форма закрывается, но новая строка не добавляется;
 - строка добавляется, но дисциплина не заполняется;
 - дисциплина заполняется, но нужно что-то ещё.
   Eva_J
 
36 - 10.10.19 - 15:56
(35) строка добавляется, но дисциплина не заполняется
   Eva_J
 
37 - 10.10.19 - 15:57
(35) что не так?
   D_E_S_131
 
38 - 10.10.19 - 16:03
Какие типы у "Строка.Дисциплина" и "ВыбранноеЗначение[0]"? Ответ "ссылка на справочник" не подходит. Конкретно какие виды справочников.
   Eva_J
 
39 - 10.10.19 - 16:11
(38) вообщем у строка.дисциплина тип неопределено, тогда почему Строка.Дисциплина = Дисциплина, здесь дисциплина элемент из справочника
   Eva_J
 
40 - 10.10.19 - 16:11
(38) а у выбранное значение ссылка на дисциплины
   DrWatson
 
41 - 10.10.19 - 16:20
(39) Неопределено - это когда реквизит таб. части имеет составной тип. Не присваивается, потому что в списке типов у него нет справочника дисциплин. Поставьте правильно тип.
   Eva_J
 
42 - 10.10.19 - 16:30
(41) ну у реквизита тип составной и там 2 справочника этот и другой, где нужно тип поставить?
   unenu
 
43 - 10.10.19 - 16:32
(42) там где СправочникСсылка.Дисциплина если у вас в ВыбранноеЗначение[0] тоже СправочникСсылка.Дисциплина
ванугю, что где-то СправочникОбъект.Дисциплина 

и ежик с ужиком не хотят дружить
   hhhh
 
44 - 10.10.19 - 16:34
(40) у выранное значение на прошлом допросе ты говорила массив. Какие где типы указано, можешь без вранья конкретно сказать. Как клещами из тебя каждый байт информации приходится вытягивать.
   dezss
 
45 - 10.10.19 - 16:38
ОФФ: интересно наблюдать подобный эффект)))
Вроде он называется "ТП в поле", если не ошибаюсь?))))
   DrWatson
 
46 - 10.10.19 - 16:38
А нет ли у формы реквизита Дисциплина, случайно.
   Eva_J
 
47 - 10.10.19 - 16:48
(46) есть у тч на форме, я же все описала в самом начале
   Eva_J
 
48 - 10.10.19 - 16:48
(46) туда и должны дисциплины выгружаться
   Eva_J
 
49 - 10.10.19 - 16:50
&НаКлиенте
Процедура ДисциплиныДисциплинаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь; 
    ПараметрыФормы = Новый Структура; 
     
    ПараметрыФормы.Вставить("МножественныйВыбор", Истина); 
     
    ОткрытьФорму("Справочник.Дисциплины.Форма.ФормаВыбораУправляемая",ПараметрыФормы, Элемент); 

    
КонецПроцедуры


&НаКлиенте
Процедура ДисциплиныДисциплинаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)    
    
Для каждого Дисциплина Из ВыбранноеЗначение Цикл

    Строка = Объект.Дисциплины.Добавить();
    Строка.Дисциплина = Дисциплина;

КонецЦикла; 
                                        
КонецПроцедуры


Где что нужно поменять в итоге? Ничего не могу понять. Простите за тупость
   DrWatson
 
50 - 10.10.19 - 16:55
(47) Я не про реквизит таб. части спрашиваю, а напрямую про реквизит формы.
Это была попытка отгадать где не сходятся типы. Ну, нет, так нет. Значит дело не в этом.

Перепроверьте типы Строка.Дисциплина и Дисциплина. Хоть напишите
Сообщить(ТипЗнч(Строка.Дисциплина));
Сообщить(ТипЗнч(Дисциплина));
Т.к. код выглядит правильным.

И эта, поднимите самооценку.
   unenu
 
51 - 10.10.19 - 17:01
я полагаю, что пора прекращать допрос, а то "клиента" может быть потерян.

на самом деле все что писали выше - чепуха.
для решения задачи вам необходимо что-то вроде 


&НаКлиенте
Процедура ВыбратьЭлектронныйДокументИзБазы()
    
    ОписаниеОповещения = Новый ОписаниеОповещения(
        "ВыбратьЭлектронныйДокументИзБазыЗавершение", 
        ЭтотОбъект);
        
    ДополнительныеПараметры = Новый Структура();
    ДополнительныеПараметры.Вставить("ОтборОрганизация", Объект.Организация);
    ДополнительныеПараметры.Вставить("ТолькоЭлектронныеДокументы", Истина);
        
    ОткрытьФорму("РегистрСведений.ДокументыПоТребованиюФНС.Форма.ФормаВыбора", ДополнительныеПараметры,,,,,ОписаниеОповещения);
     
КонецПроцедуры

&НаКлиенте
Процедура ВыбратьЭлектронныйДокументИзБазыЗавершение(РезультатВыбора, ВходящийКонтекст) Экспорт
    
     Если РезультатВыбора <> Неопределено И РезультатВыбора.Количество() > 0 Тогда
         
        МассивВыбранныхДокументов = РезультатВыбора;
            
        ПодключитьОбработчикОжидания("Подключаемый_ДобавитьДокументыПередВыборомПунктаТребования", 0.2, Истина);
        
    КонецЕсли;
    
КонецПроцедуры


скопировал что было под рукой
   Eva_J
 
52 - 10.10.19 - 17:06
(50) строка.дисциплина тип неопределено, а дисциплина это элемент из справочника
   hhhh
 
53 - 10.10.19 - 17:11
(52) не до, а после строчки

    Строка.Дисциплина = Дисциплина;


вставляй эти строки сообщить().

И нет такого типа "элемент справочника" - это ты нагло врешь, там другой тип должен быть указан.
   unenu
 
54 - 10.10.19 - 17:20
(53) "все врут" и значительно реже заблуждаются.

пока в коде открытия формы не будет обработчика завершения выбора - все тлен.
   Eva_J
 
55 - 10.10.19 - 17:22
(53) вообщем у них у обоих тип справочникссылка.дисциплины
   hhhh
 
56 - 10.10.19 - 17:25
(55) и еще там сделайте Сообщить("Дисциплина " + Строка.Дисциплина);


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.