Имя: Пароль:
1C
 
чем можно заменить список значений?
0 SuperLiving Star
 
29.10.09
11:23
в документах УПП, при нажатии кнопки выполнить, в зависимости от количества помещенных туда ссылок на строки с объектами открывается список в котором можно выбрать значение, можно ли что то подобное реализовать самостоятельно для определенных нужд?
1 ТелепатБот
 
гуру
29.10.09
11:23
2 Defender aka LINN
 
29.10.09
11:25
А чем список не устраивает?
3 SuperLiving Star
 
29.10.09
11:25
однажды подобную звдачу я решал через список значений
|
   Перем ВыбМесяц;
   ВыбМесяц = Список.ВыбратьЭлемент("Выберите месяц");
   Если ВыбМесяц <> неопределено Тогда
       Элемент.Значение = ВыбМесяц.Представление;
   КонецЕсли;

|
а помнится в 1с 7.7 была такая возможность, задавать список кнопке и при нажатии на неё и раскрытии списка выбирать значение из него, например для выбора одной печатной формы из нескольких...
4 SuperLiving Star
 
29.10.09
11:26
(2) ну в списке нужно нажимать на кнопку "Ок", а что бы без неё?
5 Defender aka LINN
 
29.10.09
11:27
(3) В типовых раньше так и было. Это называется "подменю". Или ВыбратьИзМеню можно
6 SuperLiving Star
 
29.10.09
11:27
(+4)хотя нет можно и просто по двойному нажатию на элемент списка...
7 SuperLiving Star
 
29.10.09
11:27
(5) а в УПП, есть что либо для примера?
8 Aprobator
 
29.10.09
11:30
нафига люди из шоу бизнеса (судя по нику топикстартера) в 1 С лезут?
9 Rie
 
29.10.09
11:32
(7) ВыбратьИзМеню (это метод формы) работает именно так, как ВыбратьЗначение в 7.7 для списка значений.
Пример - в справке вроде бы есть.
10 SuperLiving Star
 
29.10.09
11:37
(9) спасибо! займусь !
11 SuperLiving Star
 
29.10.09
12:27
Список = Новый СписокЗначений;
Список.Добавить("Доставка",,Истина);
Список.Добавить("Разгрузка",,Ложь);
Список.Добавить("Картинка",,,БиблиотекаКартинок.Картинка1);
Вид = ВыбратьИзМеню(Список, ЭлементыФормы["Кнопка1"]);
|
а что за ЭлементыФормы["Кнопка1"] ?? Зачем? Пробую!!!
12 SuperLiving Star
 
29.10.09
12:33
у меня вот чё ругается
|
{Форма.Форма(2105)}: Поле объекта не обнаружено (ЭлементыФормы.КоманднаяПанельОтработанноеВремя.Кнопки.КорректировкиПоПериодам)
   Вид = ВыбратьИзМеню(Список, ЭлементыФормы["ЭлементыФормы.КоманднаяПанельОтработанноеВремя.Кнопки.КорректировкиПоПериодам"]);
13 SuperLiving Star
 
29.10.09
12:41
что туда надо передать то?
14 SuperLiving Star
 
29.10.09
12:42
ни так, ни так, ни так, нехочет ...
|
   //Вид = ВыбратьИзМеню(Список, ЭлементыФормы["ЭлементыФормы.КоманднаяПанельОтработанноеВремя.Кнопки.КорректировкиПоПериодам"]);        
   //Вид = ВыбратьИзМеню(Список, ЭлементыФормы.КоманднаяПанельОтработанноеВремя.Кнопки["КорректировкиПоПериодам"]);        
   Вид = ВыбратьИзМеню(Список, ЭлементыФормы["КоманднаяПанельОтработанноеВремя.Кнопки.КорректировкиПоПериодам"]);
15 SuperLiving Star
 
29.10.09
12:49
(
16 Rie
 
29.10.09
12:52
(14) А так попробуй:

Вид = ВыбратьИзМеню(Список);

Второй параметр - это тот элемент, возле которого размещать. Если не указан - то разместится возле активного.

Если у тебя - командная панель, то можно просто сделать подменю и заполнить его программно нужными пунктами.
17 SuperLiving Star
 
29.10.09
13:03
(16) так он открывает её около активного элемента, то есть не тама где нужно...
18 SuperLiving Star
 
29.10.09
13:04
(+17) Да командная панель, а что это даст??? я хочу указать кнопку при нажатии которой вызывается список, что бы он открылся около, но он не работает как в (14) как надо то если на командной панели кнопка, и нужно разместить около неё???
19 Rie
 
29.10.09
13:05
(18) Ну так вставь подменю. Это подменю заполни программно. И будет так, как тебе надо.
20 SuperLiving Star
 
29.10.09
13:11
(19) что т не понимаю
зачем мне подменю
если у меня есть кнопка
21 SuperLiving Star
 
29.10.09
13:11
не знаю я как его заполнять программно!
22 SuperLiving Star
 
29.10.09
13:21
так тогда я это подменю все пункты и загоню
зачем делать подменю с одним пунктом что бы по нему раскрывать список?
23 hhhh
 
29.10.09
13:28
(21) ну просто в конфигураторе создай это подменю и привяжи к его элементам процедурки. На хрена тебе в коде список создавать, а потом его привязывать?
24 hhhh
 
29.10.09
13:29
(23)+ тебе нужно как-то мозг вычистить от 7.7.
25 SuperLiving Star
 
29.10.09
13:29
(23) что то не идет (((
|
   Индекс = 0;
   КнопкиКоманднойПанели = ЭлементыФормы.КоманднаяПанельОтработанноеВремя.Кнопки;
   ПодменюКорректировки  = КнопкиКоманднойПанели.Вставить(Индекс, "Корректировки", ТипКнопкиКоманднойПанели.Подменю, "Корректировки");
   ВыборкаДокументов     = Документы.КорректировкаТабеля.Выбрать(НачалоМесяца(МесяцНачисления),КонецМесяца(МесяцНачисления));
   Пока ВыборкаДокументов.Следующий() Цикл
       Период = ВыборкаДокументов.Ссылка;
       ПодменюКорректировки.Кнопки.Добавить("кн" + Период, ТипКнопкиКоманднойПанели.Действие, "Корректировки на " + Период, Новый Действие("КнопкаСформироватьНажатие"));
   КонецЦикла;
26 SuperLiving Star
 
29.10.09
13:32
(+25) В принципе меню появилось, только почему то в нем кнопка не активна (((((
27 Rie
 
29.10.09
13:32
(25) А что именно не идёт?
28 Rie
 
29.10.09
13:32
(26) Процедура КнопкаСформироватьНажатие не существует?
29 SuperLiving Star
 
29.10.09
13:35
пошло в принципе...
|
   Индекс = 0;
   КнопкиКоманднойПанели = ЭлементыФормы.КоманднаяПанельОтработанноеВремя.Кнопки;
   ПодменюКорректировки  = КнопкиКоманднойПанели.Вставить(Индекс, "Корректировки", ТипКнопкиКоманднойПанели.Подменю, "Корректировки");
   ВыборкаДокументов     = Документы.КорректировкаТабеля.Выбрать(НачалоМесяца(МесяцНачисления),КонецМесяца(МесяцНачисления));
   Пока ВыборкаДокументов.Следующий() Цикл
       Период = ВыборкаДокументов.Ссылка;
       ПодменюКорректировки.Кнопки.Добавить("кн" + Период, ТипКнопкиКоманднойПанели.Действие, "Корректировки на " + Период, Новый Действие("КнопкаСформироватьНажатие"));
   КонецЦикла;    
КонецПроцедуры

// Процедура обработки нажатия на пункте подменю
Процедура КнопкаСформироватьНажатие(Элемент)
   НазваниеПериодичности = СтрЗаменить(Элемент.Имя, "кн", "");  
КонецПроцедуры
30 SuperLiving Star
 
29.10.09
13:35
(28) создал её, пункт стал активен...
31 SuperLiving Star
 
29.10.09
13:37
а можно в этом меню хранить ссылку на документ?
что бы при нажатии получать её, и уже обрабатывать по своему...
32 SuperLiving Star
 
29.10.09
13:40
в пунктах меню вернее, ссылки на документы можно хранить?
33 SuperLiving Star
 
29.10.09
13:50
вот тута
|
ПодменюКорректировки.Кнопки.Добавить("кн" + Период, ТипКнопкиКоманднойПанели.Действие, "Корректировки на " + Период, Новый Действие("КнопкаСформироватьНажатие"));
|
в процедуру КнопкаСформироватьНажатие, можно предавать несколько параментров, не только Элемент, по умочанию???
34 SuperLiving Star
 
29.10.09
14:00
в элемент текст заношу дату для поиска, а в элемент.Имя заношу номер документа для поиска, это что бы по нажатию на меню осуществлять поиск документа...может кто иначе, получше что скажет?
|
// функционал заполнения пунктов меню "Корректировки" по корректировкам за период
   Индекс = 0;
   КнопкиКоманднойПанели = ЭлементыФормы.КоманднаяПанельОтработанноеВремя.Кнопки;
   ПодменюКорректировки  = КнопкиКоманднойПанели.Вставить(Индекс, "Корректировки", ТипКнопкиКоманднойПанели.Подменю, "Корректировки");
   ВыборкаДокументов     = Документы.КорректировкаТабеля.Выбрать(НачалоМесяца(МесяцНачисления),КонецМесяца(МесяцНачисления));
   Пока ВыборкаДокументов.Следующий() Цикл
       НомерДок = ВыборкаДокументов.Номер;
       ПодменюКорректировки.Кнопки.Добавить(НомерДок, ТипКнопкиКоманднойПанели.Действие, ВыборкаДокументов.Дата, Новый Действие("КнопкаСформироватьНажатие"));
   КонецЦикла;    
КонецПроцедуры

// Процедура обработки нажатия на пункте подменю
Процедура КнопкаСформироватьНажатие(Элемент)
ИскомыйДокумент = Документы.КорректировкаТабеля.НайтиПоНомеру(Элемент.Имя, Дата(Элемент.Текст));
Если НЕ ИскомыйДокумент.Пустая() Тогда
   Сообщить(ИскомыйДокумент.Ссылка);
КонецЕсли;
КонецПроцедуры
// -------------------------------------------------------------------------------------------------------------
Основная теорема систематики: Новые системы плодят новые проблемы.