![]() |
![]() |
![]() |
|
подписка на события. Как изменить движения. | ☑ | ||
---|---|---|---|---|
0
Lama12
26.11.09
✎
17:58
|
Ситуация.
В документе делаются движения по регистрам, но не через свойства документа "Движения", а через набор записей регистра. Как этидвижения изменить при перехвате в подписке на событие? Объект идет без движений. |
|||
1
Живой Ископаемый
26.11.09
✎
17:59
|
а почему не рассказываешь о каком событии идет речь?
|
|||
2
Irbis
26.11.09
✎
17:59
|
набор записей соответствующего реистра, при записи. И событий не надо даже.
|
|||
3
Живой Ископаемый
26.11.09
✎
18:00
|
Перехватить в подписке на событие ПриЗаписиНабораЗаписейРегистра - создать набор записей с отбором по этому регистратору
|
|||
4
Lama12
26.11.09
✎
18:01
|
(3)Хм... спасибо за идею... Попробую.
|
|||
5
Живой Ископаемый
26.11.09
✎
18:09
|
2(4) и можно как в (2), не принципиально... Почему нужно создавать набор записей и читать с отбором по регистратору - потому что раз у тебя такой хитрый документ, то он вообще может записывать не сразу все проводки и чатями - создал несколько - записал, создал еще несколько - опять записал.. Если бы он гарантировано записывал только в одном месте, то можно было бы и не создавать набор записей, а просто юзать Источник...
я уже просто обжегся на этом |
|||
6
Lama12
26.11.09
✎
18:12
|
Вообще докумет "Распределение НДС косвенных расходов" в УПП.
Там такое написано... черт ногу сломит. В стандартный функционал не хочется лезть. |
|||
7
ivanoa
30.11.09
✎
11:17
|
(6)Подскажите, получилось ли что-нибудь по этому вопросу. У меня такая же ситуация. Создала набор записей, изменяю в нем данные в обработке проведения, но после проведения в регистре старые данные. Движения по этому регистру в обработке проведения пустые.
|
|||
8
Живой Ископаемый
30.11.09
✎
11:40
|
2(7) изменяешь, а записываешь?
|
|||
9
ivanoa
30.11.09
✎
11:56
|
Да, не записывала. В обработке проведения получилось. Хочу перенести в подписку на событие, там Записать() не пишу, но регистры отсаются не измененные. Как быть?
|
|||
10
Живой Ископаемый
30.11.09
✎
12:02
|
2(9) ну это же очевидно!!! Написать .Записать()!
|
|||
11
ivanoa
30.11.09
✎
12:03
|
Подписка ПриЗаписиРегистра, получается цикл
|
|||
12
Живой Ископаемый
30.11.09
✎
12:05
|
как меняете движения?
|
|||
13
ivanoa
30.11.09
✎
12:08
|
Процедура ПриЗаписиРегистроНакопленияНДССменаОрганизации(Источник, Отказ, Замещение) Экспорт
ТипИсточника = ТипЗнч(Источник); Если Источник <> Неопределено И Источник.Количество() > 0 Тогда Для каждого ТекСтрока из Источник Цикл ТекСтрока.Организация = ТекСтрока.ДоговорКонтрагента.Организация; КонецЦикла; // Источник.Записать(); КонецЕсли; КонецПроцедуры |
|||
14
Живой Ископаемый
30.11.09
✎
12:29
|
5 минут, нужно поэкспериментировать
|
|||
15
ivanoa
30.11.09
✎
13:05
|
ну как?
|
|||
16
Lama12
30.11.09
✎
13:24
|
(7)Да, все получилось, работает.
|
|||
17
Живой Ископаемый
30.11.09
✎
13:28
|
2(15) плохо.. я просто в своей практике на основании записей одного регистрадобавлял записи в другой, а в том же как бы не пробовал менять записи в событии призаписи...
делал такое: тзФ = Источник.Выгрузить(); тзФ.ЗаполнитьЗначения(Неопределено,"Организация"); Источник.Загрузить(тзФ); //Источник.Записать(); Для Каждого Строка Из Источник Цикл Сообщить(""+Строка.Организация); Строка.Организация = Неопределено; КонецЦикла; Для разных регистров - все равно организация не очищается.. Делал и для других измерений... Если раскоментировать строчку с Записать - тогда 1С вываливается по причине бесконечной рекурсии.. Что можно посоветовать - все-таки менять движения уже в припроведении... |
|||
18
Lama12
30.11.09
✎
13:28
|
В моем случае код следующий. Доп. оптимизацией не занимался.
Если НЕ Справочники.РТС_Константы.НДСРаспределение_Использование.Знач ИЛИ НЕ Справочники.РТС_Константы.НДСРаспределение_Версия.Знач = Метаданные.Версия Тогда Возврат; КонецЕсли; Док = Источник.Отбор.Регистратор.Значение; Если ТипЗнч(Док) = Тип("ДокументСсылка.РаспределениеНДСКосвенныхРасходов") Тогда Если НЕ Док.ДляСписанияНДСиспользоватьСчетИАналитикуУчетаЗатрат Тогда Возврат; КонецЕсли; ВидРег = ?(ТипЗнч(Источник) = Тип("РегистрБухгалтерииНаборЗаписей.Хозрасчетный"),"Хозрасчетный", ?(ТипЗнч(Источник) = Тип("РегистрБухгалтерииНаборЗаписей.Налоговый"),"Налоговый", ?(ТипЗнч(Источник) = Тип("РегистрНакопленияНаборЗаписей.ЗатратыНалоговыйУчет"),"*Налоговый", ?(ТипЗнч(Источник) = Тип("РегистрНакопленияНаборЗаписей.ЗатратыБухгалтерскийУчет"),"*Хозрасчетный","")))); Если НЕ ЗначениеЗаполнено(Справочники.РТС_Константы.Аналитика26Счета.Знач) Тогда ЗаписьЖурналаРегистрации("Не заполнено значние в константе 26 счет."); Возврат; КонецЕсли; Если Не ЗначениеЗаполнено(Справочники.РТС_Константы.Аналитика44Счета.Знач) Тогда ЗаписьЖурналаРегистрации("Не заполнено значние в константе 44 счет."); Возврат; КонецЕсли; СтЗ44 = Справочники.РТС_Константы.Аналитика44Счета.Знач; СтЗ26 = Справочники.РТС_Константы.Аналитика26Счета.Знач; Если ВидРег = "Хозрасчетный" ИЛИ ВидРег = "Налоговый" Тогда ТЗ_Бух = Источник.Выгрузить(); Для каждого Стр Из ТЗ_Бух Цикл Если Стр.СчетДт.ПринадлежитЭлементу(ПланыСчетов[ВидРег].РасходыНаПродажу) Тогда Стр.СубконтоДт1 = СтЗ44; ИначеЕсли Стр.СчетКт.ПринадлежитЭлементу(ПланыСчетов[ВидРег].РасходыНаПродажу) Тогда Стр.СубконтоКт1 = СтЗ44; КонецЕсли; Если Стр.СчетДт.ПринадлежитЭлементу(ПланыСчетов[ВидРег].ОбщехозяйственныеРасходы) Тогда Стр.СубконтоДт2 = СтЗ26; ИначеЕсли Стр.СчетКт.ПринадлежитЭлементу(ПланыСчетов[ВидРег].ОбщехозяйственныеРасходы) Тогда Стр.СубконтоКт2 = СтЗ26; КонецЕсли; КонецЦикла; Источник.Загрузить(ТЗ_Бух); ИначеЕсли ВидРег = "*Хозрасчетный" ИЛИ ВидРег = "*Налоговый" Тогда ВидРег = СтрЗаменить(ВидРег,"*",""); ТЗ_Набор = Источник.Выгрузить(); Для каждого Стр Из ТЗ_Набор Цикл Если Стр.СчетУчета.ПринадлежитЭлементу(ПланыСчетов[ВидРег].РасходыНаПродажу) Тогда Стр.СтатьяЗатрат = СтЗ44; ИначеЕсли Стр.СчетУчета.ПринадлежитЭлементу(ПланыСчетов[ВидРег].ОбщехозяйственныеРасходы) Тогда Стр.СтатьяЗатрат = СтЗ26; КонецЕсли; КонецЦикла; Источник.Загрузить(ТЗ_Набор); КонецЕсли; КонецЕсли; |
|||
19
Lama12
30.11.09
✎
13:32
|
(18)+
Стояла задача поменять аналитику. |
|||
20
Живой Ископаемый
30.11.09
✎
13:34
|
2(19) ну РБ я вроде тоже менял, а вот РН в случае (13,17) - почему-то не получается...
|
|||
21
Lama12
30.11.09
✎
13:39
|
(20)Хм... а может пустую ссылку заместо "неопределено" вставить?
|
|||
22
Lama12
30.11.09
✎
13:41
|
(20)Вот после этого -
ИначеЕсли ВидРег = "*Хозрасчетный" ИЛИ ВидРег = "*Налоговый" Тогда Меняются два регистр накопления. |
|||
23
Живой Ископаемый
30.11.09
✎
13:56
|
сейчас уже не успею, нужно уйти...
|
|||
24
Lama12
30.11.09
✎
13:56
|
(13)Вообще-то должно работать. Может подписка не на то событие?
В отладчике посмотреть не получается? |
|||
25
Живой Ископаемый
30.11.09
✎
14:01
|
2(24) подписка та, я специально вставил даже сообщить.. Кроме того и тзФ и Источник в отладчике содержат пустое измерение "Организации" но потом в вдижения документа - оно заполнено...
|
|||
26
ivanoa
30.11.09
✎
15:09
|
Ну ладно, спасибо. Сделаю в обработке проведения пока. Тоже вариант.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |