Имя: Пароль:
1C
 
Загрузить данные из Справочника в Список Значений
0 Dasvi
 
20.06.22
12:52
Доброго времени суток!
Есть в Отделы , в справочнике они являются списком с их наименованиями и тд
Мне нужно загрузить все наименования из Справочники.Отделы в Список Значений который я создал
Делается это для того, что бы пользователь мог Выбирать несколько значений из списка и далее формировался отчет с учетом этого фильтра
Проблема у меня толко в том что бы выгрузить весь список
Смог только соделать так , что бы тот отдел который пользователь выбирает на форме в поле выбора Отделов добавлялся в созданый мною список значний и далее все работает как часы
Но требуется именно окно с выбором , а не добавление по 1му отделу
Застрял я на этом в общем
Думал создать спиок значний Всехотделов и с помощью запросов загрузить в него все наименования
А уже потом в список который создан для Выбранных Отделов уже соответсвенно записать выбранные , но это не получилось
1 Ryzeman
 
20.06.22
12:58
Запрос = НовыйЗапрос("ВЫБРАТЬ
|СправочникОтделы.Наименование Как Наименование
|ИЗ
|Справочник.Отделы КАК СправочникОтделы
|СГРУППИРОВАТЬ ПО
|СправочникОтделы.Наименование");

МассивЗначений = Запрос.Выполнить.Выгрузить().ВыгрузитьКолонку("Наименование");


Но скорее всего тебе нужно совсем не это.
2 Dasvi
 
20.06.22
13:21
(1) Да я тоже думаю что так нужно) Сейчас ругается на то что таблицу не нашел , подкорректировать надо чуть , сейчас займусь этим
Мне по сути токо заполнить Список Значений "ВсеОтделы" и из него выбирать с модального окна грубо говоря а потм выбраные в Другой Список Значений "ВыбранныеОтделы"
А дальше все работает)
3 Dasvi
 
20.06.22
13:49
(1) Все Отлично в итоге так сделал:
Процедура ВсеОтделыНаСервере()
    Запрос = Новый Запрос("ВЫБРАТЬ
        |    Я_Отделы.Наименование КАК Наименование
        |ИЗ
        |    Справочник.Я_Отделы КАК Я_Отделы
        |
        |СГРУППИРОВАТЬ ПО
        |    Я_Отделы.Наименование
        |
        |УПОРЯДОЧИТЬ ПО
        |    Наименование
        |ИТОГИ ПО
        |    Наименование");
    ВсеОтделы = ВсеОтделы;
    ВсеОтделы.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Наименование"));
КонецПроцедуры
4 Dasvi
 
20.06.22
13:50
(1) Спасибо за помощь)
5 Гипервизор
 
20.06.22
13:54
(4) Вы уверены, что для последующего фильтра в отчёте вам нужны наименования отделов, а не ссылки?
И для чего вам группировка и итоги?
6 Dasvi
 
20.06.22
14:19
(5) Да , в фильтре подходит наименование тк как сам фильр такой:
Если ЗначениеЗаполнено(Отдел) Тогда
        Текст = Текст + ?(Текст = "", "", " И ") + "
        |            Субконто2.Менеджер.Отдел  В (&СписокОтделов)
        |                ";        
        СписокОтделов = СписокОтделов;        
        Запрос.УстановитьПараметр("СписокОтделов", СписокОтделов);        
КонецЕсли;

Често говоря не совсем понимаю зачем но конструктор запросов сделал именно так, мне все советовали использовать именно его или СКД , вот соответсвенно и использую
На самом деле возникла проблема:
&НаКлиенте
Процедура ДобавитьОтдел(Команда)
    СписокОтделов = СписокОтделов;
    
    ВыбранноеЗначение = ВсеОтделы.ОтметитьЭлементы("Выберите Отдел");
    Для каждого ВыбОтдел Из ВсеОтделы Цикл
        Если ВсеОтделы.Пометка Тогда
            Сообщить(ВыбОтдел);
        КонецЕсли;
    КонецЦикла;
        
КонецПроцедуры
Выдается ошибка "Поле объекта не обнаружено (Пометка)"
Вместо Сообщить естественно будет СписокОтделов.Добавить
7 Гипервизор
 
20.06.22
14:26
(6) Не ВсеОтделы.Пометка, а ВыбОтдел.Пометка.
8 Dasvi
 
20.06.22
14:37
(7) Точно, плыву уже) Спасибо , 3 года бы искал)
9 Dasvi
 
20.06.22
15:19
(5) А как можно получить ссылки? Я сколько серфил везде говорилось что правильно как раз через ТЧ все делать
10 Ryzeman
 
20.06.22
15:21
ВЫБРАТЬ Я_Отделы.Ссылка

Только это делать совсем необязательно. Достаточно создать реквизит обработки, правильно задать ему тип и перетащить на форму.
11 Dasvi
 
20.06.22
15:26
Ошибка отображения типов:
Отсутствует отображение для типа 'ЭлементСпискаЗначений'
{Отчет.Я_НоваяЗадолженность.Форма.ФормаОтчета.Форма(979)}:    ТабДок=ПолучитьНаСервере();

по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'v':
    форма: Элемент
    имя: {http:...../uobjects}v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'value':
    форма: Элемент
    имя: {http:..../core}value
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ЭлементСпискаЗначений'


Ну тут я похоже все
12 Dasvi
 
20.06.22
15:27
А все так хорошо шло, я уж думал даже получится
13 Dasvi
 
20.06.22
15:47
Разобрался в чем ситуация , проблема в том что процедура(выполняемая на клиенте) отвечает за добавление выбранных отделов в Список Значений "Список Отделов"
А потом вызывается в процедуре выполняемой на Сервере и видимо в этом ругань, попробую без клиента реализовать как нибудь-_-