Имя: Пароль:
1C
1C 7.7
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 - это обработчик "перед записью" по сути своей. И потому надо использовать
Результат = глЕстьСерииСМДЛП(Контекст);
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn