Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Форма выбора для формы Отбора и Сортировки
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Constantus
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Для справочников, возможно создать несколько форм выбора и наложить на них какие-либо условия при открытии, например для фильтрации вывода на экран с ограничениями...

Для склада сделал 2-е формы отбора: Основная (с фильтрацией) и "ФормаВыбораВсе" (без каких либо ограничений)

Просматриваю список документов "Перемещение товаров". Там имеется склад Отправитель и склад Получатель.
На склад Отправитель поставлена форма выбора Основная (с фильтрацией), на склад Получатель - форма выбора "ФормаВыбораВсе", т.е. без ограничений с возможностью выбрать любой склад...

Это все нормально, но вот столкнулся с такой проблемой...

В списке документов Перемещений требуется открыть форму "Отбор и Сортировка" и проводить там фильтрацию по обоим типам складов.

При открытии в "Отборе и Сортировки" склада Отправитель отрабатывает основная форма выбора склада с ограничением - это так и правильно...
При открытии склада "Получатель" тоже открывается основная форма выбора, что по условиям задачи - не правильно: нужно открытие формы "ФормаВыбораВсе"...

В реквизитах и на всех формах документа Перемещения на склад Получатель поставил в свойство форма выбора - "ФормаВыбораВсе", но открывает все равно основную...

Каким образом в форме "Отбор и Сортировка" можно прописать при отборе нужную форму отбора справочников??? Я так понял, что используется основная форма отбора справочника...
logist
Цитата(Constantus @ 21.04.17, 16:39) необходимо зарегистрироваться для просмотра ссылки
Каким образом в форме "Отбор и Сортировка" можно прописать при отборе нужную форму отбора справочников???

Никаким

Цитата(Constantus @ 21.04.17, 16:39) необходимо зарегистрироваться для просмотра ссылки
Я так понял, что используется основная форма отбора справочника...

Правильно поняли.

Цитата(Constantus @ 21.04.17, 16:39) необходимо зарегистрироваться для просмотра ссылки
Для справочников, возможно создать несколько форм выбора и наложить на них какие-либо условия при открытии, например для фильтрации вывода на экран с ограничениями...

Создание нескольких форм имеет смысл когда формы визуально значительно различаются, если вам надо наложить отбор, для этого не надо создавать отдельную форму, надо создать реквизит в который будет помещаться значение отбора, а при открытии проверять - если он заполнен тогда установить какой-то отбор, или выполнять какие-то действия. Но через форму отбора и сортировки так сделать нельзя, можно только получить условия доступные уже по факту открытия формы выбора.
Constantus
Для программного отбора для Складов использовал код:

    ЭтаФорма.Отбор.Склад.Использование=Истина;
    ЭлементыФормы.Список.Значение.Отбор.Склад.ВидСравнения = ВидСравнения.ВСписке;
    ЭлементыФормы.Список.НастройкаОтбора.Склад.Доступность = Ложь;
    Скл = Справочники.Склады.НайтиПоНаименованию(ПолеВыбора1);
    
    СписокДокументов = Новый СписокЗначений;
    СписокДокументов.Добавить(Скл);    
    ЭтаФорма.Отбор.Склад.Значение = СписокДокументов;


Где ПолеВыбора1 - список доступных складов... Код работает, фильтрует... без претензий...
Но вот попытался сделать аналогично, но теперь для Кассы...:

    ЭтаФорма.Отбор.Касса.Использование=Истина;
    ЭлементыФормы.Список.Значение.Отбор.Касса.ВидСравнения = ВидСравнения.ВСписке;
    //ЭлементыФормы.Список.НастройкаОтбора.Касса.Доступность = Ложь;
    Скл = Справочники.Кассы.НайтиПоНаименованию(ПолеВыбора1);
    СписокДокументов = Новый СписокЗначений;
    СписокДокументов.Добавить(Скл);    
    ЭтаФорма.Отбор.Касса.Значение = СписокДокументов;


Не выдает никаких ошибок, в форме Отбора и Сортировки отбор по выбранной кассе стоит... Но сам список полностью пустой, т.е. какбуд-то такой кассы не существует.
Выбираю отбор эту кассу в ручную - фильтрация срабатывает (естественно при выборе запрашивает владельца кассы-организацию)...

Почему последний код не срабатывает? Подозреваю на отсутствие подбора по Владельцу... Как можно сделать программный отбор по Кассам?


Constantus @ Сегодня, 14:12 необходимо зарегистрироваться для просмотра ссылки ,
Странно, проверил работоспособность кода на других кассах, которые создал сейчас, на новых кассах код срабатывает и всё фильтруется...

Constantus @ Сегодня, 14:28 необходимо зарегистрироваться для просмотра ссылки ,
Еще страннее ситуация

Имеется касса "Kassa_AG" с которой у меня и возникли проблемы...

Переименовал ее в "Kassa_AG1" - фильтрация заработала как нужно... Все работает...

Решил переименовать обратно в "Kassa_AG" - ситуация вернулась на прежнюю проблемную ситуацию..., т.е. код именно на это название - не срабатывает...

Как такое возможно?
Flexy
Constantus @ Сегодня, 11:40 необходимо зарегистрироваться для просмотра ссылки ,
Не надо искать по наименованию ни склады, ни кассы. У вас же уже есть (или нет?) в поле выбор Ссылки на нужные значения, которые вы добавляете в список для установки отбора? Да и как ваш код будет работать, если "кто-то" завтра поменяет наименование склада / кассы?
Constantus
Flexy @ Сегодня, 16:31 необходимо зарегистрироваться для просмотра ссылки ,

Поиск идет как и положено по ссылке. Наименование по большому счету на поиск не влияет...

Ситуация парадоксально лищь тем, что сбой происходит только, если касса названа "Kassa_AG"...

При любом другом названии всё работает без проблем... Такое ощущение, что у 1с аллергия на название "Kassa_AG" smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.