powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Удаление выборочных записей регистра накопления
7 сообщений из 7, страница 1 из 1
Удаление выборочных записей регистра накопления
    #38020650
Rudge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется типовая конфа. В ней в документе в ОбработкеПроведения() формируются и записываются движения по регистру накопления РН_1. Мне необходимо выборочные движения удалить (у которых некоторое измерение = "справочник1.имя_предопр_знач").
Создал подписку на событие обработки проведения данного документа.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
НаборЗаписей = РегистрыНакопления.РН_1.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Источник);
НаборЗаписей.Прочитать();

// здесь установлю отбор по измерению
//...
//

НаборЗаписей.Очистить();
НаборЗаписей.Записать();



При отладке вылазит: Ошибка при вызове метода контекста Записать() по причине: не установлен отбор по регистратору??? Я же указал отбор по регистратору (Источник).
...
Рейтинг: 0 / 0
Удаление выборочных записей регистра накопления
    #38020676
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rudge,
Я же указал отбор по регистратору (Источник).
Источник - это ДокументОбъект, а нужно ДокументСсылка. И все равно так оно работать не будет, но это уже другая тема.
...
Рейтинг: 0 / 0
Удаление выборочных записей регистра накопления
    #38020692
Rudge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему не будет работать?
...
Рейтинг: 0 / 0
Удаление выборочных записей регистра накопления
    #38020712
Rudge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понимаю я не могу для набора записей регистра накопления установить отбор по измерению, только по регистратору.
Т.е. мне предварительно нужно создать запрос, в нем установить отбор и его результат выгрузить в набор записей?
...
Рейтинг: 0 / 0
Удаление выборочных записей регистра накопления
    #38020919
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rudge,
Надо знать версию платформы (8.1 или 8.2), режим записи движений и режим удаления движений. Потому что возможны варианты. В зависимости от настроек выбирайте, чем возможно и удобно воспользоваться - запросом или обращением к коллекции движений документа через источник.
...
Рейтинг: 0 / 0
Удаление выборочных записей регистра накопления
    #38021004
Rudge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Платформа 8.2. Удаление движений - Удалять автоматически. Режим записи движений в обработке проведения - Записывать = Истина. Вообще мне нужно по двум регистрам это выполнить, реализую через подписку на событие.

Сделал через Запрос:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
// Набор записей в 1-й регистр

Запрос = Новый Запрос;
Запрос.Текст = ...	

Запрос.УстановитьПараметр("Параметр1", ...);
Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);

Результат = Запрос.Выполнить().Выгрузить();
	 	
НаборЗаписей = РегистрыНакопления.РН_1.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Источник.Ссылка);
НаборЗаписей.Загрузить(Результат);
НаборЗаписей.Записать();
	
// Набор записей во 2-й регистр
	
Запрос = Новый Запрос;
Запрос.Текст = 
	
Запрос.УстановитьПараметр("Параметр1", ...);
Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);

Результат = Запрос.Выполнить().Выгрузить();
	 	
НаборЗаписей = РегистрыНакопления.РН_2.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Источник.Ссылка);
НаборЗаписей.Загрузить(Результат);
НаборЗаписей.Записать();



Работает. Можно ли как то оптимизировать данный код?
...
Рейтинг: 0 / 0
Удаление выборочных записей регистра накопления
    #38021276
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rudge, Режим записи движений в обработке проведения - Записывать = Истина
Если так, то режим записи скорее всего - Записывать выбранные. В таком случае я не понимаю как оно у вас работает. Работать не должно, потому что после того как вы запишете НаборЗаписей в подписке, при выходе из нее платформа запишет движения (Записывать = Истина). То есть перекроет ваши записи исходными движениями документа. Если только не выбран режим записывать модифицированные, но тогда (Записывать = истина) вообще бессмысленное выражение. Не знаю как будет быстрее, но обращение к базе это накладное действие, я бы просто перебирал движения документа - потому что они уже есть и получать их не надо, и поудалял ненужные. И не записывал бы их принудительно, платформа сделает это сама.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Удаление выборочных записей регистра накопления
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]