Список значений в отборе динамического списка - не могу понять где находится форма список значений и как к ней обратиться

1. German_Tagil 43 19.10.22 06:49 Сейчас в теме
Добрый день пытаюсь сделать загрузку из буфера для отбора списка документов. Не могу достучаться до формы список значений в отборе. Т.е. что то уже работает - но только со ссылочными типами, а вот текст загрузить не получается
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kembrik 10 19.10.22 11:28 Сейчас в теме
&НаКлиенте
Процедура ПриОткрытии(Отказ)
 
 Если ТипЗнч(ВладелецФормы) = Тип("ТаблицаФормы") Тогда
  Для Каждого м Из ВладелецФормы.ТекущийЭлемент.ПараметрыВыбора Цикл
   эк = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   эк.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(СтрЗаменить(м.Имя, "Отбор.", ""));
   эк.ПравоеЗначение = м.Значение;
   эк.ВидСравнения = ?(ТипЗнч(м.Значение) = Тип("СписокЗначений"), ВидСравненияКомпоновкиДанных.ВСписке, ВидСравненияКомпоновкиДанных.Равно);
  КонецЦикла;
 КонецЕсли;
 
КонецПроцедуры
Показать


Список значений заполняется из массива, полученного из строки с разделителями в буфере
3. German_Tagil 43 19.10.22 11:59 Сейчас в теме
(2) Я и пытаюсь понять где он заполняется в БП 3.0, чтобы отладчиком все увидеть
4. kembrik 10 19.10.22 15:41 Сейчас в теме
(3) Я не совсем понимаю в чем затруднение. Есть общая форма СписокЗначенийОтбора

У формы есть параметры (Нас интересует параметр "Значение)

Основная процедура где происходит "Магия" - БухгалтерскиеОтчетыКлиент.ОтборОбработатьВыборЗначения

Но можно немного изменить в ПриСозданииНаСервере Формы СписокЗначенийОтбора и дополнить "Вилку"

Если ТипЗнч(Значение) = Тип("СписокЗначений") Тогда
		
	Список.ЗагрузитьЗначения(Значение.ВыгрузитьЗначения());
		
ИначеЕсли ЗначениеЗаполнено(Значение) Тогда
		
	Список.Добавить(Значение);
		
КонецЕсли;
Показать
условием

Например что если на входе строка с определенным разделителем (из буфера) , скажем ";" то мы преобразовываем строку в массив и его уже грузим в список значений. Разделитель может быть любым, хоть перевод строки, если столбик номеров вы планируете вставлять из столбика экселя. Нет смысла манипулировать с правой половиной значения отбора формы, гораздо проще корректно заполнить список значений формы любым удобным способом и потом это стандартной кнопкой закинуть в отбор
5. German_Tagil 43 20.10.22 06:42 Сейчас в теме
(4) А Вы попробуйте стать отладчиком БухгалтерскиеОтчетыКлиент.ОтборОбработатьВыборЗначения
и вызовете не отчет, а список документов ПоступлениеТоваровУслуг. Не отрабатывает
6. German_Tagil 43 20.10.22 08:53 Сейчас в теме
Это для отчетов


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



Показать
7. SlavaKron 20.10.22 10:14 Сейчас в теме
(1) Вообще, платформенная форма редактирования списка значения имеет имя ValueListForm. К ней можно обратиться на клиенте и к ее реквизиту ValueList типа СписокЗначений. Но судя по скрину у вас не платформенная форма списка.
8. German_Tagil 43 20.10.22 10:23 Сейчас в теме
(7) Да платформенная - расширение висит отключу.
Хочется разобраться ....
А каким образом вызывается? Задал поиск по имени формы
9. SlavaKron 20.10.22 10:37 Сейчас в теме +0.3 $m
(8) Вызывается платформой же. Обратиться можно через перебор открытых форм:
ФормаСпискаЗначений = Неопределено;

Для Каждого ОткрытоеОкно Из ПолучитьОкна() Цикл
	Для Каждого Форма Из ОткрытоеОкно.Содержимое Цикл
		Если Форма.ИмяФормы = "ValueListForm" Тогда
			ФормаСпискаЗначений = Форма;
			Прервать;
		КонецЕсли;
	КонецЦикла;
КонецЦикла;

Если ФормаСпискаЗначений <> Неопределено Тогда
	
	Для Сч = 1 по 10 Цикл
		
		ФормаСпискаЗначений.ValueList.Добавить(Сч);
		
	КонецЦикла;
	
КонецЕсли;
Показать
independ; +1 Ответить
10. German_Tagil 43 20.10.22 10:49 Сейчас в теме
(9) Хорошо - это понял. А как можно ее переопределить - хотелось бы добавить прочитать из буфера
11. kembrik 10 20.10.22 10:53 Сейчас в теме
(10) Заполнить ее реквизит ValueList

А так ищем "программное добавление на управляемую форму" если нужно кнопочек добавить

Не хотите программно- можно стандартную форму "допилить"

https://infostart.ru/public/538300/
17. SlavaKron 20.10.22 15:26 Сейчас в теме
(10)
А как можно ее переопределить
Именно платформенную форму списка значений переопределить невозможно, но можно переопределить событие НачалоВыбора поля ввода, связанного со списком значений.
12. German_Tagil 43 20.10.22 11:02 Сейчас в теме
(11) Как саму форму переопределить? И все-таки как пройти отладчиком где вызывается - к примеру
встал на список отбора нажал и попал в отладчик. Не могу поймать точку входа
на первом рисунке показана переопределяемая форма точка входа настроить список
на втором стандартный отбор
Прикрепленные файлы:
13. kembrik 10 20.10.22 11:37 Сейчас в теме +0.2 $m
(12) Мне кажется вы достаточно однозначно устремились к единственному варианту решения

Допустим вам нужна форма выбора из списка с возможностью вставки из буфера. По каким то причинам не получается изменить стандартную

как это делал я - расширением добавляется новая общая команда, "Загрузить из табличного документа". Открывается табличный документ, куда пользователь просто вставляет колонку из Экселя (чаще всего с нужными номерами, реже - с суммами), и дальше все это грузилось в список значений и попадало в текущий активный правый реквизит отбора

Вот вы неоднократно пишете что с документами (ссылками) у вас получилось, а просто со строками - нет, а можно посмотреть на реализация с документами?
14. German_Tagil 43 20.10.22 12:04 Сейчас в теме
(13) Взаимно покажите как Вы делали с табличным документом - пишите адрес.
Расширение сброшу. От Вас жду того же.
мой адрес germanigor@rambler.ru
15. German_Tagil 43 20.10.22 12:48 Сейчас в теме
(9) отработало
только
ФормаСпискаЗначений.ValueList.Добавить(Сч.значение)
;
16. German_Tagil 43 20.10.22 14:05 Сейчас в теме
в общем в итоге сделал по другому доточил
https://infostart.ru/public/1740836/
уж больно много надо изменять если добавлять кнопку
18. German_Tagil 43 20.10.22 15:44 Сейчас в теме
(17) Я посмотрел - Вы в свое время как бы тоже сильно озадачились данной темой.....
Оставьте свое сообщение

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