Начало Выбор Из Списка

1. Jovi 24.02.20 16:12 Сейчас в теме
Добрый день. Начинающий программист. Не могу найти информацию по следующему вопрос, подскажите пожалуйста. Есть форма, на ней есть поле выбора, у которого задана процедура события "НачалоВыборИзСписка". В этой процедуре создаю список значений, в который добавляются возможные (к примеру) "Наименования"
(Список = Новый СписокЗначений();
Список.Добавить(Наименование);). Также на этой форме есть другая процедура со своим функционалом. Вопрос такой, я могу как то полученные "наименования" из второй процедуры добавить в список значения в первую процедуру, чтобы в предприятии при вызове "выбора из списка" были значения полученые при помощи первой процедуры и при помощи второй? Что то вроде функции добавить? (обычные формы, 8.3)
По теме из базы знаний
Найденные решения
13. Jovi 25.02.20 17:10 Сейчас в теме
Разобрался. В моё случае лучшим вариантом было создать общую переменную, присвоить ей полученное значение из второй процедуры, и в первой процедуре добавить в сам список, так как (в моём случае) нужно было чтобы список каждый раз перезаписывался.

Перем НаименованиеИнформативное;

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

СтандартнаяОбработка = Ложь;

Список = Новый СписокЗначений();

Список.Добавить(Наименование);

Если ЗначениеЗаполнено(НаименованиеИнформативное) Тогда
Список.Добавить(НаименованиеИнформативное);
КонецЕсли;

РезультатВыбора = ВыбратьИзСписка(Список, ЭлементыФормы.НаименованиеПолное);

Если РезультатВыбора <> Неопределено Тогда

НаименованиеПолное = РезультатВыбора.Значение;
мФормироватьНаименованиеПолноеАвтоматически = Истина;

КонецЕсли;

КонецПроцедуры
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sergitax 24.02.20 21:40 Сейчас в теме
Вот выдержка из методических указаний по переходу на платформу 8.3:

Отказ от события "НачалоВыбораИзСписка" для полей ввода в режиме выбора из списка.
В "1С:Предприятии 8.3" у поля ввода не вызывается НачалоВыбораИзСписка. Это связано с появлением нового свойства поля ввода КнопкаВыпадающегоСписка, которое позволяет по кнопке выводить выпадающий список, формирующийся автоматически. Подробнее см. документацию "Руководство разработчика".
Для устранения несовместимости необходимо найти поля ввода с обработчиком НачалоВыбораИзСписка и перенести его код в другие обработчики согласно критериям:
код по добавлению элементов в список выбора следует разместить в обработчике формы ПриСозданииНаСервере. Кроме того, если состав списка выбора зависит от значений других полей, то код по изменению элементов списка выбора следует вызывать в обработчиках изменения соответствующих полей, например при помощи обработчиков ПриИзменении;
реализацию кода, не связанного с заполнением списка выбора, необходимо пересмотреть с использованием тех средств, которые предоставляет платформа "1С:Предприятие" версии 8.3.3.

Отказ от свойства "КнопкаСпискаВыбора" для полей ввода
В "1С:Предприятии 8.3" у поля ввода отсутствует свойство КнопкаСпискаВыбора. Вместо него теперь следует использовать новое свойство КнопкаВыпадающегоСписка.
Для устранения несовместимости необходимо при помощи приложенного отчета найти поля ввода, у которых в свойстве КнопкаСпискаВыбора было установлено значение "Да", и явно установить в свойстве КнопкаВыпадающегоСписка значение "Да" в том случае, если кнопка выпадающего списка не выводится при значении "Авто".

Рекомендую использовать другие механизмы.
shima; grfsd; user659168_xec8787; Wrols; Designer1C; +5 Ответить
3. Jovi 25.02.20 10:07 Сейчас в теме
(2) Хорошо. Но вопрос не сильно изменился. Как тогда добавить значения в КнопкаВыпадающегоСписка?

Например:
Процедура Номер1()

Список = Новый СписокЗначений;
Список.Добавить("Организация");

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

Процедура Номер2()

//Добавить("НаименованиеОрганизации");

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

Как значения наименования процедуры 2 добавить в список процедуры 1?
4. antz 25.02.20 10:49 Сейчас в теме
(3) У поля выбора (у элемента формы) есть свойство СписокВыбора. Его-то и нужно заполнять.
5. Jovi 25.02.20 11:08 Сейчас в теме
(4) Ну вот я пытался так, что то не выходит:
ЭлементыФормы.НаименованиеПолное.СписокВыбора.Добавить("тест");
6. Jovi 25.02.20 11:22 Сейчас в теме
(4) Мне нужно из другой процедуры,которая находится на одной и той же форме, что и процедура НаименованиеПолноеНачалоВыбораИзСписка, добавить в этот список.

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

	СтандартнаяОбработка = Ложь;	

	Список = Новый СписокЗначений();

	Список.Добавить(Наименование);	
	
	РезультатВыбора = ВыбратьИзСписка(Список, ЭлементыФормы.НаименованиеПолное);

	Если РезультатВыбора <> Неопределено Тогда

		НаименованиеПолное                          = РезультатВыбора.Значение;		

	КонецЕсли;

КонецПроцедуры
Показать
7. antz 25.02.20 11:47 Сейчас в теме
(6) Ну проще надо быть :)
Прикрепленные файлы:
СписокВыбора.epf
8. Jovi 25.02.20 11:50 Сейчас в теме
(7) Спасибо конечно, но не так вопрос звучал)
При определённом условии нажимается кнопка, затем получаются данные взятые из интернета. Дальше я хочу из этой процедуры, взять кое какую инфу (а именно наименования) и передать в Список Выбора)
9. antz 25.02.20 11:52 Сейчас в теме
10. Jovi 25.02.20 11:55 Сейчас в теме
(9) Вот не могу понять. Или я не правильно вношу значения в список ( ну то есть запись ЭлементыФормы.НаименованиеПолное.СписокВыбора.Добавить("тест"); верная или нет, можно ли так или нет) или где то в коде стоят определённые условия, которые или не дают записать или же перезаписывают значения, тем самым в список не вносятся мои записи. Но по сути, как я понимаю, эти "левые" условия могут быть либо при событии "ПриИзменении" либо при "НачалоВыбораИзСписка". Но в них я тоже ничего такого не увидел ...
11. antz 25.02.20 12:45 Сейчас в теме
(10) Их там и не будет. Список выбора - это свойство поля ввода на форме и кроме как в нем эти значения больше нигде не светятся. Список выбора будет вываливаться при нажатии на кнопку выбора из списка. Никаких обработчиков событий лепить не надо.
12. user809472 25.02.20 16:35 Сейчас в теме
Я делаю так, может поможет: поставить галку ВыборИзСписка, убрать БыстрыйВызов. СписокЗначений назначить обработчиком.
Например,

Процедура <НазваниеЭлементаККоторуПрикручиваюСписок>НачалоВыбораИзСпис­ка (Элемент, СтандартнаяОбработка)
МойСписок = Новый СписокЗначений;
МойСписок.Добавить(<ЧтоНадо>);
Элемент.СписокВыбора = МойСписок;
Элемент.РежимВыбораИзСписка = Истина;
Элемент.КнопкаВыбора = Ложь;
КонецПроцедуры
13. Jovi 25.02.20 17:10 Сейчас в теме
Разобрался. В моё случае лучшим вариантом было создать общую переменную, присвоить ей полученное значение из второй процедуры, и в первой процедуре добавить в сам список, так как (в моём случае) нужно было чтобы список каждый раз перезаписывался.

Перем НаименованиеИнформативное;

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

СтандартнаяОбработка = Ложь;

Список = Новый СписокЗначений();

Список.Добавить(Наименование);

Если ЗначениеЗаполнено(НаименованиеИнформативное) Тогда
Список.Добавить(НаименованиеИнформативное);
КонецЕсли;

РезультатВыбора = ВыбратьИзСписка(Список, ЭлементыФормы.НаименованиеПолное);

Если РезультатВыбора <> Неопределено Тогда

НаименованиеПолное = РезультатВыбора.Значение;
мФормироватьНаименованиеПолноеАвтоматически = Истина;

КонецЕсли;

КонецПроцедуры
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот