Имя: Пароль:
1C
1С v8
В поле ввода возможность выбора из списка
0 AnisaL
 
01.03.13
09:14
Добрый денек!!! В Полеввода добавлена возможность выбора из списка, список формируется, значение выбираю, и оно пропадает. Не пойму, как значение из списка выбора подставить в поле ввода? УТ 10.3
1 AnisaL
 
01.03.13
09:19
Вот процедура формирования списка
Процедура ПолеВводаПереданНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
   
   Отбор = Новый Структура;
   Отбор.Вставить("Номер", ЭтотОбъект.Номер);
   Рег = РегистрыСведений.ИсторияНарядов.Выбрать(Отбор);
   Список = новый Массив;
   Пока Рег.Следующий() Цикл
       
       Строка = Рег.Что;
       Длина = СтрДлина(Строка);
       Если Найти(Строка, "Наряд передан:") Тогда
           Список.Добавить(Прав(Рег.Что, Длина- 14));
       КонецЕсли;    
   КонецЦикла;
   
   ЭлементыФормы.ПолеВводаПередан.СписокВыбора.ЗагрузитьЗначения(Список);
   
КонецПроцедуры
2 Wobland
 
01.03.13
09:21
СтандартнаяОбработка?
3 AnisaL
 
01.03.13
09:22
(2) Это в документе ПолеВводаПередан
4 Wobland
 
01.03.13
09:23
(3) чо? впрочем, я наугад
5 AnisaL
 
01.03.13
09:32
(4) Поставила СтандартнаяОбработка=Истина, ну хоть начальное значение не стало стираться, но все равно, не выбирается
6 AnisaL
 
01.03.13
09:39
Никто не поможет?)
7 cw014
 
01.03.13
09:41
Строка = Рег.Что;

За такое руки надо обрывать
8 AnisaL
 
01.03.13
09:42
(7) Это до меня написано было
9 Cube
 
01.03.13
09:43
(5) Пятнично))
Вообще-то надо "СтандартнаяОбработка = Ложь"...
10 AnisaL
 
01.03.13
09:43
(9) Ставлю Ложь, вообще тогда кнопка выбора не активна
11 Wobland
 
01.03.13
09:46
(10) кнопка от такого не зависит
12 AnisaL
 
01.03.13
09:47
(11) не кнопка, а треугольник - для списка выбора
13 Wobland
 
01.03.13
09:48
(12) и треугольник тоже
14 Wobland
 
01.03.13
09:48
у тебя хрень выбора активна или неактивна до выполнения обработчика ж, как я понял
15 AnisaL
 
01.03.13
09:49
(13) у меня зависит (( что-то туплю, не пойму где только
16 Cube
 
01.03.13
09:49
+(9) А, не, погодь, не так прочитал :))
А зачем ты заполняешь список при нажатии на кнопку? Почему нельзя этого сделать при открытии формы, например?
17 MSII
 
01.03.13
09:50
(7) Там, наверное, еще есть измерение Где.
(15) Тип данных в ПолеВводаПередан какой?
18 AnisaL
 
01.03.13
09:52
(17) Ага, три измерения - Что, кто и когда
19 MSII
 
01.03.13
09:54
(18) Добавь еще Где и Зачем - и будет у тебя клевый универсальный регистр сведений на все случаи жизни.
Тип данных в ПолеВводаПередан какой?
20 AnisaL
 
01.03.13
09:54
(17) СправочникСсылка.ФизЛица
21 MSII
 
01.03.13
09:55
(20) Ну. А из списка ты выбираешь строку.
22 Wobland
 
01.03.13
09:55
(16) потому что женщина после открытия формы может и передумать ;)
23 Reset
 
01.03.13
09:56
(0) Пропадает, потому что выбираемое значение не совместимо с типом значения поля
24 Wobland
 
01.03.13
09:56
(23) о!
25 AnisaL
 
01.03.13
09:57
Что ж вы сразу не сказали то!!!
26 AnisaL
 
01.03.13
09:58
Видимо пятница на всех сказывается:)))
27 cw014
 
01.03.13
09:58
(25) Просто пятница, и не все могут так красноречиво сформулировать фразу "Не то не туда пихаешь", как это сделано в (23)
28 AnisaL
 
01.03.13
10:00
(27) Какое выражение.., можно и не то подумать)
29 MSII
 
01.03.13
10:00
(25) Все вопросы у тебя должны были отпасть уже после (19)
30 Reset
 
01.03.13
10:00
(1)
Если в Рег.Что находится совместимое значение по типу, но в списке при выборе должна показываться правая часть его представления, замени код на такой:

Процедура ПолеВводаПереданНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    // Вставить содержимое обработчика.

   
   Отбор = Новый Структура;
   Отбор.Вставить("Номер", ЭтотОбъект.Номер);
   Рег = РегистрыСведений.ИсторияНарядов.Выбрать(Отбор);
   //Список = новый Массив;
   ЭлементыФормы.ПолеВводаПередан.СписокВыбора.Очистить();
   Пока Рег.Следующий() Цикл
       
       Строка = Рег.Что;
       Длина = СтрДлина(Строка);
       Если Найти(Строка, "Наряд передан:") Тогда
           ЭлементыФормы.ПолеВводаПередан.СписокВыбора.Добавить(Рег.Что,Прав(Рег.Что, Длина- 14));
           //Список.Добавить(Прав(Рег.Что, Длина- 14));
       КонецЕсли;    
   КонецЦикла;
   
   //ЭлементыФормы.ПолеВводаПередан.СписокВыбора.ЗагрузитьЗначения(Список);
   
КонецПроцедуры
31 AnisaL
 
01.03.13
10:02
(29) Жаль, что у меня не сразу "отпали", приношу извинения ;))
32 Reset
 
01.03.13
10:02
(25) Извините, только что пришел на работу, и сразу к вам. Как уж успел :D
33 AnisaL
 
01.03.13
10:04
(32) А что это вы так поздно на работу приходите? У меня уже почти пол рабочего дня прошло )Скоро обед))
34 Wobland
 
01.03.13
10:05
(33) у тебя плохо развит навык сачкования
35 Reset
 
01.03.13
10:06
(33) Снегопад, пробки. А поздно - проспал потому что.
36 AnisaL
 
01.03.13
10:10
(34) Не люблю сачковать, люблю чтобы все было выполнено вовремя:)))
37 AnisaL
 
01.03.13
10:23
(35) А у нас нету снега, и пробки почти не наблюдаются
38 AnisaL
 
01.03.13
11:01
Вот что получилось:
Процедура ПолеВводаПереданНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
   СтандартнаяОбработка =Истина;
   Отбор = Новый Структура;
   Отбор.Вставить("Номер", ЭтотОбъект.Номер);
   Рег = РегистрыСведений.ИсторияНарядов.Выбрать(Отбор);
   Список = новый Массив;
   Пока Рег.Следующий() Цикл
       
       Строка = Рег.Что;
       Длина = СтрДлина(Строка);
       Если Найти(Строка, "Наряд передан:") Тогда
           
           Физик = Справочники.ФизическиеЛица.НайтиПоНаименованию(Прав(Рег.Что, Длина- 15));
           НайденФизик = Список.Найти(Физик);
           Если НайденФизик = НЕОПРЕДЕЛЕНО Тогда
           Список.Добавить(Физик);
           КонецЕсли;
       КонецЕсли;    
   КонецЦикла;
   
   ЭлементыФормы.ПолеВводаПередан.СписокВыбора.ЗагрузитьЗначения(Список);
   
КонецПроцедуры
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс