8.х Отбор

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

  1. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    Помогите разобраться с отбором. Никак не получается. Надо вывести список договоров выбранного контрагента из документа, никак не получается.

    Код:
    Процедура СписокДоговоров (Кнопка)
    
    
    Договор=Справочники.ДоговорыКонтрагентов.ПолучитьФормуВыбора().ОткрытьМодально();
    
    Отбор = Новый Структура("ТипДоговораКонтрагента");
    Отбор.ТипДоговорКонтрагента = Перечесления.ТипыДоговоровКонтрагента,; 
    
    ДокВыборка = Документы.РеализацияТоваровУслуг.Выбрать("20060101","20070206",Отбор,"Организация Убыв");
    
    Пока ДокВыборка.Следующий()Цикл
    
    Сообщить("Договор:  "+ДокВыборка.ДоговорКонтрагента+"  Организация:  "+ДокВыборка.Организация);
    
    
    ОбработкаПрерыванияПользователя();
    
    КонецЦикла;
    
    КонецПроцедуры  
    
  2. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Что-то не понял, а что в этой строке присваивается?
    Отбор.ТипДоговорКонтрагента = Перечесления.ТипыДоговоровКонтрагента,;
    просто перечисление, или все же значение какое-то?
  3. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    Перечесления по контрагенту. Должен выводиться список договоров по конкретному контрагенту.
  4. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Ну просто когда присваиваешь перечисление, то выглядит примерно так
    Отбор.ТипДоговорКонтрагента = Перечесления.ТипыДоговоровКонтрагента.Основной;
    И посмотри ещё, стоит ли у этого реквизита документа "Индексировать".
  5. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    выдаёт ошибку

  6. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    :unsure: Ну я ж для примера написал. Ты посмотри, какие значения у тебя это перечисление может принимать.
    И вообще зачем оно тебе к стати. Если просто хочешь вывести список договоров из документов по выбранному контрагенту, то отбор в документах надо делать по контрагенту, а не договору. А ещё лучше возьми, и напиши запрос, он совсем простой будет.
  7. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    сделал запрос

    Код:
    Документ = Документы.РеализацияТоваровУслуг.ПолучитьФормуВыбора().ОткрытьМодально();
    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Контрагент,
    |    РеализацияТоваровУслуг.Дата
    |ИЗ
    |      Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    |   РеализацияТоваровУслуг.Контрагент = &Владелец ");
    Запрос.УстановитьПараметр("&Владелец",ДоговорКонтрагента);
    ДокВыборка=Запрос.Выполнить().Выбрать();
    Пока ДокВыборка.Следующий() Цикл
    Сообщить("Договор: "+ДокВыборка.ДоговорКонтрагента+" Организация: "+ДокВыборка.Организация);
    ОбработкаПрерыванияПользователя();    
    КонецЦикла;
    
    Но выдаёт ошибку
    {Форма.ОсновнаяФорма(17,43)}: Переменная не определена (ДоговорКонтрагента)
    Запрос.УстановитьПараметр("&Владелец",<<?>>ДоговорКонтрагента);
  8. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Не хочу править просто код, ты уж прости, люблю, когда люди сами находят ошибки (после подсказок).
    1. Тебе нужны договоры, зачем тогда ты выбираешь Контрагента и Дату?
    2. Если ты хочешь выбрать записи по конкретному контрагенту, то зачем этому параметру присваиваешь значение какого-то договора?
    3. Как ты хочешь при выводе выборки Сообщить значение ДоговорКонтрагента если ты не выбираешь такого поля, тоже самое для Организация.
  9. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    написал по другому

    | РеализацияТоваровУслуг.ДоговорКонтрагента = &Договор ");

    Запрос.УстановитьПараметр("Договор");

    Но пише недостаточно фактических параметров.
  10. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Эх, ладно. Ничего стршного нет, приставай.

    Документ = Документы.РеализацияТоваровУслуг.ПолучитьФормуВыбора().ОткрытьМодально(); (не знаю, зачем тебе это строка- дело твое)

    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    | РеализацияТоваровУслуг.ДоговорКонтрагента, (посмотри, так ли называется это поле!)
    | РеализацияТоваровУслуг.Организация (опять же посмотри как поле называется)
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    | РеализацияТоваровУслуг.Контрагент = &Владелец ");
    Запрос.УстановитьПараметр("Владелец",Контрагент); (Откуда брать контрагента ты хочешь - не знаю, сам реши).

    ДокВыборка=Запрос.Выполнить().Выбрать();
    Пока ДокВыборка.Следующий() Цикл
    Сообщить("Договор: "+ДокВыборка.ДоговорКонтрагента+" Организация: "+ДокВыборка.Организация);
    ОбработкаПрерыванияПользователя();
    КонецЦикла;
  11. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    С этим я разобрался. Теперь не знаю какое условие ставить туда(Выше написал). Нажимаю кнопку никакого эффекта.
  12. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Я не понял, тебе все договора нужны или только конкретный, зачем тебе тогда условие на договор?
  13. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    нет мне нужно,чтобы выводился список договоров контрагента выбранного документа.
  14. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Уф... начнем сначала... Куда тебе надо его вывести и откуда.
  15. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26

    Вот список документов. Мне надо сделать так чтобы при выборе одного из документов выводился список договоров контрагента, который значится в этом договоре. Вот.
  16. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Ок. Куда выводился? И что значит при выборе: при открытии документа, при активацим строки?
  17. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    Выводится список, как сообщение. При выборе документа закрываеся, окно списка документов.
  18. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Ок, про сообщение понял. Не понял вторую часть фразы. У тебя есть список документов, ты становишься курсором на какую-то строку, в этот момент должно сообщение появляться? Или когда ты щелкаешь на документ и он открывается?
  19. TopicStarter Overlay
    Panchos
    Offline

    Panchos Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    101
    Симпатии:
    0
    Баллы:
    26
    щелкаешь на документ, он не открывается(Документ), а закрывается список с документами и выводится список договоров контрагента.
  20. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Сложная схема :) Ну да ладно. Еще не понял фразы:
    при выборе одного из документов выводился список договоров контрагента, который значится в этом договоре. Вот.
    Что - то как-то "список договоров, который в договоре", может в документе?

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