|
Не удается заполнить реквизит Источника в подписке на событие.. | ☑ | ||
---|---|---|---|---|
0
evorle145
10.04.19
✎
09:40
|
Процедура РКО_ДДСПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если ТипЗнч(Источник) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда Если Источник.ВидОперации = Перечисления.ВидыОперацийРКО.Инкассация Тогда ДДСПоУмолчанию = Константы.ДДСПоУмолчанию.Получить(); Если Источник.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.ПереводыВПути Тогда Источник.СубконтоДт1 = ДДСПоУмолчанию; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры Типзнч(Источник.СубконтоДт1) равен до и после присвоения тип Статьи движения денежных средств выражение Типзнч(Источник.СубконтоДт1) = типЗнч(ДДСПоУмолчанию) в отладчике дает ИСТИНА Соответственно далее когда РКО проводится, то в БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, СубконтоДт1) ничего не происходит, потому что "СубконтоДт1 = Справочники.СтатьиДвиженияДенежныхСредств.пустаяссылка()" дает истина... Код находится в подписке на событие перед записью объекта РКО. |
|||
1
Skylark
10.04.19
✎
09:46
|
Чего ты типы то смотришь?
На выходе из этой процедуры что в нужном реквизите Источник.СубконтоДт1, какое значение? |
|||
2
evorle145
10.04.19
✎
09:48
|
Но что интересно, когда я запускаю обмен, то этот код выполняется как надо. Значение Источник.СубконтоДт1 - присваивается. ( это видно и через отладчик, когда ставлю точку останова в этой строке, и в режиме предприятие соответственно)
(1) на выходе из этой процедуры в нужном реквизите Источник.СубконтоДт1 - никакого значение. Пустая ссылка на справочник ддс |
|||
3
Skylark
10.04.19
✎
09:49
|
(2) первое предложение противоречит второму
|
|||
4
evorle145
10.04.19
✎
09:53
|
(3) еще раз: при обмене код отрабатывает как надо. (для этого этот код и писал). Но если я захожу в документ, и нажимаю "Записать" - то нифига не происходит. То есть подписка срабатывает, отладчик тоже проваливается на эту строку Источник.СубконтоДт1 = ДДСПоУмолчанию; но значение не присваивает.. То есть при обмене происходит что-то такое, что этот же самый код работает как надо, если просто жму записать документ - нифига...
|
|||
5
Skylark
10.04.19
✎
09:53
|
СубконтоДт1 в БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, СубконтоДт1) это реквизит объекта или данные формы или ещё что-нибудь?
|
|||
6
evorle145
10.04.19
✎
09:57
|
(5) это реквизит объекта, если я правильно понял ваш вопрос:
https://hostingkartinok.com/show-image.php?id=9176ad44431ab8195bda3cd3f4773abd |
|||
7
Skylark
10.04.19
✎
10:00
|
Но когда нажимаешь Записать тоже ведь можно смотреть в отладчике?
До строки Источник.СубконтоДт1 = ДДСПоУмолчанию; доходит и после неё в Источник.СубконтоДт1 пустое значение, хотя в ДДСПоУмолчанию непустое значение и того же типа что и Источник.СубконтоДт1? |
|||
8
evorle145
10.04.19
✎
10:04
|
(7) Да, нажимаю записать, смотрю отладчик и далее все как вы написали... Я понимаю, что где-то туплю, но типы значений до и после я проверил первым делом.. и это мне ничего не дало.. Собственно в теме я это и написал.
|
|||
9
evorle145
10.04.19
✎
10:18
|
Все голову сломал, не врубаюсь как такое может быть.
Что имеем: 1. в конфигураторе для реквизита СубконтоДт1 установлен тип Характеристика.ВидыСубконтоХозрасчетные. 2. Моя подписка отрабатывает и в случае обмена и в случае когда руками нажимаю "Записать". Только в случае обмена значение присваивается, а в случае когда руками - то нет. Может когда руками- то надо предварительно для реквизита СубконтоДт1 сделать привестиЗначение? но с другой стороны, оно и так имеет значение тип справочника ДДС... чего делать??? |
|||
10
evorle145
10.04.19
✎
10:19
|
про привестиЗначение вообще бред в (9) написал... оно же для элемента формы.. а у меня речь идет про реквизит документа..
|
|||
11
PaulBC
10.04.19
✎
10:24
|
В случае обмена не выполняются штатные обработчики ПерезЗаписью и ПриЗаписи. Видимо, где-то в них сбрасывается значение.
|
|||
12
Skylark
10.04.19
✎
10:29
|
В порядке бреда: а Типзнч(Источник) при ручной записи что показывает?
|
|||
13
Skylark
10.04.19
✎
10:29
|
А, ну да, там же есть условие выше - объект
|
|||
14
Skylark
10.04.19
✎
10:31
|
Интересный случай, коллега
Попробуйте что ли кэш очистить там, базу перерегистрировать или ещё какие-нибудь танцы с бубуном |
|||
15
evorle145
10.04.19
✎
10:35
|
(12) вот это показывает: Документ объект: Расходный кассовый ордер
(11) так как можно сбросить то, чего не присвоилось... Отладчик же показывает что после присвоения, реквизит так и остается не заполненным. |
|||
16
evorle145
10.04.19
✎
10:38
|
(14) Вы гений! База sql, БП 2.0. Я просто ее удалил из списка баз и добавил заново (обычно так я чищу КЭШ на файловых базах) - и заработало! ( ну как так? не первый день в 1с, и не первый раз мои проблемы решаются чисткой кэша, и опять я про это дело забыл.. сам себе я удивляюсь...)
На почту скиньте номер телефона, закину чутка в знак благодарности! |
|||
17
Skylark
10.04.19
✎
11:38
|
(16) да ну, ерунда
Подобное ещё в семёрке происходило |
|||
18
evorle145
10.04.19
✎
12:06
|
(17) тогда огромное вам человеческое спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |