Имя: Пароль:
1C
1С v8
v8: РегНакопления.Прочитать()
,
0 bolobol
 
22.05.14
13:15
Бодрых суток!

НаборЗаписей = РегистрыНакопления.ИмяРегистра.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();

- пусто! Почему?

НаборЗаписей.Записать(); - стирает весь регистр, как я слышал, почему Прочитать() не читает весь регистр?

Или это только с регситром сведений работает? Или не работает?
1 skunk
 
22.05.14
13:16
отбор
2 galimova_alsou
 
22.05.14
13:16
Отбор нужно установить.
3 galimova_alsou
 
22.05.14
13:17
НаборЗаписей = РегистрыНакопления.ИмяРегистра.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Измерение1 = Такое_То_Значение;
НаборЗаписей.Отбор.Измерение2 = Сякое_То_Значение;

НаборЗаписей.Прочитать();
4 Fragster
 
гуру
22.05.14
13:18
(0) потому что отбор по регистратору не установлен
5 Fragster
 
гуру
22.05.14
13:18
(4)+ собственно, записать тоже не даст
6 bolobol
 
22.05.14
13:21
Весь регистр получить можно только не подчинённый регистратору?
7 Ranger_83
 
22.05.14
13:23
(6) запросом умеешь пользоваться?
8 galimova_alsou
 
22.05.14
13:28
Что вы хотите делать с полученным регистром?
9 galimova_alsou
 
22.05.14
13:29
(6) Что вы хотите делать с полученным регистром?
10 Ненавижу 1С
 
гуру
22.05.14
13:30
>>НаборЗаписей.Записать(); - стирает весь регистр, как я слышал

плохо слышал

вообще я не понимаю, почему создание наборов записей регистров подчиненных регистраторам было не сделать так?

РегистрыНакопления.ИмяРегистра.СоздатьНаборЗаписей(СсылкаНаРегистратор);

и все вопросы бы отпадали сразу
11 Ненавижу 1С
 
гуру
22.05.14
13:31
в (10) вопрос к фирме 1С
12 Serginio1
 
22.05.14
13:37
(10) Потому, что не хотят искать простых решений
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаРегистратор);
13 bolobol
 
22.05.14
13:39
(10) Это бы сняло вопрос в (0) в зародыше), да.

Но суть задачи сводилась именно к (0)

(7), (8), (9) вопрос в (0) и (6) - не выходит за рамки работает/не работает. Может я где-то неправильно делаю.
Нужно было для теста, и пришлось писать запрос.
14 bolobol
 
22.05.14
13:40
А вопрос, не смотря на писаный запрос, остался)
15 Fragster
 
гуру
22.05.14
13:49
(14) какой вопрос? тебе прям так сказать - в подчиненных регистрах отбор по регистратору - обязательный (ответы на все вопросы из этого следуют)?
16 galimova_alsou
 
22.05.14
13:54
(14) на самом деле в том, что это не работает без установки отбора, есть некая логика.
Ведь мы создаем набор записей. Но мы же должны определить по какому принципу будет создаваться этот набор. Установка отбора как раз-таки и есть определение этих принципов.
А метод Прочитать() набора записей априори не используется для выбора всех записей регистра:

Описание:
Считывает записи из базы данных по установленному отбору.

По этой же причине не логично создание наборов записей регистров, подчиненных регистраторам, делать так как предложено (10)
17 galimova_alsou
 
22.05.14
13:55
Даже в СП есть пример с отбором по регистратору:
Остатки  = РегистрыНакопления.УчетНоменклатуры;
НаборЗаписей = Остатки.СоздатьНаборЗаписей();
Док = НаборЗаписей.Отбор.Регистратор;
Док.Установить(ВыбДок);
НаборЗаписей.Прочитать();
18 bolobol
 
22.05.14
14:24
Хм, да, понятно. Ну, нет - так нет. Заодно, конечно, и данные не снесёт никто разом, без отбора)

Спасибо!
19 Defender aka LINN
 
22.05.14
14:37
(10) С появлением модуля менеджера ты вполне можешь сам сделать такую функцию.
20 Ненавижу 1С
 
гуру
22.05.14
16:04
(19) могу конечно, но для каждого регистра что-ли писать ее?
21 Defender aka LINN
 
22.05.14
16:16
(20) Ну, она ж тебе нужна, ты и пиши. Мне не нужна, я не пишу.
22 Ненавижу 1С
 
гуру
22.05.14
16:40
(21)

//СоздатьНаборЗаписей
//Создает набор записей данного регистра и данного регистратора
//Параметры:
//Менеджер - менеджер регистра
//Регистратор - ссылка на регистратор
Функция СоздатьНаборЗаписей(Менеджер, Регистратор) Экспорт
    НЗ = Менеджер.СоздатьнаборЗаписей();
    НЗ.Отбор.Регистратор.Установить(Регистратор);
    Возврат НЗ;
КонецФункции

МойНабор = СоздатьНаборЗаписей(РегистрыНакопления.ТоварыНаСкладах, Ссылка);
23 Defender aka LINN
 
22.05.14
17:04
(22) Название функции не отражает суть :)