Как сделать ссылку из справочника на документ, а из документа на справочник #26486


#0 by GrayT
Что то меня совсем сплющело :( Нужно при записи документа создать элемент справочника и прописать в нем создаваемый документ. Ну а в документе запомнить ссылку на этот справочник. А по кнопочке Записать; Провести; Закрыть в модуле проведения проверить этот самый документ
#1 by goodfella
А можешь поподробнее о смысле данного телодвижения.
#2 by Барбариска
а в чем проблемы? все обычно очень просто делается...
#3 by GrayT
1 Не могу - слишком долго рассказывать 2 Ага, я тоже так подумал сперва. Вот выжимка из программы, кому не лень может попробовать. У справочника есть реквизит Док. У Документа есть реквизит Спр. "Проверить" - это флажок на форме. //_____________________________________________________________________________
#4 by Матрейя
Процедура ПриЗаписи - док еще не записан, а ты его пытаешься записать реквизитом справочника.
#5 by HIDDEN MESSAGE
#6 by Yak
А какие проблемы непонятно? Только сначала документ сохранить нужно, да и элемент справочника чтобы ссылаться на них можно было. Ну а вслед за сохранением в модуле описывай то что тебе нужно.
#7 by GrayT
А, это уже подправленный вариант Если при закрытии проверить просто ПустоеЗначение(Спр.Док)=1 - вообще интересный результат получиться :) ЗЫ Только "Проверять" не убирайте :)
#8 by GrayT
4 Там проверка на Выбран есть. Для проведения этого мало согласен. Но я сперва с граблями по зацикленности парился (см.7) По четвергам не раздаю. Пролетай....
#9 by Барбариска
КонецПроцедуры //ЗаписатьСправочник Еще для пущей красоты можно все Записать  делать в попытках-исключениях, с корректной обработкой нештатных ситуаций...
#10 by Барбариска
и далее...
#11 by GrayT
Ты это попробовала? Предпологаю что в процедуре ЗаписатьСправочник ты просто случайно не прописала ссылку на справочник в документ. А при закрытии произойдет великолепное зацикливание. Короче я так пробовал
#12 by Барбариска
У меня вся конфигурация чем-то подобным исписана... Может что-то невнимательно в твоем коде исправила конечно,... минуточку...
#13 by GrayT
ОФФ: Я так матерился года два назад, когда открыл для себя что один ТекущийЭлемент может оказаться неравен другому, которые, в принципе, ссылаются на один элемент.
#14 by АЛьФ
Может лучше этот механизм в проведении реализовать? Полные условия задачи это позволяют? Однозначно это будет проще сделать.
#15 by Барбариска
Да, действительно - при закрытии - как-то неправильно - у меня везде это происходит либо при записи, либо при проведении. Закрывать ведь можно и без сохранения...
#16 by GrayT
Понимаю что в проведении легче, но увы, нет - нельзя. Это производство. Сперва идет заполнение документа, потом его расчет, затем возможны интерактивные действия оператора. Короче, зацикливание я победил (в 3 рабочий код - два часа пропарился пока не нашел что спр.Док будет всегда пустой). А модуль проведения буду переписывать на предмет  перепозиционирования справочника.
#17 by Барбариска
а почему при записи нельзя? если закрываем без сохранения, то вообще неправильно что-либо менять если с сохранением - то сработает ПриЗаписи
#18 by GrayT
Ага, не правильно. А какой прикол если написать при закрытии проверку на ПустоеЗначение(Спр.Док) - зацикливание, но если в отладчике встать на Спр, затем F9, а потом по плюсику развернуть элемент...... У меня сперва просто сигарка выпала :)
#19 by GrayT
ПОчему приЗаписи нельзя? Я и пытаюсь приЗаписи сделать. Вот только глюк интересный получается После того как я в Документ один раз прописал этот элемент, то дальше (сколько бы я его не записывал-перезаписывал) он помнит через реквизит документа только первоночальные значения реквизитов справочника! Попробуй в ЗаписатьСправочник в наименование приделать счетчик сколько раз был вызвана ЗаписатьСправочник. А при окончательном выходе из формы Сообщить(Спр.Наименование)
#20 by Барбариска
в  ПриЗакрытии - не нужно ничего делать! а про записывал-перезаписывал - это известные грабли - когда реквизит в документе и тот же реквизит как элемент справочника отлючаются... Я это всегда программно обыгрываю.
#21 by goodfella
Наверное лучше при закрытии. Делать проверку, модифицировался документ или нет. Если "да", тогда записывать справочник, после того как он был записан.
#22 by axaken
а ты хочешь? чтоб каждый раз значение справочника в доке менялось?
#23 by goodfella
поправка: Если "да", тогда записывать справочник, после того как он (документ) был записан
#24 by axaken
в справочнике что у тебя должно храниться?
#25 by GrayT
Все эти проверки есть. В 3 выжимка из достаточно большого модуля - для тестирования грабель (22, 24) Ты сейчас с кем разговаривал?
#26 by axaken
это вы о чем разговариваете.. просто ничего не меняться и не должно при записи проведении и тд. если первый раз записались ссылки
#27 by goodfella
При записи не записывать справочник, а только установить переменную, что была сделана запись. Например "Модиф=1". А при закрытии проверить Если Модиф=1 тогда ЗаписатьСправочник;
#28 by Парижская фанера
Давайте я кальян куплю, чтоб всем удобнее было...
#29 by GrayT
Какой слог, однако Когда документ проводиться, то форма еще не закрывалась Зачем кальян, вся трава кончилась Всем спасибо. Ответ был очевиден - Надо было сразу записывать документ дважды и не парить мозги себе и людям. Что значит усталость :)
#30 by Прохожий
Сто раз обсуждали: такое нужно делать ПриЗакрытии, а не ПриЗаписи. Работает на 100%.
#31 by Дурочка 1С
Аналогично.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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