Имя: Пароль:
1C
 
Добавление подписки на событие в расширение
0 Tolstiy Beremenniy
 
23.07.20
05:28
Почему не могу добавить подписку на событие в расширение?

http://joxi.ru/Q2KbdNVCwP3MRm

Как это правильно делать?
1 Галахад
 
гуру
23.07.20
06:26
Наверно, нужно добавить в расширение тот документ, на который нужна подписка.

Если на все, то тут грустно. Можно существующие обработчики событий добавить в расширение.
2 Tolstiy Beremenniy
 
23.07.20
06:31
(1) Я хотел создать новое. И потом уже добавлять в него регистры накопления.
Пока создал не в расширении а в конфигурации подписку. Добавил в неё 2 регистра.

Документ ПоступлениеТоваровУслуг, делает движения по регистрам накопления

РасчетыСПоставщиками
и
РасчетыСПоставщикамиПоСрокам

Первый цикл отрабатывает, а почему не отрабатывает второй, что я не так сделал?

Процедура ПередЗаписьюРегистровНакопленияПередЗаписью(Источник, Отказ, Замещение) Экспорт
    Если ТипЗнч(Источник) = Тип("РегистрНакопленияНаборЗаписей.РасчетыСПоставщиками") Тогда
        Для каждого СтрокаЗаписи Из Источник Цикл
            СтрокаЗаписи.ЗаказПоставщику = Неопределено;
        КонецЦикла;
    КонецЕсли;
    //
    Если ТипЗнч(Источник) = Тип("РегистрНакопленияНаборЗаписей.РасчетыСПоставщикамиПоСрокам") Тогда
        Для каждого СтрокаЗаписи Из Источник Цикл
            СтрокаЗаписи.ОбъектРасчетов    = Неопределено;
            СтрокаЗаписи.РасчетныйДокумент = Неопределено;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
3 Tolstiy Beremenniy
 
23.07.20
06:33
в подписку, добавил 2 регистра

http://joxi.ru/YmEbex8CJPeaL2

процедура запускается когда источник первый регистр, а как что бы источник был второй регистр?
Он же тоже при проведении отрабатывает!
4 Tolstiy Beremenniy
 
23.07.20
06:35
сама задача что бы при записи в регистры не важно какими документами, очищать значения 2х полей
Объектрасчетов
и
РасчетныйДокумент

но как отлавливать перед записью события всех регистров которые я задам? Пока задал на 2 .
5 Tolstiy Beremenniy
 
23.07.20
06:45
если я 2 набора записей регистров накопления добавил в подписку, то процедура подписки же должна обрабатывать оба регистра.
Почему туда в источник идет только один? Когда при проведении документа, делаются движения по 2м регистрам ?
6 Tolstiy Beremenniy
 
23.07.20
06:59
никто не подскажет?

делаю сейчас в расширение перед записью в наборе записей второго регистра, посмотрю как отработает
7 Tolstiy Beremenniy
 
23.07.20
07:00
(6) то есть не в подписке, а в самом регистре
8 Tolstiy Beremenniy
 
23.07.20
07:04
посмотрел внимательнее
кажется документ ПоступлениеТоваровУслуг, не делает движения по регистру РасчетыСПоставщикамиПоСрокам, его нет в списке регистров движения

Почему тогда, в самом документе открываешь движения документа, он там есть?
9 PuhUfa
 
23.07.20
07:17
(0) Реализована возможность заимствования подписок на события и создания собственных подписок в расширении. (с) версия 8.3.17
10 Галахад
 
гуру
23.07.20
07:32
(9) Хорошая новость.
11 Tolstiy Beremenniy
 
23.07.20
07:39
(9) тут такая 1С:Предприятие 8.3 (8.3.16.1148)

но вопрос уже не в этом, вроде как отошел. но все же
если документ не делает движения по регистру, почему этот регистр у него в списке????

я хотел у него очистить реквизиты при проведении документа, но он не запускается перед записью набора записей, так как его нет в движениях

а в режиме предприятия почему то есть (
12 PuhUfa
 
23.07.20
08:03
(11) Не знаю как это назвать. Баг или фича. У РН РасчетыСПоставщикамиПоСрокам есть измерение РасчетныйДокумент. У него Тип ОпределяемыйТип.РасчетныйДокументСПоставщиком. Соответственно в нем есть документ ПТиУ. Вот и получаем, что в конфигураторе галки на движениях нет, а когда в предприятии смотри движения там этот РН есть.
13 Tolstiy Beremenniy
 
23.07.20
08:06
(12) Дело в том что, в модуле набора записей, не срабатывает, процедура перед записью, при проведении документа ПоступлениеТоваровУслуг.
Получается при проведении документа поступление товаров услуг, не осуществляется запись в регистре. Другим путем каким то туда попадает.

&После("ПередЗаписью")
Процедура АУ_ПередЗаписью(Отказ, Замещение)
    Для каждого СтрокаЗаписи Из ЭтотОбъект Цикл
        СтрокаЗаписи.ОбъектРасчетов    = Неопределено;
        СтрокаЗаписи.РасчетныйДокумент = Неопределено;
    КонецЦикла;
КонецПроцедуры
14 PuhUfa
 
23.07.20
08:10
В модуле набора записей поставь точку останова и посмотри откуда вызывается запись в этот РН
15 Tolstiy Beremenniy
 
23.07.20
08:14
(14) А что запускать в этот момент что бы посмотреть?

Увидел что не срабатывает точка останова при проведении документа ПоступлениеТоваровУслуг. Вот, это да. Потом увидел. что его, этого регистра и нет среди движений документа. В перечислении регистров накопления.
16 PuhUfa
 
23.07.20
08:15
Собственно в модуле набора записей РасчетыСПоставщикамиПоСрокам можешь и делать свои темные дела. Тогда они будут работать в независимости от места записи в регистр.
17 PuhUfa
 
23.07.20
08:18
(15) >>А что запускать в этот момент что бы посмотреть?
Я бы начал с Взаиморасчетов. В смысле с этой системы онлайн/оффлайн. Этот РН как раз оттуда. И Скорее всего заполняется как раз регламентным заданием по распределению взаиморасчетов
18 Tolstiy Beremenniy
 
23.07.20
08:19
(16) Нужно делать в нескольких регистрах. Где есть ОбъектРасчетов и РасчетныйДокумент.
По этому я хотел сделать одну подписку на событие, для всех регистров, и там уже обрабатывать все по условиям.
19 hhhh
 
23.07.20
08:27
(18) попробуй снять документ с проведения, а потом опять провести.
20 acht
 
23.07.20
08:55
(12) Фича. Команды "перехода к" генерируются не только для регистраторов но и для ведущих измерений.
21 acht
 
23.07.20
08:56
Интересно, сколько у Ливингстара еще ников?
22 Tolstiy Beremenniy
 
23.07.20
09:02
(19) При отмене проведения сработала точка останова у регистра накопления РасчетыСПоставщикамиПоСрокам, Хм!!!!!!

вот тут,


&После("ПередЗаписью")
Процедура АУ_ПередЗаписью(Отказ, Замещение)
    Для каждого СтрокаЗаписи Из ЭтотОбъект Цикл
        СтрокаЗаписи.ОбъектРасчетов    = Неопределено;
        СтрокаЗаписи.РасчетныйДокумент = Неопределено;
    КонецЦикла;
КонецПроцедуры



Но не в подписке на собитие.
23 Tolstiy Beremenniy
 
23.07.20
09:03
(22) О!!!! И в подписку на событие тоже попала !!!!
24 Tolstiy Beremenniy
 
23.07.20
09:03
Процедура ПередЗаписьюРегистровНакопленияПередЗаписью(Источник, Отказ, Замещение) Экспорт
    Если ТипЗнч(Источник) = Тип("РегистрНакопленияНаборЗаписей.РасчетыСПоставщиками") Тогда
        Для каждого СтрокаЗаписи Из Источник Цикл
            СтрокаЗаписи.ЗаказПоставщику   = Неопределено;
            СтрокаЗаписи.РасчетныйДокумент = Неопределено;
        КонецЦикла;
    КонецЕсли;
    //
    Если ТипЗнч(Источник) = Тип("РегистрНакопленияНаборЗаписей.РасчетыСПоставщикамиПоСрокам") Тогда
        Для каждого СтрокаЗаписи Из Источник Цикл
            СтрокаЗаписи.ОбъектРасчетов    = Неопределено;
            СтрокаЗаписи.РасчетныйДокумент = Неопределено;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
25 Tolstiy Beremenniy
 
23.07.20
09:04
только там, вот этот цикл

    Для каждого СтрокаЗаписи Из ЭтотОбъект Цикл


не срабытывает, неопределено !
26 Tolstiy Beremenniy
 
23.07.20
09:05
(19) Вы правы! Сработала и подписка, и код в самом модуле набора записей !
Основная теорема систематики: Новые системы плодят новые проблемы.