Вход | Регистрация
 

Не удается заполнить реквизит Источника в подписке на событие..

Не удается заполнить реквизит Источника в подписке на событие..
Я
   evorle145
 
10.04.19 - 09:40
Процедура РКО_ДДСПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
    
    Если ТипЗнч(Источник) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда
        Если Источник.ВидОперации = Перечисления.ВидыОперацийРКО.Инкассация Тогда
            
            ДДСПоУмолчанию = Константы.ДДСПоУмолчанию.Получить();
    
            Если Источник.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.ПереводыВПути Тогда
                 Источник.СубконтоДт1 = ДДСПоУмолчанию;
            КонецЕсли;    
            
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Типзнч(Источник.СубконтоДт1) равен до и после присвоения тип Статьи движения денежных средств
выражение
Типзнч(Источник.СубконтоДт1) = типЗнч(ДДСПоУмолчанию) в отладчике дает ИСТИНА

Соответственно далее когда РКО проводится, то в БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, СубконтоДт1) ничего не происходит, потому что "СубконтоДт1 = Справочники.СтатьиДвиженияДенежныхСредств.пустаяссылка()" дает истина...

Код находится в подписке на событие перед записью объекта РКО.
 
 
   Skylark
 
1 - 10.04.19 - 09:46
Чего ты типы то смотришь?
На выходе из этой процедуры что в нужном реквизите Источник.СубконтоДт1, какое значение?
   evorle145
 
2 - 10.04.19 - 09:48
Но что интересно, когда я запускаю обмен, то этот код выполняется как надо. Значение Источник.СубконтоДт1 - присваивается. ( это видно и через отладчик, когда ставлю точку останова в этой строке, и в режиме предприятие соответственно)
(1) на выходе из этой процедуры в нужном реквизите Источник.СубконтоДт1 - никакого значение. Пустая ссылка на справочник ддс
   Skylark
 
3 - 10.04.19 - 09:49
(2) первое предложение противоречит второму
   evorle145
 
4 - 10.04.19 - 09:53
(3) еще раз: при обмене код отрабатывает как надо. (для этого этот код и писал). Но если я захожу в документ, и нажимаю "Записать" - то нифига не происходит. То есть подписка срабатывает, отладчик тоже проваливается на эту строку  Источник.СубконтоДт1 = ДДСПоУмолчанию; но значение не присваивает.. То есть при обмене происходит что-то такое, что этот же самый код работает как надо, если просто жму записать документ - нифига...
   Skylark
 
5 - 10.04.19 - 09:53
СубконтоДт1 в БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, СубконтоДт1) это реквизит объекта или данные формы или ещё что-нибудь?
   evorle145
 
6 - 10.04.19 - 09:57
(5) это реквизит объекта, если я правильно понял ваш вопрос:
https://hostingkartinok.com/show-image.php?id=9176ad44431ab8195bda3cd3f4773abd
   Skylark
 
7 - 10.04.19 - 10:00
Но когда нажимаешь Записать тоже ведь можно смотреть в отладчике?
До строки Источник.СубконтоДт1 = ДДСПоУмолчанию; доходит и после неё в Источник.СубконтоДт1 пустое значение, хотя в ДДСПоУмолчанию непустое значение и того же типа что и Источник.СубконтоДт1?
   evorle145
 
8 - 10.04.19 - 10:04
(7) Да, нажимаю записать, смотрю отладчик и далее все как вы написали... Я понимаю, что где-то туплю, но типы значений до и после я проверил первым делом.. и это мне ничего не дало.. Собственно в теме я это и написал.
   evorle145
 
9 - 10.04.19 - 10:18
Все голову сломал, не врубаюсь как такое может быть.
Что имеем:
1. в конфигураторе для реквизита СубконтоДт1 установлен тип Характеристика.ВидыСубконтоХозрасчетные.
2. Моя подписка отрабатывает и в случае обмена и в случае когда руками нажимаю "Записать". Только в случае обмена значение присваивается, а в случае когда руками - то нет.

Может когда руками- то надо предварительно для реквизита СубконтоДт1  сделать привестиЗначение? но с другой стороны, оно и так имеет значение тип справочника ДДС...

чего делать???
   evorle145
 
10 - 10.04.19 - 10:19
про привестиЗначение вообще бред в (9) написал... оно же для элемента формы.. а у меня речь идет про реквизит документа..
   PaulBC
 
11 - 10.04.19 - 10:24
В случае обмена не выполняются штатные обработчики ПерезЗаписью и ПриЗаписи. Видимо, где-то в них сбрасывается значение.
   Skylark
 
12 - 10.04.19 - 10:29
В порядке бреда: а Типзнч(Источник) при ручной записи что показывает?
   Skylark
 
13 - 10.04.19 - 10:29
А, ну да, там же есть условие выше - объект
   Skylark
 
14 - 10.04.19 - 10:31
Интересный случай, коллега
Попробуйте что ли кэш очистить там, базу перерегистрировать или ещё какие-нибудь танцы с бубуном
   evorle145
 
15 - 10.04.19 - 10:35
(12) вот это показывает: Документ объект: Расходный кассовый ордер
(11) так как можно сбросить то, чего не присвоилось... Отладчик же показывает что после присвоения, реквизит так и остается не заполненным.
   evorle145
 
16 - 10.04.19 - 10:38
(14) Вы гений! База sql, БП 2.0. Я просто ее удалил из списка баз и добавил заново (обычно так я чищу КЭШ на файловых базах) - и заработало! ( ну как так? не первый день в 1с, и не первый раз мои проблемы решаются чисткой кэша, и опять я про это дело забыл.. сам себе я удивляюсь...)
На почту скиньте номер телефона, закину чутка в знак благодарности!
   Skylark
 
17 - 10.04.19 - 11:38
(16) да ну, ерунда
Подобное ещё в семёрке происходило
   evorle145
 
18 - 10.04.19 - 12:06
(17) тогда огромное вам человеческое спасибо!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.