Добавление движений по своему регистру "при записи" типового регистра #675201


#0 by Timqsh
Платформа 8.2. Конфигурация 1С:Бухгалтерия редакция 2.0. Имеется задача при проведении типовых документов создавать набор движений по своему добавленному регистру бухгалтерии "управленческий". При этом движения по нашему "Управленческому" и типовому "Хозрасчетному" могут немного отличаться, но в рамках данной темы будем считать, что они одинаковы. Есть 2 пожелания к решению: 1) Минимальные изменения в конфигурации 2) Максимальная масштабируемость по количеству возможных регистраторов (документов) Первая пришедшая в голову мысль - добавлять записи по новому регистру подпиской на событие "При записи" набора записей "Хозрасчетного". Код выглядит так: Код рабочий, во внешней обработке например движения добавляет. Проблема: После окончания проведения документа и после записи проводок по хозрасчетному (где моя подписка добавляет нужные мне записи) идет запись пустого набора движений документа по регистру "Управленческий". Проверял отладчиком по событию "При записи" моего регистра "Управленческий". Поскольку все происходит в одной транзакции, это перебивает все мои усилия. В редакции 2.0 Бухгалтерии большинство документов имеют свойство "Запись движений" = "Записывать модифицированные". В конце  типовой процедуры проведения документа по непонятной для меня причине Движения.Управленческий.Модифицированность = Истина (регистр новый, весь код проведения типовой!!!) Перечислять все возможные способы обойти эту проблему, которые я пробовал не буду, т.к. это надолго и ни один не дал удовлетворительного результата. Если можете подсказать решение буду рад. Ну или если местные гуру скажут, что решения оптимальнее подписки на проведение всех документов, с которыми необходимо работать в данном случае не существует, то хоть совесть успокою =)
#1 by Timqsh
Извиняюсь, скопипастил код из тестовой обработки а не из обработчика. Первые 3 строки после начала процедуры нужно удалить.
#2 by MrStomak
можно попробовать так: создать дополнительное свойство: Перед записью своего регистра проверять наличие дополнительного свойства, и если его нет, то ставить режим замещения = Ложь, т.е. запись документа будет дополнять пустым набором записанный тобой набор.
#3 by Timqsh
Такой код мне пока не помогает. Или я не правильно ставлю режим замещения?
#4 by Maxus43
у докмента режим какой? "Удалять автоматически" движения?
#5 by Timqsh
О, появилась возможность писать в теме =) Модераторы, вторую тему можно удалить. "Не удалять автоматически" стоит
#6 by Ахиллес
Я так понимаю моего вопроса ты не видел, поэтому: Что такое Источник?
#8 by hhhh
НаборЗаписей = Источник.Движения.Управленческий;
#9 by Ахиллес
Хрен, там. Источник в этих подписках это ДокументОбъект скорее всего, а ты его переопределяешь на набор записей. Кароче, Склифасовский, придумай другое название для переменной набора записей.
#10 by Euguln
1. Подписывайся на проведение документа. 2. Если это типовая, то нужно лезть в процедуру удаления движений, она присваивает признак модифицированности.
#11 by hhhh
почитай
#12 by Timqsh
Да пока на пункте 1. и остановился, только тогда столько подписок сколько документов используется. Хотелось бы меньшего количество добавляемых метаданных. Пункт 2. это получается изменения кучи типовых документов, мне не подойдет.
#13 by Timqsh
Источник в подписке на изменения набора записей хозрасчетного - набор записей хозрасчетного.
#14 by Euguln
Обна подписка на тип данных ДокументСсылка. Процедура удаления в общем модуле ОбщегоНазначения.
#15 by Euguln
Одна подписка на тип ДокументОбъект ))
#16 by Ахиллес
Не надо много подписок, достаточно на документОбъект, а внутри своего модуля проверяй тип документа. А набор всё равно читать придётся, первые три строки почти правильные у тя в
#17 by Timqsh
Сейчас доберусь до компа попробую оба варианта. Даже не думал что можно подписаться на проведение любого документа. Если смогу там получить его набор движений по Хозрасчетному и сформировать движения по моему регистру то будет то что надо.
#18 by Timqsh
Сделал что хотел подпиской на ДокументОбъект. Спасибо Euguln и Ахиллес. Единственная мелочь - документ "бух операция" автоматически не дублирует, а если б взлетел мой способ из начала темы то дублировал бы) Но это не существенно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С