Имя: Пароль:
1C
1С v8
Создание набора записей регистра накопления с пересекающимися измерениями
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
Тема закрыта. Всё правильно делал и советы были верны. По одному регистратору создаётся общий набор записей и его нельзя разбить . Неправильно поняли друг друга с коллегой.