|
Корректировка записей в регистре накопления | ☑ | ||
---|---|---|---|---|
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) Я сначала тоже об этом подумал, но, не вдаваясь в тонкости конфигурации, результат однозначно правильный - что через регистратор, что через измерение ВЗ.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |