|
Создание набора записей регистра накопления с пересекающимися измерениями | ☑ | ||
---|---|---|---|---|
0
Bon Jovi
25.03.21
✎
14:27
|
Добрый день. УТ 10, 8.3, обычные формы. Подскажите пожалуйста, в обработчике события "ОбработкаПроведения" документа хочу добавить возможность добавить создание дополнительной записи в регистр накопления. То есть в определённый регистр запись уже формируется, но при определённом условие в этот же регистр с формированием первой записи хочу добавить формирование ещё одной записи. В этом регистре накопления (к примеру) 7 измерений и 2 ресурса. При формировании первой записи используются все поля, а при формировании ДОПОЛНИТЕЛЬНОЙ записи используются 4 измерения и 1 ресурс. Получается не используются 3 измерения и 1 ресурс, и одно из одинаковых измерений имеет разные данные. По факту это же разные записи/движения в регистре, но никак не создаётся дополнительная запись. Добавляю так:
НаборДвижений = РегистрыНакопления.НазваниеРегистраНакопления.СоздатьНаборЗаписей(); НаборДвижений.Отбор.Регистратор.Установить(Ссылка); НаборДвижений.Период = Дата; НаборДвижений.ТаблицаСоВсемиПолямиРегистра = ТаблицаСоВсемиЗначениямиДляВсехПолейРегистра; НаборДвижений.Записать(); |
|||
1
Почему 1С
25.03.21
✎
14:33
|
НаборДвижений = Движения.НазваниеРегистраНакопления;
|
|||
2
Bon Jovi
25.03.21
✎
14:36
|
(1) предыдущая запись (основная) так и формируется. Получалось так. Я переопределял значение НаборДвижений.ТаблицаСоВсемиПолямиРегистра (старое) на ТаблицаСоВсемиЗначениямиДляВсехПолейРегистра (новое) , и результат не менялся, формировалась только основная запись.
|
|||
3
Почему 1С
25.03.21
✎
14:44
|
(2) Подозреваю
Что после записи набора из (0) Происходит запись (стандартная запись движений) старого набора, который возвращает все как было без твоих добавлений |
|||
4
Bon Jovi
25.03.21
✎
14:47
|
(3) я тоже так думаю, но как обойти этот момент, чтобы в одном месте (где создаются движения по всем регистрам), добавить мой функционал и он работал... Он отрабатывает, если включить его в запись к основному функционал, но это не совсем верно, так как проходит всё в одной транзакции и номера строки первого движения и второго соединяются в единый список (от 1 до ...)
|
|||
5
Bon Jovi
25.03.21
✎
14:49
|
(3) хотя опять же, я по факту, опережаю конечную запись основного функционала и создаю свою запись со своими уникальными полями (разными измерениями) и по идеи ничего удалять основной функционал не должен, даже если учесть то, что при записи основного функционал стоит режим записи Записать(Истина) - что по идеи удаляет предыдущие значения .
|
|||
6
Почему 1С
25.03.21
✎
15:00
|
короче или добавляй в регистр через Движения
или уже после транзакции (проведения) НаборДвижений = РегистрыНакопления.НазваниеРегистраНакопления.СоздатьНаборЗаписей(); НаборДвижений.Отбор.Регистратор.Установить(Ссылка); НаборДвижений.Прочитать() добавить свою новую запись НаборДвижений.Записать(); |
|||
7
Bon Jovi
25.03.21
✎
17:04
|
(6) при любом раскладе он добавляет записи уже к существующим, и нумерация строк этих движений по 1у документу становится общей.
|
|||
8
Bon Jovi
25.03.21
✎
17:25
|
Тема закрыта. Всё правильно делал и советы были верны. По одному регистратору создаётся общий набор записей и его нельзя разбить . Неправильно поняли друг друга с коллегой.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |