Получить список сегментов партнера формированных в ручную в 1С Предприятие 8.3
Получить список сегментов партнера
filter = new structure;
filter.insert("Партнер", СсылкаНаПартнера);
res = РегистрыСведений.ПартнерыСегмента.Выбрать(filter);
while res.next() do
recordManager = res.ПолучитьМенеджерЗаписи();
recordManager.Прочитать();
message("" + recordManager.Сегмент);
enddo;
еще способ
function GetSegmentForPartner(Partner)
result = new array;
query = new query;
query.text = "
|select
| tbl.Сегмент as Сегмент
|FROM
| РегистрСведений.ПартнерыСегмента as tbl
|WHERE
| tbl.Партнер = &Партнер";
query.УстановитьПараметр("Партнер", Partner);
res = query.Выполнить().Выбрать();
while res.next() do
result.Добавить(res.Сегмент);
enddo;
return result;
endfunction
Получить все сегменты со значением Результат.ВходитВСегмент = true/false по которым можно определить входит в сегмент или нет
функция СписокСегментовПартнера(ПартнерСсылка) экспорт
СегментыПартнера = новый Массив;
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| СегментыПартнеров.Ссылка КАК Сегмент,
| ВЫБОР
| КОГДА ПартнерыСегмента.Партнер ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ВходитВСегмент,
| СегментыПартнеров.Ответственный
|ИЗ
| Справочник.СегментыПартнеров КАК СегментыПартнеров
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПартнерыСегмента КАК ПартнерыСегмента
| ПО (ПартнерыСегмента.Сегмент = СегментыПартнеров.Ссылка)
| И (ПартнерыСегмента.Партнер = &Партнер)
|ГДЕ
| (НЕ СегментыПартнеров.ПометкаУдаления)
| И (НЕ СегментыПартнеров.ЭтоГруппа)
| И СегментыПартнеров.СпособФормирования = ЗНАЧЕНИЕ(Перечисление.СпособыФормированияСегментов.ФормироватьВручную)";
Запрос.УстановитьПараметр("Партнер", ПартнерСсылка);
Результат = Запрос.Выполнить().Выбрать();
пока Результат.Следующий() цикл
СегментыПартнера.Добавить(Результат);
КонецЦикла;
возврат СегментыПартнера;
конецфункции