|
Корректировка записей в регистре накопления |
☑ |
0
doublenick
22.02.18
✎
10:23
|
Подскажите, плиз.
Есть заполненный регистр накопления, туда добавлено НовоеПоле (измерение). Как без повторного проведения документов обновить записи регистра, чтобы заполнить это новое поле?
НаборЗаписей = РегистрыНакопления.ВнутренниеЗаказы.СоздатьНаборЗаписей();
А дальше?
|
|
1
Любопытная
22.02.18
✎
10:29
|
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаРегистратор);
НаборЗаписей.Прочитать();
ТЗ = НаборЗаписей.Выгрузить();
ТЗ.ЗаполнитьЗначения(Значение, ИмяПоля);
НаборЗаписей.Загрузить(ТЗ);
НаборЗаписей.Записать();
Примерно так
|
|
2
Mort
22.02.18
✎
10:30
|
Отбор.Регистратор.Установить()/Прочитать()/..../Записать()
|
|
3
Serg_1960
22.02.18
✎
10:35
|
:)
Отбор/Выгрузить/(изменить)/Загрузить/Записать - читать необязательно, а вот Удалить исходное, как мне кажется, - надо.
|
|
4
Serg_1960
22.02.18
✎
10:48
|
Имхо, если автора понимать буквально, то работу срегистром надо начинать с запроса. Типа вот так:
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВашРегистр.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.ВашРегистр КАК ВашРегистр";
Выборка = Запрос.Выполнить().Выбрать();
НаборЗаписей = РегистрыНакопления.ВашРегистр.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
ВсеЗаписи = НаборЗаписей.Выгрузить();
... в цикле или как-то по другому изменить записи ...
НаборЗаписей.Загрузить(ВсеЗаписи);
НаборЗаписей.Записать();
КонецЦикла;
|
|
5
doublenick
22.02.18
✎
11:18
|
В общем, сделал так. Всем спасибо.
ВыборкаДокументов = Документы.ВнутреннийЗаказ.Выбрать();
Пока ВыборкаДокументов.Следующий() Цикл
НаборЗаписей = РегистрыНакопления.ВнутренниеЗаказы.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ВыборкаДокументов.Ссылка);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Запись.клПодразделениеПотребитель = Запись.ВнутреннийЗаказ.ПодразделениеИсполнитель;
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
|
|
6
Mankubus
22.02.18
✎
11:40
|
(5) в (4) лучше код, у вас выбираются даже не проведенные документы
|
|
7
doublenick
22.02.18
✎
11:54
|
(6) Согласен - но у меня они все проведены)
|
|
8
Serg_1960
22.02.18
✎
12:31
|
(7) Методически правильнее алгоритм "от регистратора", а не от документа. Вы не озвучили конфигурацию, поэтому рекомендую убедиться что ВнутреннийЗаказ - это единственный документ-регистратор у этого регистра. Что скорее всего не так, - у меня, например, 14 типов документов являются регистраторами для ВнутренниеЗаказы.
|
|
9
doublenick
22.02.18
✎
15:04
|
(8) Я сначала тоже об этом подумал, но, не вдаваясь в тонкости конфигурации, результат однозначно правильный - что через регистратор, что через измерение ВЗ.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший