8.х Фильтр отбор

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Dmitrij, 6 май 2008.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Подскажите кто знает есть два справочника автомобили и контрагенты и есть документ события когда в документе установлен контрагент при выборе автомобиля должны появляться только автомобили этого контрагента. Как это можно сделать? :unsure:
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Во первых, какая конфа, во вторых что значит автомобили этого контрагента?
  3. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Конфа Управление торговлей 10.3.3
    Данные об автомобилях контрагента хрянятся в регистре
  4. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Сам на свой вопрос ответил - бери из регистра список контрагентов автомобиля, и ставь отбор при открытии формы выбора.

    http://www.1c-pro.ru/index.php?showtopic=11640&hl=
  5. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
  6. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Я вот написал такой кодик для пробы, но чуть - чуть не корректный подскажите где нужно поправить код написан в доке Событие и начинает обрабатываться при начале выбора автомобиля
    Код:
    Процедура АвтомобилиНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |Рег.Ссылка
    |ИЗ
    |РегистрСведений.Автомобили КАК Автомобили
    |ГДЕ Автомобили.Значение=Документ.Событие.Контрагент";//ошибка
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    Автомобили=Выборка.Ссылка.ПолучитьФорму();
    Автомобили.Открыть();
    
    КонецЦикла;
    
    КонецПроцедуры
    
    
  7. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Не вникал в запрос
    Код:
    "ГДЕ Автомобили.Значение=Документ.Событие.Контрагент";//ошибка
    
    Нужно что то вроде
    Код:
    "
    |ГДЕ Автомобили.Значение=&Контрагент";
    Запрос.УстановитьПараметр("Контрагент", Контрагент); //Документ.Событие.Контрагент - т.к. открываем из самого документа, то можно обратиться к реквизиту сразу.
    
  8. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    исправил что то не так на ссылку ругается
  9. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Спасибо за подсказку я все по правил Сейчас код стал таким:
    Код:
    Процедура АвтомобилиНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |Автомобили.Значение
    |ИЗ
    |РегистрСведений.Автомобили КАК Автомобили
    |ГДЕ Автомобили.Значение=&Контрагент";
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    Автомобили=Выборка.Значение.ПолучитьФорму();
    Автомобили.Открыть();
    КонецЦикла;
    КонецПроцедуры
    
    
    Но я как то не так этот код написал у меня открывается совсем другая форма, открывается форма контрагентов, а должна открыться форма автомобили, может что подскажите
  10. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Код:
     Автомобили=Выборка.Значение.ПолучитьФорму("ТутИмяНужнойФормы")
    
  11. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Форма другого справочника открывается нужно чтоб открывалась справочника Автомобили, а открывается Контрагенты
  12. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Я сделал то что хотел, почти
    только вот подскажите что и где нужно дописать чтоб форма открывалась только с теми наименованиями с которыми нужно, а ни весь справочник :unsure:
    Код:
    Процедура АвтомобилиНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |Автомобили.Автомобиль
    |ИЗ
    |РегистрСведений.Автомобили КАК Автомобили
    |ГДЕ Автомобили.Значение=&Контрагент";
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    Автомобили=Выборка.Автомобиль.ПолучитьФорму("ФормаСписка");
    Автомобили.Открыть();
    КонецЦикла;
    КонецПроцедуры
    
    
  13. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    ФормаОтбор = Автомобили.СправочникСписок.Отбор;

    Это отбор списка справочника.
    Заполняешь его и радуешься)))
  14. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Спасибо. Но можно по подробней или ссылочку на что нибудь подобное
  15. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Кстати форму в цикле открывать.......
    Экрана то хватит на все автомобили :)
  16. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    открываются не все формы это я поправил лучше подскажите как сделать чтоб открывалась форма списка только с нужными автомобилями выборка работает правельно
  17. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Перед открытием формы устанавливаешь отбор.
    Как отбор получить я тебе написал.

    В чем проблема то?
  18. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Как отбор установить, у меня в запросе такой как написан последний код на форуме выбирается по контрагенту и открывается его карточка, а как это сделать чтобы это было списком ведь у контрагента может быть несколько автомобилей, мне бы примерный код как работают фильтры в 8.
  19. LordKim
    Offline

    LordKim Опытный в 1С

    Регистрация:
    11 мар 2008
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Судя по коду у тебя открывается форма списка справочника Автомобили.
    В форме списка есть элемент - СправочникСписок.
    У этого элемента есть свойство Отбор.
    Вот параметры этого свойства ты должен установить.

    Про тип Отбор и как им пользоваться читай в СП.
  20. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Сейчас код стал таким:

    Код:
    Процедура АвтомобилиНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |Автомобили.Автомобиль
    |ИЗ
    |РегистрСведений.Автомобили КАК Автомобили
    |ГДЕ Автомобили.Значение=&Контрагент";
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    ФормаВыбора = Справочники.Автомобили.ПолучитьФормуВыбора(,Элемент,Элемент);
    ЭлементОтбора = ФормаВыбора.СправочникСписок.Отбор.Ссылка;
    ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
    ЭлементОтбора.Значение = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Автомобиль");
    ЭлементОтбора.Использование = Истина;
    ФормаВыбора.НачальноеЗначениеВыбора = Автомобиль;
    ФормаВыбора.Открыть();        
    КонецПроцедуры
    
    
    Ошибка при установке значения атрибута контекста (Значение): Неверный тип значения
Похожие темы
  1. S1971
    Ответов:
    8
    Просмотров:
    4.624
  2. Zhorland
    Ответов:
    1
    Просмотров:
    412
  3. nurdeks
    Ответов:
    2
    Просмотров:
    1.588
  4. Pentыch
    Ответов:
    9
    Просмотров:
    602
  5. Will
    Ответов:
    5
    Просмотров:
    1.376
Загрузка...

Поделиться этой страницей