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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33621
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

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

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

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

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

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

      Пример:

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

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

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

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

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

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

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

      ### Итог

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

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

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

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

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