8.х Подбор и отбор

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

  1. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Нужно сделать следующее
    В документе "Требование-накладная" я добавила элемент формы,поле ввода, тип значения- СписокЗначений, тип значенияСписка - ДокументСсылка.ПеремещениеТоваров. Для того, чтобы заполнять табличную часть документа Требование на основании выбранных документов Перемещение. Мне нужно сделать, чтобы при открытии списка документов Перемещение в этом списке были только перемещения, складПолучатель, которых равен складу в док. Требование. И месяц тоже был такой же. Помогите пожалуйста.
  2. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    А почему бы не сделать через Полевыбора?
    Пишете запрос, который выберет вам необходимые документы по складу, требованию и дате, затем переносите список этих документов в Полевыбора.
  3. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Но пользователи сами должны выбирать документы Перемещение. Т.е. это могут быть не все, которые есть в этом месяце
  4. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Тогда вы можете создать элемент управления ПоеСписка, в котором пользователь сможет отмечать хоть один хоть все документы в зависимости от потребности.
    Но если предложенные мною способы вам не подходят тогда вам необходимо при открытии формы списка документов перемещения включать необходимые фильтры.
    Пример включения фильтра для списка документов:
    Код:
    документсписок.Отбор.<имя поля>.видсравнения = видсравнения.Равно;
    документсписок.Отбор.<имя поля>.значение = <значение>;
    документсписок.Отбор.<имя поля>.Использование = истина;
    
    
    
    
    Только в этом варианте вам необходимо будет решить вопрос передачи необходимых параметров(Склад, требование, период) для фильтра в открывающуюся форму списка документов.
  5. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    документсписок= документы.ПеремещениеТоваров.ПолучитьФормуСписка(,Элемент,);
    документсписок.Отбор.СкладПолучатель=Склад;
    документсписок.Открыть();


    Я сделала так в процедуре Начало вывода Поля ввода. Но все равно выходят все документы Перемещение
  6. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    так попробуйте:
    Код:
    ФормадокументаПеремещения= документы.ПеремещениеТоваров.ПолучитьФормуСписка(,Элемент,);
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.видсравнения = видсравнения.Равно;
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.значение = Склад;
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.Использование = истина;
    ФормадокументаПеремещения.открыть();
    
  7. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    немного обшибся, открывать надо до установки фильтра:
    Код:
    ФормадокументаПеремещения= документы.ПеремещениеТоваров.ПолучитьФормуСписка(,Элемент,);
    ФормадокументаПеремещения.открыть();
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.видсравнения = видсравнения.Равно;
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.значение = Склад;
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.Использование = истина;
    
  8. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    А в обработчик какого события нужно поместить? Начало выбора из списка?
    Просто, если тип значения у поля ввода Перемещение (т.е. только один док можно выбрать), то все нормально. А, когда список значений, то сначала форма Редактирование списка выходит, нажимаю на кнопку побор, а там все равно все в куче
  9. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Ну вот это та проблема о которой я говорил, что в форму списка документов необходимо как-то передавать параметры. Один из вариантов решения это сделать глобальную переменную и при открытии формы списка, если переменная не пустая, то делать по этой переменной отбор.
  10. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Ну это пока для меня сложная задача. Я начинающий)))
  11. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Ну а что тут сложного, в глобальном модуле создаете переменную:
    Код:
    Перем Выбрансклад экспорт;
    
    Затем в форме списка выбора документов в событийной процедуре Приоткрытии вставляете:
    Код:
    Если Выбрансклад<>неопределенно тогда
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.видсравнения = видсравнения.Равно;
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.значение = Выбрансклад;
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.Использование = истина;
    Выбрансклад=неопределенно;
    КонецЕсли;
    
    Затем в событийной процедуре НачалоВыбораизсписка у самого поля, вставляем:
    Код:
    Выбрансклад=склад;
    
    Должно работать :)
  12. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Сейчас попробую
  13. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    У меня ошибка: В глобальном модуле могут быть только процедуры и функции
  14. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Вы скорее всего пытаетесь добавить переменную в общие модули, а вам необходимо в модуль приложения. В окне конфигурации правой кнопкой по самой верхней позиции открыть модуль приложения.
  15. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Да, я уже поняла. Сдела, как вы сказали. Но не работает
  16. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    при открытии формы списка документов, фильтр не включается?
    В событийную процедуру Началовыбораизсписка добавили нужную строчку, чтобы запоминала склад? Сам склад вводите перед выбором из списка?
  17. TopicStarter Overlay
    Ольгусик
    Offline

    Ольгусик Опытный в 1С Команда форума

    Регистрация:
    4 фев 2010
    Сообщения:
    646
    Симпатии:
    3
    Баллы:
    29
    Да. Все сделала. Вот только мне кажется что открывается не ворма списка, а форма выбора документа? Нет?
  18. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Да вы правы, нужна событийная процедура НачалоВыбора, а не Началовыбораизсписка. Отловился я чего-то, извиняюсь.
  19. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    И в этом тоже правы :)
  20. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Соберя все воедино получим правильный вариант:
    В модуль приложения создаете переменную:
    Код:
    Перем Выбрансклад экспорт;
    
    
    Затем в форме выбора документов Перемещения в событийной процедуре Приоткрытии вставляете:
    Код:
    Если Выбрансклад<>неопределенно тогда
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.видсравнения = видсравнения.Равно;
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.значение = Выбрансклад;
    ФормадокументаПеремещения.документсписок.Отбор.СкладПолучатель.Использование = истина;
    Выбрансклад=неопределенно;
    КонецЕсли;
    
    
    Затем в событийной процедуре НачалоВыбора у самого поля, вставляем:
    Код:
    Выбрансклад=склад;
    
    
    Теперь вроде все правильно.

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