Как при открытии формы выбора установить отбор в списке справочника #149340


#0 by Восьмерка
С помощью запроса получаю остатки телефонов которые нужно отобразить в списке.
#1 by Волшебник
; Не пойму только, причем тут Регистр? и что это за остатки в РегистрТелефонов?
#2 by LOSS
Не понял
#3 by Восьмерка
Ну давайте еще раз другими словами объясню все сначала. В документе ВыдачаТелефона есть реквизит Квитанция по которой принимали телефон. Если выбирать квитанцию то вываливаются все квитанции а их там каждый день вводиться пару десятков. Т.е. с каждым днем искать становиться затруднительно. Согласитесь, что надо показывать квитанции по телефонам которые имеются на складе. Согласны. А как определить какие телефоны имеются на складе? По регистру остатков. Или я не прав? Поправьте.
#4 by Восьмерка
Волшебник посмотри в текст обрезался.
#5 by Волшебник
Искать надо по контрагенту.
#6 by Восьмерка
Контрагентов вообще нет. Это база для учета телефонов в ремонтной мастерской. Контрагенты иду только как коментарий в документе Квитанция. Мы решили что учет контрагентов нам не нужен. Надо учитывать только телефоны:приход, уход, причина, номера всякие и т.д. Конфигурация маленькая, но надо все сделать для максимально быстрого ввода документов.
#7 by Волшебник
Твоя задача решается просто. Делаешь выборку остатков, затем ее показываешь в табличном поле (или отбором в СправочникСписок или таблица значений). В чем проблема?
#8 by Восьмерка
Согласен что просто. Но я не знаю как. Вот в получил остатки телефонов, и что делать дальше?
#9 by Волшебник
Пройдись по ссылке, которую я привел.
#10 by Восьмерка
Урааааааааааа!!! Заработало!!! Все большое спасибо!!! Запрос=Новый Запрос; Может че подправите.
#11 by Волшебник
В запросе можно оставить только поле Телефон, в параметрах запроса можно указать параметры (например, дату, выбранный склад). Выгрузку можно организовать более элегантно, без цикла.
#12 by Восьмерка
Попробовал {Документ.Квитанция.Форма.ФормаВыбора}: Ошибка при установке значения атрибута контекста (Значение): Неверный тип значения    ДокументСписок.Отбор.МодельТелефона.Значение=СписокТелефонов; по причине: Неверный тип значения
#13 by Волшебник
Пардон, ВыгрузитьКолонку выдает массив. Значит надо так:
#14 by Восьмерка
Вот так получилось Что еще можно доработать?
#15 by Волшебник
Можно сократить запрос на 50 символов, т.е. почти в 2 раза. Или даже в 3 раза. Т.е. оставить только ВЫБРАТЬ РегистрНакопления.РегистрТелефонов.Остатки Интересно, заработает?
#16 by Восьмерка
Работает.
#17 by Волшебник
Текст запроса можно передать в качестве параметра конструктора объекта "Запрос". Знаешь, любую программу можно сократить на один символ. Иногда нужно просто остановиться.
#18 by Волшебник
Еще можно завести переменную Отбор и убрать переменную СписокТелефонов; ОтборМодельТелефона = ДокументСписок.Отбор.МодельТелефона; ОтборМодельТелефона.ВидСравнения = ... ОтборМодельТелефона.Значение.ЗагрузитьЗначения(Запрос.Выполнить.Выгрузить.ВыгрузитьКолонку("Телефон")) ...
#19 by Волшебник
Итого, программа получается из 5 строк: Мне кажется, это уже близко к идеалу. Дальнейшая оптимизация возможна только другой структурой данных или изменением постановки задачи.
#20 by Восьмерка
Вот что получилось И что было в
#21 by Волшебник
Вот оно - простое программистское счастье! :)
#22 by Восьмерка
Ой! Я не обновил. Один в один получилось. Дааа, много я узнал пока оптимизировал.
#23 by Восьмерка
Возникли траблы. Форма выбора документа Квитанция может вызываться в нескольких местах. И в зависимости от того откуда она вызывается должны быть установлены разные условия отбора. Как можно сделать примерно следующее ... Иначе ... КонецЕсли; КонецПроцедуры Как передать в форму выбора переменную МестоВызова?
#24 by Волшебник
#25 by Восьмерка
Статью прочитал. В очередной раз ты меня убедил что я не могу искать информацию. Я не знаю как обратиться к вызываемой форме. Я же просто щелкаю по кнопке с тремя точками у реквизита.
#26 by Волшебник
Перехватывай событие "ПередНачаломВыбораЗначения" и присваивай СтандартнаяОбработка = Ложь. Далее открывай форму выбора сам с передачей параметров в нее.
#27 by Восьмерка
Получилось вот так Процедура НаОснованииНачалоВыбора(Элемент, СтандартнаяОбработка)
#28 by Восьмерка
Вольшебник. У меня проблемы. При выборе выбранное значение не подставляется в поле. Что делать?
#29 by Восьмерка
Апну. Вдруг кто поможет
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С