Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Создание набора записей регистра накопления с пересекающимися измерениями

Создание набора записей регистра накопления с пересекающимися измерениями
Я
   Bon Jovi
 
25.03.21 - 14:27
Добрый день. УТ 10, 8.3, обычные формы. Подскажите пожалуйста, в обработчике события "ОбработкаПроведения" документа хочу добавить возможность добавить создание дополнительной записи в регистр накопления. То есть в определённый регистр запись уже формируется, но при определённом условие в этот же регистр с формированием первой записи хочу добавить формирование ещё одной записи. В этом регистре накопления (к примеру) 7 измерений и 2 ресурса. При формировании первой записи используются все поля, а при формировании ДОПОЛНИТЕЛЬНОЙ записи используются 4 измерения и 1 ресурс. Получается не используются 3 измерения и 1 ресурс, и одно из одинаковых измерений имеет разные данные. По факту это же разные записи/движения в регистре, но никак не создаётся дополнительная запись. Добавляю так:

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.