|
v7: Непонятное поведение платформы |
☑ |
0
1snik_d
10.02.20
✎
20:51
|
Всем привет. Давно не ковырял семерку, вот пришлось вспомнить. В документе в табличной части есть ссылочный реквизит (партия). При записи документа устанавливаю реквизит партии и тут же пытаюсь его прочитать через Контекст. В отладчике все читается правильно, а в режиме предприятия реквизит остается в старом варианте. Не пойму, что я делаю не так?
|
|
1
Chameleon1980
10.02.20
✎
20:56
|
а код где?
|
|
2
1snik_d
10.02.20
✎
21:00
|
Функция глЕстьСерииСМДЛП(Конт) Экспорт
Конт.ВыбратьСтроки();
Пока Конт.ПолучитьСтроку() = 1 Цикл
Если Конт.Серия.МДЛП = 1 Тогда
Возврат 1;
КонецЕсли;
КонецЦикла;
Возврат 0;
КонецФункции
Эта функция вызывается при записи документа вот так глЕстьСерииСМДЛП(Контекст). В отладчике возвращает 1, в режиме предприятия 0.
|
|
3
SiAl-chel
10.02.20
✎
21:02
|
(0) Режим Отладчика без запуска в режиме 1С:Предприятие не бывает. У них один и тот же контекст.
Скорее всего в разных кусках кода в параметре либо Ссылка, либо Объект, либо Контекст при вызове этой функции.
|
|
4
1snik_d
10.02.20
✎
21:08
|
(3) А вот так если вызывать, то работает правильно глЕстьСерииСМДЛП(ТекущийДокумент()), но мне так не подходит, потому что для нового документа ТекущийДокумент() неопределен еще, он появляется только после записи.
|
|
5
welwel
10.02.20
✎
21:19
|
Можно сделать через ВыгрузитьТабличнуюЧасть и не мучить контекст
|
|
6
mikecool
10.02.20
✎
21:23
|
(2) убери контекст вообще, ТЧ доступна и так
|
|
7
1snik_d
10.02.20
✎
21:24
|
Я нашел в чем проблема: контекст не обновляется. Если предварительно вызвать Форма.Обновить(), то все срабатывает правильно. Короче жесть какая-то
|
|
8
1snik_d
10.02.20
✎
21:24
|
(6) А мне нужен не просто реквизит ТЧ, а реквизит реквизита ТЧ ))
|
|
9
mikecool
10.02.20
✎
21:26
|
(8) я не против, но - контекст документа, когда он создан, есть уже
|
|
10
1snik_d
10.02.20
✎
21:40
|
(9) При записи обновляю реквизит реквизита ТЧ. Без Форма.Обновить() Контекст.Реквизит.Реквизит показывает старое значение реквизита реквизита ТЧ. Вот в чем проблема.
|
|
11
Карст
11.02.20
✎
00:23
|
странные люди , (10) ты ж объект считал ... он и показывает что считано
|
|
12
SiAl-chel
11.02.20
✎
14:30
|
(4) ТекущийДокумент() - это ссылка. И данные в ней актуализируются только после записи. А если это новый, то конечно данные тут отсутствуют.
|
|
13
SiAl-chel
11.02.20
✎
14:33
|
(4) И ПриЗаписи() в 7.7 - это обработчик "перед записью" по сути своей. И потому надо использовать
Результат = глЕстьСерииСМДЛП(Контекст);
|
|