Имя: Пароль:
1C
1С v8
УПП для Украины подписки на события. Модуль подписки затирает движения документа
,
0 Alexander Shevchuck
 
23.10.11
20:56
Хочу к основным бух.  проводкам, формируемым документом  добавить свои, при определенных условиях. Для этого создал подписку на событие, написал обработчик,  но если срабатывает подписка, то нету проводок, которые  формирует модуль документа, если закоментировать модуль подписки, проводки есть . Помогите, пожалуйста, разобраться с проблемой.

Процедура ДополнительныеОбработкиПоступленияТоваровУслугОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
Если Отказ Тогда
   Возврат;
КонецЕсли;
   //----------------------------------------------
   Если НЕ Отказ Тогда
       Запрос = Новый Запрос;
       Запрос.Текст = "
       |ВЫБРАТЬ
       |    Ссылка,
       |    Номенклатура,
       |    Сумма
       |ИЗ
       |    Документ.ПоступлениеТоваровУслуг.Услуги
       |ГДЕ
       |(Ссылка = &Ссылка) И (Номенклатура = &Номенклатура)
       |";
       Запрос.УстановитьПараметр("Ссылка",Источник.Ссылка);
       Запрос.УстановитьПараметр("Номенклатура",Справочники.Номенклатура.НайтиПоКоду("00000000022"));
       Если НЕ Запрос.Выполнить().Пустой() Тогда
           Результат = Запрос.Выполнить();
           Выборка = Результат.Выбрать();
           Пока Выборка.Следующий() Цикл
               Движение = Источник.Движения.Хозрасчетный.Добавить();
               Движение.Активность = Истина;
               Движение.Период = КонецМесяца(Источник.Дата);
               Движение.СчетДт    =    ПланыСчетов.Хозрасчетный.РасчетыСОтечественнымиПоставщиками;
               Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] =  Источник.Контрагент;
               Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры]      =  Источник.ДоговорКонтрагента;
               Движение.СчетКт    =    ПланыСчетов.Хозрасчетный.РасчетыПоНДФЛ;
               Движение.Сумма    =    Выборка.Сумма*0.15;
               Движение.Организация = Источник.Организация;
               Движение.Содержание = "Расчеты По НДФЛ ";
               Движение.НомерЖурнала    = "Услуги";
           КонецЦикла;
       КонецЕсли;
КонецПроцедуры
1 zak555
 
23.10.11
20:59
тимошка запретила
2 DrShad
 
23.10.11
20:59
самому не понятно что перетирает подписка
3 DrShad
 
23.10.11
21:01
+(2) изучай мат часть как проходит запись регистров
4 Живой Ископаемый
 
23.10.11
21:46
что это за двойной презерватив:


Если Отказ Тогда
   Возврат;
КонецЕсли;
   //----------------------------------------------

   Если НЕ Отказ Тогда


После первой проверки остается какая-то вероятность что управление не уйдет из процедуры?
5 Alexander Shevchuck
 
23.10.11
21:48
(4) Согласен, уберу
6 Alexander Shevchuck
 
23.10.11
21:55
(3)Подскажи, пожалуйста, где почитать, как сделать из подписки на событие движение по бух. регистру, при этом не убрав движения обработки провидения документа
7 Живой Ископаемый
 
23.10.11
22:24
1С эту книжку почему-то уже не продает, продает вместо нее 5 других, в каких освещено - уж не знаю:
http://v8.1c.ru/metod/books/

А смотреть здесь:

http://screencast.com/t/bh91mPKg9m2G

это если на проведение документа.. Если на запись НабораЗаписей РБ - то по-другому.
8 Alexander Shevchuck
 
24.10.11
12:00
(7) Так не помогло, но я уже разобрался, в процедуре ПередЗаписью есть параметр замещение, по умолчанию он равен ИСТИНА, чтобы не проходило замещение нужно передать ему параметр ЛОЖЬ
9 Alexander Shevchuck
 
24.10.11
12:01
Вот такой код работает

НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
               НаборЗаписей.Отбор.Регистратор.Установить(Источник.Ссылка);
               Движение = НаборЗаписей.Добавить();
               Движение.Регистратор = Источник.Ссылка;
               Движение.Период     = Источник.Дата;
               Движение.СчетДт    =    ПланыСчетов.Хозрасчетный.РасчетыСОтечественнымиПоставщиками;
               Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] =  Источник.Контрагент;
               Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры]      =  Источник.ДоговорКонтрагента;
               Движение.СчетКт    =    ПланыСчетов.Хозрасчетный.РасчетыПоНДФЛ;
               Движение.Сумма    =    Выборка.Сумма*0.15;
               Движение.Организация = Источник.Организация;
               Движение.Содержание = "Расчеты По НДФЛ, аренда автомобиля";
               Движение.НомерЖурнала    = "";
               НаборЗаписей.Записать(ЛОЖЬ);
10 Alexander Shevchuck
 
24.10.11
12:02
Я полностью модуль не писал, только то что в цикле выборки
11 Alexander Shevchuck
 
24.10.11
12:03
(8) Имеется ввиду процедура ПередЗаписью модуля набора записей регистра бухгалтерии хозрасчетный
12 Живой Ископаемый
 
24.10.11
12:27
2(11) да, я думаю ее использовать правильнее