helpf.pro
Регистрация

v8: Как выбрать значения непериодического регистра сведений

kaso
26.03.2013 18:28Прочитано: 8336
Код 1C v 8.х
 		Отбор_КИ = Новый Структура;
Отбор_КИ.Вставить("Объект", Контр.Ссылка);
Отбор_КИ.Вставить("Вид", Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
Рез = РегистрыСведений.КонтактнаяИнформация.Выбрать(Отбор_КИ);

Ошибка при вызове метода контекста (Выбрать)
Рез = РегистрыСведений.КонтактнаяИнформация.Выбрать(Отбор_КИ);
по причине:
Недопустимое значение параметра (параметр номер '1')
Не могу понять в чем ошибка?
1С:Предприятие 8.2 (8.2.16.363)
Yandex
Возможно, вас также заинтересует
Реклама на портале
DJ_Serega
26.03.2013 20:45Ответ № 1
(0) kaso, метод "Добавить()" а не "Вставить()".
kaso
27.03.2013 12:03Ответ № 2
(1) DJ_Serega, А что для структуры есть метод "Добавить()"?
sashuly
27.03.2013 12:29Ответ № 3
Чем не устраивает такой метод https://help1c.com/faq82/view/558.html ?
Изменено 27.03.13 12:30:11
kaso
27.03.2013 12:33Ответ № 4
(3) sashuly, Да я уже переписал просто интересно в чем ошибка я пока еще учусь писать на 8
DJ_Serega
27.03.2013 13:22Ответ № 5
(2) kaso, Согласен. Ошибочка. Извините.
Тогда вот цитата из СП (Синтакс-помощник):

Код
Параметры:
<Отбор> (необязательный)

Тип: Структура.
Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться измерения или реквизиты, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или установлен признак "Ведущее".

Возможно, у ваших полях отбора не стоит соответствующий признак. Если устанавливать его не нужно (или нельзя), то лучше использовать запрос для выборки.
Код 1C v 8.х
 ЗапросВыборкаИзРегистра = Новый Запрос(
"ВЫБРАТЬ
| ГрафикиРаботы.Дата,
| ГрафикиРаботы.Значение
|ИЗ
| РегистрСведений.ГрафикиРаботы КАК ГрафикиРаботы
|ГДЕ
| ГрафикиРаботы.Дата = &Дата
| И ГрафикиРаботы.Значение > &Значение"
);
ЗапросВыборкаИзРегистра.УстановитьПараметр("Дата", Дата);
ЗапросВыборкаИзРегистра.УстановитьПараметр("Значение", Значение);

РезультатВыборкаИзРегистраВыполнить = ЗапросВыборкаИзРегистра.Выполнить();
РезультатВыборкаИзРегистра = РезультатВыборкаИзРегистраВыполнить.Выбрать();
РезультатВыборкаИзРегистра = РезультатВыборкаИзРегистраВыполнить.Выгрузить();

Изменено 27.03.13 13:23:08
kaso
27.03.2013 13:40Ответ № 6
(5) DJ_Serega, Дело в том что "Объект" и "Вид" - это измерения регистра сведений "КонтактнаяИнформация" в которых стоит признак "ведущее". И наскок я понял ошибка в том что я первым параметром передаю структуру. Переписал еще вчера
Код 1C v 8.х
 		Рег_КонтИнф = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
Рег_КонтИнф.Отбор.Объект.Установить(Контр.Ссылка);
Рег_КонтИнф.Прочитать();

Просто интересно почему не работает "Выбрать()" с отбором, без отбора все работает
DJ_Serega
27.03.2013 14:11Ответ № 7
(6) kaso,
Код
Важно! Структура может содержать только один элемент.


upd: поэтому либо устанавливать отборы и "Прочитать()", либо запросом.
Изменено 27.03.13 14:12:05
kaso
27.03.2013 17:06Ответ № 8
(7) DJ_Serega, спасибо
kaso
27.03.2013 17:07Ответ № 9
Вопрос закрыт!
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.