7.7 Как установить фильтр?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем gromm, 5 фев 2007.

  1. TopicStarter Overlay
    gromm
    Offline

    gromm

    Регистрация:
    5 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток, уважаемые!
    Подскажите пожалуйста как написать такую процедуру, чтобы в документе после того как пользователь выбрал контрагента, на справочник договоров установился фильтр только на договора этого контрагента.?
  2. visokos
    Offline

    visokos

    Регистрация:
    5 фев 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Вопрос не совсем понятен. Справочник Договоры - является подчиненным справочнику Контрагенты, если указать конструкцию вида "СпрДоговоры.ИспользоватьВладельца(ЭлемКонтрагент)", то в справочнике Договоры будут отражены только договоры нужного контрагента.
  3. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    СпрДоговоры.ИспользоватьВладельца(ЭлемКонтрагент)
    Скорее всего это автору и нужно.
  4. TopicStarter Overlay
    gromm
    Offline

    gromm

    Регистрация:
    5 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Сейчас поясню:
    У меня есть документ "Договор займа"
    В этом документе есть Контрагент.
    Теперь в документ "Приходный ордер" добавляю выбор договора займа.
    при выборе договора программа автоматически подтягивает контрагента.
    Процедура такая:
    Процедура ПриВыбореДоговора()
    Контрагент=ДоговорЗайма.Контрагент;
    КонецПроцедуры

    А теперь мне надо переделать чтобы при выборе контрагента, показались только договора этого контрагента
  5. visokos
    Offline

    visokos

    Регистрация:
    5 фев 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Если есть в конфигурации справочник "Договоры", думаю имеет смысл привязать документ "Договор займа" к элементу этого справочника или, если нет, лопатить все "Договоры займа" через запрос.
  6. TopicStarter Overlay
    gromm
    Offline

    gromm

    Регистрация:
    5 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    а как запрос написать?
  7. TopicStarter Overlay
    gromm
    Offline

    gromm

    Регистрация:
    5 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    я процедуру такую пишу

    Процедура ПриВыбореДоговора()
    ДоговорЗайма=ДоговорЗайма.НомерДок;
    ДоговорЗайма.ВыбратьСтроки();
    КонецПроцедуры

    на поле Контрагент в формулу пишу ПриВыбореДоговора()

    но вот программа все равно все договора показывает
  8. TopicStarter Overlay
    gromm
    Offline

    gromm

    Регистрация:
    5 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    и вот еще добавлю - у меня справочника Договоры нет, из приходника вызывается журнал Договоры Займа
  9. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    Попробуй в процедуру ПриНачалеВыбораЗначения подвесить следующее:
    Процедура ПриНачалеВыбораЗначения(Ид,Фл)
    Если Ид="Договор" Тогда
    Фл=0;
    ОткрытьФорму("Журнал.ЖурналДоговоров.Основная",Контрагент);
    КонецЕсли;
    КонецПроцедуры
    имя журнала и имя формы поставишь свои.
    в графы отбора добавь (если нет) контагент и пропиши какие реквизиты ему соответствуют (хотя скорее всего она там есть)
    а в указанную форму журнала в процедуру приоткрытии() вставь что-то вроде:
    если ТипЗначенияСтр(форма.параметр)="Справочник" Тогда
    если Форма.Параметр.вид="Контрагенты" Тогда
    установитьотбор("Контрагент",Форма.Параметр);
    КонецЕсли;
    КонецЕсли;

    вроде так
  10. TopicStarter Overlay
    gromm
    Offline

    gromm

    Регистрация:
    5 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Не получилось.
    Вот что у меня в журнале Договоров
    Процедура ПриОткрытии()
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    если ТипЗначенияСтр(форма.параметр)="Справочник" Тогда
    если Форма.Параметр.вид()="Займополучатель" Тогда
    УстановитьОтбор("Займополучатель", форма.параметр.вид);
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры

    дальше в приходном ордере так:
    Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр)
    Если ИдентЭлемДиалога="ПринятоОт" Тогда
    ОткрытьФорму("Справочник.Сотрудники");
    ИначеЕсли ИдентЭлемДиалога = "ДоговорЗайма" Тогда
    ФлагСтандОбр = 0;
    ОткрытьФорму("Журнал.ДоговорЗайма.Основная",Контрагент);

    все работет, ошибок не выдает, но фильтр не устанавливается, может еще что добавить надо?
  11. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    если Форма.Параметр.вид()="Займополучатель" Тогда
    У тебя справочник контрагентов в конфигураторе называется "Займополучатель"?
  12. TopicStarter Overlay
    gromm
    Offline

    gromm

    Регистрация:
    5 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Нет справочник называется Контрагенты
    а Займополучатели - это поле в журнале ДоговорыЗайма
  13. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    Тогда нафига ты написал
    ?
  14. TopicStarter Overlay
    gromm
    Offline

    gromm

    Регистрация:
    5 фев 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    похоже на журналы, которые имеют тип "обычный" нельзя фильтр накладывать

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