Имя: Пароль:
1C
1С v8
Выборка из Регистра сведений
0 ЯЧайник
 
31.03.15
10:45
Пишу
ОтборМой = Новый Структура;
        ОтборМой.Вставить("Магазин",ПараметрыСеанса.ТекущийМагазин);
ОтборМой.Вставить("ВидСмены",СменаТекущая);
ОтборМой.Вставить("Дата",Смены[0].Дата);
Выборка = РегистрыСведений.РаботаПоСменам.Выбрать(,,ОтборМой);

Ругается:Недопустимое значение параметра "3"!
Подскажите,что делаю не так?
1 shuhard
 
31.03.15
10:48
(0) нет в Рг даты, есть период
2 Альбатрос
 
31.03.15
10:48
Из СП:
"...Важно! Структура может содержать только один элемент. "
3 patria0muerte
 
31.03.15
10:48
Из СП:
"Важно! Структура может содержать только один элемент. "
4 patria0muerte
 
31.03.15
10:49
(2) Опередил, ковбой..
5 Альбатрос
 
31.03.15
10:49
(4) =)
6 ЯЧайник
 
31.03.15
11:09
(1) У меня это измерение. Но есть и период, регистр периодический
7 ЯЧайник
 
31.03.15
11:12
(2) Спасибо, не посмотрела даже!
8 ЯЧайник
 
31.03.15
11:13
А как мне тогда выбрать записи регистра по значениям всех измерений?
9 D_E_S_131
 
31.03.15
11:13
(6) Делай ЗОПРОСОМ и положи "отбор" обратно на место!
10 ЯЧайник
 
31.03.15
11:18
(9)Отберу я запросом, н-р, две необходимые записи. Результат запроса я должна выгрузить в таблицу? потом заполнить необходимые поля? а как потом обратно эти записи положить?
11 Альбатрос
 
31.03.15
11:29
(10) Юзай наборЗаписей
12 Альбатрос
 
31.03.15
11:30
Только внимательно в СП читай про отбор в НЗ
13 ЯЧайник
 
31.03.15
11:39
А пример можете привести, а то как-то не очень понятно о чем речь?
14 1Сергей
 
31.03.15
11:42
(13) тебе что нужно сделать с отобранными строками?
15 ЯЧайник
 
31.03.15
11:45
При регистрации смены информация о выручке пустая. Мне нужно при закрытии смены в этот регистр добавлять выручку
16 D_E_S_131
 
31.03.15
11:49
(13) "А пример можете привести" - фото есть, придется написать...

Результат = Запрос.выполнить();
Если Результат.Пустой() Тогда
Сообщить("Нет данных для обработки!");
Возврат;
КонецЕсли;

ЗаписьРег = РегистрыСведений.МойРС.СоздатьМенеджерЗаписи();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ЗаписьРег, Выборка);

ЗаписьРег.ИзмерениеДляИзменения = мКакоеТоНовоеЗначение;

ЗаписьРег.Записать();
КонецЦикла;
17 D_E_S_131
 
31.03.15
11:50
Соответственно запрос должен выбирать значения всех измерений записей РС.
18 ЯЧайник
 
31.03.15
11:54
(17) Спасибо)))Попробую
19 ЯЧайник
 
31.03.15
12:18
Написала так:

Если ТаблицаСмена.Количество()=0 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Записи в регистре не найдены!";
Сообщение.Сообщить();
Иначе
НаборСмена=РегистрыСведений.РаботаПоСменам.СоздатьМенеджерЗаписи();
Для Каждого Строчка из ТаблицаСмена Цикл
НаборСмена.Период = Строчка.Период;
НаборСмена.ВидСмены = Строчка.ВидСмены;
НаборСмена.Магазин = Строчка.Магазин;
НаборСмена.Дата = Строчка.Дата;
НаборСмена.Продавец = Строчка.Продавец;
НаборСмена.Прочитать();
                
Если НаборСмена.Выбран() Тогда
                     НаборСмена.КоличествоПродавцов = КоличествоПродавцов;
                     НаборСмена.СуммаВыручки = СуммаПродаж;
                     НаборСмена.Записать();
КонецЕсли;
                
КонецЦикла;
КонецЕсли;

Вроде,работает.
20 D_E_S_131
 
31.03.15
13:29
(19) Т.е. в ТаблицаСмена могут быть какие-то данные, которых нет в РС, а создавать новые записи нельзя?
И

ЗаполнитьЗначенияСвойств(НаборСмена, Строчка);

заменит

НаборСмена.Период = Строчка.Период;
НаборСмена.ВидСмены = Строчка.ВидСмены;
НаборСмена.Магазин = Строчка.Магазин;
НаборСмена.Дата = Строчка.Дата;
НаборСмена.Продавец = Строчка.Продавец;
21 ЯЧайник
 
06.04.15
17:04
(20) Новые записи создавать нельзя. Ну да, так-то смысла в этом особо нет(В условии Набор.Выбран): В таблице не будет записей, которых нет в РС.
Ну да, Одной строчкой так-то удобнее ЗаполнитьЗначенияСвойств, Ну просто я откуда-то скопировала, решила, что можно и не переписывать.