Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Непонятное поведение платформы

v7: Непонятное поведение платформы
Я
   1snik_d
 
10.02.20 - 20:51
Всем привет. Давно не ковырял семерку, вот пришлось вспомнить. В документе в табличной части есть ссылочный реквизит (партия). При записи документа устанавливаю реквизит партии и тут же пытаюсь его прочитать через Контекст. В отладчике все читается правильно, а в режиме предприятия реквизит остается в старом варианте. Не пойму, что я делаю не так?
 
 
   Chameleon1980
 
1 - 10.02.20 - 20:56
а код где?
   1snik_d
 
2 - 10.02.20 - 21:00
Функция глЕстьСерииСМДЛП(Конт) Экспорт
    
    Конт.ВыбратьСтроки();
    Пока Конт.ПолучитьСтроку() = 1 Цикл
        Если Конт.Серия.МДЛП = 1 Тогда
            Возврат 1;
        КонецЕсли;
    КонецЦикла;
    
    Возврат 0;
    
КонецФункции

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

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