Имя: Пароль:
1C
1С v8
Изменения реквизита объекта без его записи
0 Shalun
 
28.11.21
16:05
Всем привет! Столкнулся с интересной ситуацией. В программе, в частности КА 24, еть заказ Поставщику или покупателю, не важно. В этом документе есть реквизит Статус. После того как все товары по а поставлены и оплачены, этот реквизит устанавливается в значение Закрыто. Но вот что интересно. Устанавливаю Точку останова в модуле ПередЗаписью или При Создании на сервере, и обращения к данному документу извне нет. Однако, при изменении проведения документа Поступления или оплаты, этот реквизит в Заказе меняется! Да же при открытой форме Заказа. Кто в курсе этого механизьма? Как это происходит? Поясните плиз.
1 youalex
 
28.11.21
16:26
Реквизит формы или документа?
Отладка на сервере работает?
Замер что показывает?
ПриЧтенииНаСервере() - тоже не отрабатывает?
2 Мимохожий Однако
 
28.11.21
16:37
Плохо смотрел. В процедуре при создании на сервере формы документа статус может изменить своё значение. А после записи это значение зафиксируется.
3 Ёпрст
 
28.11.21
16:53
(0) смотри подписки на события доков
4 Ногаминебить
 
28.11.21
17:53
А точно реквизит? Такие вещи обычно в регистр пишут.
5 Shalun
 
28.11.21
19:36
Ребят, ну реквизит документа, это точно. Отладка на сервере работает. Я так понимаю, в каком модуле и как меняется это реквизит не важно, что бы он сохранился, документ нужно записать, верно? По этому должно быть обращение к процедуре Перед Или При записи. Однако к этим процедурам обращения нет. А реквизит меняется и сохраняется.
6 vde69
 
28.11.21
20:01
где-то стоит

ОбменДанными.Загрузка = Истина
7 ДедМорроз
 
28.11.21
21:29
(6) при этом,проведуры ПриЗаписи и ПередЗаписью прекрасно вызываются,просто в первой строке у них,обычно,стоит проверка этого условия.
Штатно записать что-то в объект,не ввзывая обработчиков событий,нельзя.
8 Ненавижу 1С
 
гуру
28.11.21
21:35
(0) что за событие в модуле объекта при создании? Есть мнение что ты смотришь модуль формы, что неправильно
9 ads55
 
29.11.21
05:40
(0) Может какое-то условное оформление формы хитрое.
Хотя, больше похоже на подписку "ПриЗаписи".
10 osa1C
 
29.11.21
06:42
(0) Расширения?
11 Мультук
 
гуру
29.11.21
07:15
(0)

А если просто записать/провести документ -- в отладчик попадешь?
А то сейчас окажется, что точки останова стоят не в той конфигурации, не в том документе, запущен клиент, но не из конфигурации и т.п.

P.S.
В УТ есть возможность менять статус из списка "ЗаказПоставщику" -- думаю, в КА - аналогично. Из кода смены статуса ты в отладчики попадаешь?
12 Shalun
 
29.11.21
08:57
Парни, всем привет! Смотрю разумеется в модуле объекта, процедуры ПриЗаписи находятся в нем. И при записи\проведении документа в отладчик попадаю, т.е. точка останова установлена верно.
Подписки пересмотрел, ничего не нашел. :-( Сейчас пересмотрю Расширения, хотя мало вероятно что будет в них что-то, т.к. данный функционал работает уже давно, и наверняка он отлажен, что бы его в расширения пихать.
(11) Не понял на счет смены статуса из списка? Можешь пояснить?
13 ads55
 
29.11.21
09:08
(12) Посмотри весь стек вызовов, может где-то далеко в коде, поэтому пропускаешь. Чудес не бывает.
14 Мультук
 
гуру
29.11.21
09:50
(0)

https://pastenow.ru/F5682

"Закрыт" это то, на что указывает синяя стрелочка?
15 Ненавижу 1С
 
гуру
29.11.21
10:03
(14) Состояние<>Статус, автор утверждает про статус якобы
16 Shalun
 
29.11.21
13:47
(14) Да
(15) В данном случае Состояние и есть Статус.
17 Ненавижу 1С
 
гуру
29.11.21
13:57
(16) неправильный вывод - состояние это ресурс регистра СостоянияЗаказовПоставщикам и все становится на свои места: никто заказ не трогает вообще, меняются данные регистра.
18 Мультук
 
гуру
29.11.21
13:58
(16)
Вы реально не видите разницы между двумя словами "Статус" (реквизит документа) и "Состояние"  (реквизит регистра сведений "СостоянияЗаказовПоставщикам" ?

P.S.

(15)  Все пациенты врут (с)
19 Ненавижу 1С
 
гуру
29.11.21
14:08
(18) получается да, обычно по незнанию, но тут убежденное вранье какое-то
20 Shalun
 
29.11.21
14:11
ПАРНИ, МИНУТОЧКУ. В Документе есть реквизит Статус. Он принимает определенное значение из Перечисления. Данный реквизит выведен на форму документа, и на форму списка и отображается как Состояние. И меняется значение именно этого реквизита. Т.е. открыв документ Заказ, можно увидеть что и в нем значение поменялось.
21 Мультук
 
гуру
29.11.21
14:18
(20)

Открываем ЗаказПоставщику.Формы.ФормаСпискаДокументов, смотрим текст динамического списка {лишнее вырезано}

ВЫБРАТЬ
    ДокументЗаказПоставщику.Ссылка КАК Ссылка,
    ДокументЗаказПоставщику.Статус КАК Статус,
    ВЫБОР
        КОГДА (НЕ ДокументЗаказПоставщику.Проведен)
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.ПустаяСсылка)
        ИНАЧЕ
            ЕСТЬNULL(СостоянияЗаказовПоставщикам.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовПоставщикам.Закрыт))
    КОНЕЦ КАК Состояние
ИЗ
    Документ.ЗаказПоставщику КАК ДокументЗаказПоставщику
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовПоставщикам КАК СостоянияЗаказовПоставщикам
        ПО (СостоянияЗаказовПоставщикам.Заказ = ДокументЗаказПоставщику.Ссылка)
22 Ногаминебить
 
29.11.21
14:18
Картинку конфигуратора с реквизитами документа в студию тогда.