v7: ПриЗаписи Справочника в списке #697546


#0 by Hans
Вобщем задача - при изменении определенного реквизита справочника1 изменять справочник2. Если в процедуре "ПриЗаписи" выполнять процедуру изменяющую справочник2 на основе справочника1, то данные в БД еще старые. Туплю, не могу сообразить что надо делать. Справочник1 редактируется в списке.
#1 by Diter
а не надо текущий элемент искать в справочнике 1 чтобы изменить справочник 2. достаточно просто использовать реквизиты текущего элемента - они уже будут изменены ну типа того что не надо делать Спр_1.НайтиЭлемент(ТекущийЭлемент); Спр_2.Реквизит_2=Спр_1.Реквизит_1; в модуле списка
#2 by Злопчинский
В процедуре ПриЗаписи в справочнике Спр1 - запись еще не произошла. поэтому . . и вообще.. мне кажется что при редактировании строки в списке нет процедуры приЗаписи - см. ПриОконычанииРедактированияСтроки
#3 by КонецЦикла
Отладчиком попадал туда? Вот и проверяй
#4 by Torquader
Есть, и это в помошнике есть. Синтаксис: ПриЗаписи(<СписокПериодРекв>) Назначение: Предопределенная процедура при интерактивной записи строки списка справочника. Параметры: <СписокПериодРекв> - строка со списком изменяемых периодических реквизитов справочника. Замечание: Данная процедура может располагаться только в программных модулях форм справочника. А вот как раз "ПриОкончании..." там нет. Но, записать можно и до, только реально запись нужна тогда, когда мы передаём куда-то ссылку на новый элемент и из неё кто-то и что-то будет получать. Например, не получится создать элементы подчинённых справочников, пока не записан владелец. Однако, это никак не влияет на запись реквизитов владельца, так что если элемент Выбран, то можно его и не писать.
#5 by Hans
Почему, то не получается. Делаю В Спр_1 ПриЗаписи Записать и все еще все реквизиты старые.
#6 by Hans
тяжело идет эта семерочная модель объектов и ссылок если долго не заниматься.
#7 by Torquader
И где реквизиты старые ? В процедуру передаётся спозиционированный элемент, чтобы реквизиты были "новые" желательно его "прочитать" через объект, так как кеш-то ещё не знает, что кого-то записали (там у 1С с этим бывают проблемы, если по нескольку раз писать).
#8 by Torquader
Что в справочнике2 меняется вообще ?
#9 by Hans
В справочнике 2 меняется сама ссылка на справочник 1. Чтение через объект -  не помогает. Есть подозрение что Записать в форме списка не работает вообще.
#10 by Hans
а идея вобще такая, В справочнике Номенклатура есть реквизит на справочник Наценки Справочник Наценки состоит из групп номенклатуры, производителей и самой наценки. Так вот косяк при смене группы в списке наценок, нужно переназначить скидку той группе которая была и той которая стала.  Я скидки переназначаются через запросы.
#11 by Torquader
А действительно - кого мы записываем - у нас контекста элемента нет - так что нужно делать "ложное закрытие" при записи, а в закрытии уже обрабатывать всё, что нужно.
#12 by Hans
В итоге через список не получилось. Сделал через форму элемента, все обработки изменения справочников -  при закрытии формы.
#13 by Torquader
Я же сказал - в списке делать "ложное закрытие", то есть в переменную модуля писать какое-то значение и делать Форма.Закрыть, чтобы после записи форма попыталась закрыться, а уже в процедуре ПриЗакрытии мы явно получаем уже сохранённый элемент.
#14 by Злопчинский
значит ступил.. ;-) это я с ТЧ дока перепутал... . прям точно как в армии: . - Вода кипит при 90 градусах - товарищ прапорщик, вода кипит при 100 градусах! - а, точно! это я с прямым углом перепутал.. . ;-)
#15 by Torquader
Да не волнуйся ты так, что бы мы тут не советовали, а у автора "каменный цветок" так и не вышел.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С