🔥 Горящие вакансии
Все статьи

УФ: Использование отбора настройки СКД в 1С

Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti

Реквизит формы с типом КомпоновщикНастроекКомпоновкиДанных

Рассмотрим задачу, когда на форме нужно получить значения отбора (вид сравнения и значения сравнения) для дальнейшего использования.

Рассмотрим на примере. На форму объекта внешней обработки добавляем реквизит НастройкиСКД с типом КомпоновщикНастроекКомпоновкиДанных:

УФ: Использование отбора настройки СКД в 1С

Добавление реквизита с типом КомпоновщикНастроекКомпоновкиДанных

Раскрываем реквизит НастройкиСКД и перетаскиваем на форму в раздел Элементы НастройкиСКД.Настройки.Отбор.

Далее устанавливаем обработчик события формы ПриСозданииНаСервере, текст процедуры (у внешней обработки есть макет МакетСКД с типом Схема компоновки данных, в котором настроен Отбор):

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
                ЭтотОбъект = РеквизитФормыВЗначение("Объект");  
               СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет("МакетСКД");
               НастройкиСКД.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
               
                СхемаКомпоновкиДанныхВХ = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных); 
               НастройкиСКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанныхВХ));
КонецПроцедуры

Таким образом, в пользовательском режиме на форме появится таблица для определения отборов, настроенных в макете МакетСКД с типом Схема компоновки данных со всеми доступными значениями видов сравнения (В списке, В группе, Равно и т.д.).

Затем можно обработать указанные пользователем значения видов сравнения и значений сравнения, пример кода:

Для Каждого ЭлементОтбора Из НастройкиСКД.Настройки.Отбор.Элементы Цикл
                               Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура") Тогда
                                               ОтборПоНоменклатуре = ПреобразоватьСравнение(ЭлементОтбора.ВидСравнения);
                                               ЗначенияОтбораПоНоменклатуре = ЭлементОтбора.ПравоеЗначение;
                                               ИспользованиеОтбораПоНоменклатуре = ЭлементОтбора.Использование;
КонецЕсли;
КонецЦикла;
Функция ПреобразоватьСравнение(ВидСравненияСКД)
                ВидСравненияСКДПреобр = "";
               
                Если ВидСравненияСКД = ВидСравненияКомпоновкиДанных.Равно
                               ИЛИ ВидСравненияСКД = ВидСравненияКомпоновкиДанных.ВСписке
                               ИЛИ ВидСравненияСКД = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии
                               ИЛИ ВидСравненияСКД = ВидСравненияКомпоновкиДанных.ВИерархии Тогда
                               ВидСравненияСКДПреобр = " В ИЕРАРХИИ ";
                ИначеЕсли ВидСравненияСКД = ВидСравненияКомпоновкиДанных.НеРавно
                               ИЛИ ВидСравненияСКД = ВидСравненияКомпоновкиДанных.НеВСписке
                               ИЛИ ВидСравненияСКД = ВидСравненияКомпоновкиДанных.НеВСпискеПоИерархии
                               ИЛИ ВидСравненияСКД = ВидСравненияКомпоновкиДанных.НеВИерархии Тогда
                               ВидСравненияСКДПреобр = " НЕ В ИЕРАРХИИ ";
                ИначеЕсли ВидСравненияСКД = ВидСравненияКомпоновкиДанных.Заполнено
                               ИЛИ ВидСравненияСКД = ВидСравненияКомпоновкиДанных.НеЗаполнено Тогда
                               //
                КонецЕсли;      
               
                Возврат ВидСравненияСКДПреобр;
КонецФункции

Оставить коментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Отправить резюме

    Я согласен на обработку персональных данных в соответствии
    со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

    Отправить резюме

      Я согласен на обработку персональных данных в соответствии
      со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

      Pекомендовать друга

        Выбрать вакансию
        • Программист 1С
        • Консультант-аналитик 1С
        • Разработчик Android
        • Разработчик iOS
        • Разработчик React JS (middle)
        • Разработчик React Native (middle)
        • UX/UI дизайнер
        • Аналитик
        • QA engineer (тестировщик)
        • Разработчик PHP (senior)
        • Разработчик React JS
        • Разработчик Flutter
        • Разработчик React Native
        • Проекты для команды специалистов 1С
        • Проекты для специалистов 1С
        • Стажер-программист 1С
        • Ведущий консультант Microsoft Dynamics 365 Sales
        • Руководитель проектов Microsoft Dynamics 365 FO и AX 2012
        • Консультант Microsoft Dynamics AX на зарубежные проекты
        • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
        • Разработчик PHP (фреймворк Yii2 или Laravel)
        • Разработчик Bitrix
        • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
        • Разработчик PHP
        Я согласен на обработку персональных данных в соответствии
        со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

        Pекомендовать друга

          Выбрать вакансию
          • Программист 1С
          • Консультант-аналитик 1С
          • Разработчик Android
          • Разработчик iOS
          • Разработчик React JS (middle)
          • Разработчик React Native (middle)
          • UX/UI дизайнер
          • Аналитик
          • QA engineer (тестировщик)
          • Разработчик PHP (senior)
          • Разработчик React JS
          • Разработчик Flutter
          • Разработчик React Native
          • Проекты для команды специалистов 1С
          • Проекты для специалистов 1С
          • Стажер-программист 1С
          • Ведущий консультант Microsoft Dynamics 365 Sales
          • Руководитель проектов Microsoft Dynamics 365 FO и AX 2012
          • Консультант Microsoft Dynamics AX на зарубежные проекты
          • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
          • Разработчик PHP (фреймворк Yii2 или Laravel)
          • Разработчик Bitrix
          • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
          • Разработчик PHP
          Я согласен на обработку персональных данных в соответствии
          со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

          Спасибо!

          Мы получили ваше резюме. Менеджер свяжется с вами в течение трех дней

          Горящие вакансии