Как создать сегмент клиентов программно и заполнить схему компоновки данных
Здравствуйте! Подскажите, пожалуйста, создаю элемент справочника "Сегменты партнеров" в УТ 11 программно. Как созданному элементу присвоить схему компоновки данных с определенным отбором?
Элемент = Справочники.СегментыПартнеров.СоздатьЭлемент();
Элемент.ДатаСоздания = ТекущаяДата();
Элемент.Наименование = "Группа контрагентов";
Элемент.СпособФормирования = Перечисления.СпособыФормированияСегментов.ФормироватьДинамически;
Элемент.ИмяШаблонаСКД = "ОсновнаяСхема";
Элемент.Записать();
Далее я по логике понимаю, что нужно заполнить Схему компоновки данных и потом поместить ее в реквизиты справочника : СхемаКомпоновкиДанных и ХранилищеНастроекКомпоновкиДанных с типом данных: ХранилищеЗначения, как это сделать? Отбор должен быть такой:
Группа = Справочники.СегментыПартнеров.НайтиПоНаименованию("Группа контрагентов");
Поле = Новый ПолеКомпоновкиДанных("Партнер.[Группа (Общие)]");
Строка = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Строка.Использование = Истина;
Строка.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Строка.ЛевоеЗначение = Поле;
Строка.ПравоеЗначение = Группа;
ПоказатьПо теме из базы знаний
- Установка цен в 1С:Управление торговлей 11. Произвольный запрос к данным ИБ
- Заполнение Сегмента клиентов (партнеров) из файла Эксель, программно через отбор СКД. УТ 11, КА 2.0, ЕРП 2.0
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- Расчет премий по формулам
- Варианты применения СКД вне отчетов в отраслевых конфигурациях
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Я сделал так на клиенте...
Для Каждого Строка Из Объект.ТаблСкидок Цикл
ФормаЗаписи = ПолучитьФорму("Справочник.СкидкиНаценки.Форма.ФормаЭлемента");
СтруктураСвойств = Новый Структура; // Структура содержит значения тех реквизитов, которые нужно заполнить на форме нового документа, но которых нет в документе-источнике
СтруктураСвойств.Вставить("Наименование",""+Строка.Поставщик + " - " +Строка.Соглашение+ ", " +Строка.Скидка+ "%, " +Строка.Группа+ "/" +Строка.Код1+ "/" +Строка.Код2+ "/" +Строка.Код3);
СтруктураСвойств.Вставить("ЗначениеСкидкиНаценки", Строка.Скидка);
СтруктураСвойств.Вставить("ВариантОтбораНоменклатуры", ПредопределенноеЗначение("Перечисление.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.ОтборКомпоновкиДанных"));
ФормаЗаписи.Элементы.ОтборПредставление.Видимость = (ФормаЗаписи.Объект.ВариантОтбораНоменклатуры = ПредопределенноеЗначение("Перечисление.ВариантыОтбораНоменклатурыДляРасчетаСкидокНаценок.ОтборКомпоновкиДанных"));
ЭлементОтбора = ФормаЗаписи.КомпоновщикНастроекОтборПоНоменклатуре.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = "цколыотаьб";
СтруктураСвойств.Вставить("КомпоновщикНастроекОтборПоНоменклатуре", ЭлементОтбора);
ЗаполнитьЗначенияСвойств(ФормаЗаписи.Объект,СтруктураСвойств,"Наименование,ЗначениеСкидкиНаценки,ВариантОтбораНоменклатуры",);
ФормаЗаписи.Открыть();
КонецЦикла;
Показать
(2) вот вызов процедуры, которая открывает СКД:
ЗаголовокФормыНастройкиСхемыКомпоновкиДанных = НСтр("ru = 'Настройки сегмента ""%ИмяСегмента%""'");
ЗаголовокФормыНастройкиСхемыКомпоновкиДанных = СтрЗаменить(ЗаголовокФормыНастройкиСхемыКомпоновкиДанных, "%ИмяСегмента%", Объект.Наименование);
Адреса = СегментыВызовСервера.ПолучитьАдресаСхемыКомпоновкиДанныхВоВременномХранилище(
Объект.Ссылка,
Объект.ИмяШаблонаСКД,
АдресСКД,
АдресНастроекСКД,
УникальныйИдентификатор);
Результат = Неопределено;
ПараметрыОткрытияФормы = Новый Структура;
ПараметрыОткрытияФормы.Вставить("АдресСхемыКомпоновкиДанных", Адреса.СхемаКомпоновкиДанных);
ПараметрыОткрытияФормы.Вставить("АдресНастроекКомпоновкиДанных", Адреса.НастройкиКомпоновкиДанных);
ПараметрыОткрытияФормы.Вставить("ИсточникШаблонов", Объект.Ссылка);
ПараметрыОткрытияФормы.Вставить("Заголовок", ЗаголовокФормыНастройкиСхемыКомпоновкиДанных);
ПараметрыОткрытияФормы.Вставить("НеПомещатьНастройкиВСхемуКомпоновкиДанных", Истина);
ПараметрыОткрытияФормы.Вставить("НеНастраиватьУсловноеОформление", Истина);
ПараметрыОткрытияФормы.Вставить("НеНастраиватьПорядок", Истина);
ПараметрыОткрытияФормы.Вставить("НеНастраиватьВыбор", Истина);
ПараметрыОткрытияФормы.Вставить("УникальныйИдентификатор", УникальныйИдентификатор);
ПараметрыОткрытияФормы.Вставить("ИмяШаблонаСКД", Объект.ИмяШаблонаСКД);
ПараметрыОткрытияФормы.Вставить("ВозвращатьИмяТекущегоШаблонаСКД", Истина);
ОткрытьФорму("ОбщаяФорма.УпрощеннаяНастройкаСхемыКомпоновкиДанных",
ПараметрыОткрытияФормы,,,,,
Новый ОписаниеОповещения("НастройкиЗавершение", ЭтотОбъект, Новый Структура("Адреса", Адреса)),
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот