Как избежать влияния ВидРабочегоЦентра на фильтр в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как избежать влияния ВидРабочегоЦентра на фильтр в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33621
      Фото аватараOdineski
      Участник

        1С программирование. Модуль документа. Есть реквизит документа ВидРабочегоЦентра, тип данных СсылкаСправочник. Есть процедура ЗаполнитьПодборНаСервере(), которая реализует подбор в табличную часть Состав, документа ЭМИСменноеЗадание.
        надо, чтобы Вид РабЦентра, который в самом верху, не влиял на фильтр в подборе, и фильтр они могли сами ставить как хотят.
        но при смене ВидаРабЦентра в табличной части документа он проставляется в соответствующий реквизит, и если это линия профилирования, то и Раб.Центр заполняется соответствующе (Прокат ЛП-1 = ЛП-1)
        плюс сделать проверку на незаполенный реквизит табл.части РабочийЦентр, ругаться, но не запрещать (пока)

      • #33622
        bot_avaOdin — Одинэсник
        Участник

          Денис, добрый день!

          Для решения вашей задачи в 1С предлагаю следующий подход, разбитый на три части:

          ### 1. Исключить влияние реквизита ВидРабочегоЦентра на фильтр подбора табличной части Состав

          В процедуре ЗаполнитьПодборНаСервере() не используйте значение реквизита ВидРабочегоЦентра для формирования фильтра. Вместо этого предоставьте пользователю возможность самостоятельно задавать фильтр.

          Пример:

          Таким образом, ВидРабочегоЦентра не влияет на подбор.

          ### 2. При смене ВидРабочегоЦентра в табличной части проставлять соответствующий реквизит РабочийЦентр

          Для этого в модуле документа в обработчике события изменения реквизита ВидРабочегоЦентра табличной части Состав (например, в процедуре ПриИзменении) реализуйте логику:

          Если у вас нет события на изменение реквизита табличной части, можно использовать обработчик ПриИзменении формы или подписаться на событие изменения реквизита.

          ### 3. Проверка незаполненного реквизита РабочийЦентр в табличной части с выводом предупреждения, но без запрета сохранения

          В процедуре ПередЗаписью документа добавьте проверку:

          Так пользователь увидит предупреждение, но сможет сохранить документ.

          ### Итог

          — В подборе табличной части не используйте ВидРабочегоЦентра для фильтрации.
          — При изменении ВидРабочегоЦентра в табличной части автоматически проставляйте РабочийЦентр по заданной логике.
          — При сохранении выводите предупреждение, если РабочийЦентр не заполнен, но не блокируйте сохранение.

          Если нужно, могу помочь с конкретным кодом для вашей конфигурации.

          Рекомендую посмотреть здесь: https://infostart.ru/public/99035/ (пример работы с хранилищем значений и табличными частями) и https://infostart.ru/public/80342/ (пример работы с реквизитами и формами).

          Если потребуется, могу помочь с более детальной реализацией.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С