Программно созданные документы не проводятся #487313


#0 by lion366
Добрый день! Есть обработка кот создает документы. После заполнения реквизитов выполняется код Док.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный); Ошибок никак не появляется, но документы не сохраняются и не проводятся Если в форме нажать кнопку "Провести", появляется такая ошибка: "{Документ.БлабЛа.Форма.ФормаДокумента}: Ошибка при установке значения атрибута контекста (Изменил): Документ не выбран    Изменил=глТекущийПользователь; по причине: Документ не выбран" В чем ошибка понять не могу, переменная заполнена, тип совпадает. Помогите кто знает!!!
#1 by Maxus43
точку останова в строке 50 поставь, отладчик врать не будет
#2 by bask
"Изменил" - реквизит документа? переменную с таким именем не объявлял в модуле?
#3 by bask
и вообще побольше бы кода для анализа
#4 by Ненавижу 1С
Ошибок никак не появляется, но документы не сохраняются и не проводятся все делается в попытке/исключении?
#5 by lion366
код передзаписью документа Изменил=глТекущийПользователь; ошибка вылазит когда выполняеться присвоение. "Изменил" это реквизит, тип справочникссылка.пользователи. переменная "глТекущийПользователь" того же типа. реквизит заполнен
#6 by lion366
Попытку не использую, т.к. это в модуле формы. я только обработку трогаю(внешняя) Еще такой момент: если вручную документ создавать то проводится нормально
#7 by bask
а что перед Док.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный); ?
#8 by lion366
там идет заполнение реквизитов, установка даты (прошлой), номера :
#9 by bask
блин, а где Док объявляется и чему присваивается? еще коду, да побольше :)
#10 by ASU_Diamond
а если кнопку не "провести", а "записать" нажать?
#11 by Mitriy
+ "Если в форме нажать кнопку "Провести", появляется такая ошибка:" - откуда форма взялась?
#12 by ASU_Diamond
кстати да, если документы не сохранялись, откуда форма появилась?
#13 by lion366
создаю документ: с записыванием ошибка такаяже А вот так показываю форму: Док.ПолучитьФорму("ФормаДокумента").Открыть;
#14 by Ненавижу 1С
переменная Док после этого не меняется?
#15 by lion366
можно документ не записывать а сразу формы показать, он тогда как новый идет и при закрытии спрашивает сохранять или нет
#16 by ASU_Diamond
на кнопке "провести" запись висит?
#17 by lion366
нет только реквизиты его. все это делается в цикле
#18 by lion366
что это значит? про обработчик проведения?? если да то нет ничего там, только перед записью из 2х строк
#19 by Mitriy
да покажи ты весь код уже... или стесняешься?
#20 by bask
между есть открытие формы? сама переменная док нигде не переопределяется? да вообще много чего может быть.
#21 by lion366
Пока НЕ НаборЗаписей.eof Цикл
#22 by bask
OMG, хоть отформатируй и быстро спрячь метку, а то убьют
#23 by asyr83
~метка1 o_0
#24 by lion366
дааа я не такой ка к все))))
#25 by ASU_Diamond
а после создания документа его записывать не надо?
#26 by lion366
Для удобства:
#27 by akronim
"То, чот ты не такой как все, не означает, что ты на что-то годен". Цитата. Ничего личного.
#28 by lion366
необязательно. Будет в уме
#29 by bask
если без меток, то так:
#30 by Ненавижу 1С
открывается за раз куча форм?
#31 by lion366
но и переделывать все я тоже смысла не вижу. Вот когда наступлю на граблю, тогда и отрекусь от меток
#32 by bask
по ходу так
#33 by bask
к
#34 by lion366
если пользователь хочет, то пусть смотрит, нет так у него галочка есть
#35 by RomaH
у тебя это все в попытке? ошибок не выводит потому как
#36 by RomaH
Попытка
#37 by RomaH
что в процедурах про запись документа? т.е. в модуле дока .. не помню - что-то типа ПередЗаписью ПриЗаписи
#38 by bask
есть ситуации когда ни одно из условий не выполняется в: Если строрг<>Неопределено и строрг.получать тогда ИначеЕсли строрг=Неопределено тогда ?
#39 by hhhh
может дата кривая? Куда-нибудь в 31-й век попадают документы.
#40 by lion366
Было в попытке, но без нее все работает аналогично. Есть только ПередЗаписью в модуле формы: Модуль документа вообще пустой
#41 by ASU_Diamond
Док.ПолучитьФорму("ФормаДокумента").Открыть; на этом разве останавливается выполнение программы?
#42 by Serg_1960
(просто так, любопытно, как автор думает) Что происходит после строки?
#43 by RomaH
мда, алгоритм вообще кривой Пока НЕ НаборЗаписей.eof Цикл что в окне сообщений после выполнения?
#44 by lion366
дата в документ садиться
#45 by lion366
условие работает как надо
#46 by bask
да, я прогнал, сорри
#47 by lion366
идет дальше, просто открываются формы документов
#48 by RomaH
короче - точку останова за записи - и смотреть ссылку в объекте после записи
#49 by lion366
а там вы товарищ срочку добавили Сообщить("Создали новый док");
#50 by lion366
по вашему напишет что создали документ (2 раза в моем случае)
#51 by RomaH
и ? я там две строчки добавил - посмотреть ка в условия заходит
#52 by RomaH
почему два раза?
#53 by lion366
вот тут еще интересный момент. ссылка то пустая, хоть до хоть после. но и когда вручную делаю тоже(хотя тогда проводиться)
#54 by lion366
инт вообще только для того чтобы потом сказать сколько сделали. никакой нагрузки смысловой 2 раза т.к. по условию и по наличию данных. на это тоже не стоит обращать внимания
#55 by RomaH
... ты давай сюда выложи сообщение которое выводится при выполнении кода из
#56 by lion366
это не пойдет мне, т.к. если он не нашел то надо просто показать документ с незаполненным реквизитом(тем который ненашли). а по вашей методике мы это пропустим
#57 by hhhh
вот это шокирует     Если строрг<>Неопределено и строрг.получать тогда то есть получается, если строрг.получать не равно ИСТИНА у тебя вообще получается бред. Документы не создаются, а формы открываются тем не менее.
#58 by lion366
Для идентификатора 2~474~160 не найдена организация //тут еще куча аналогичных строк Создали новый док попытались провести док Создали новый док попытались провести док Для идентификатора 660~295~818 не найдена организация
#59 by lion366
создаем новый док только 2 раза т.к. тока 2 галочки. апочему я In не использую
#60 by lion366
читать внимательней, там сразу за этим переход на метку где все пропущено уже
#61 by hhhh
а как ищешь организацию? Что-то в коде нет этого поиска.
#62 by lion366
для ответ
#63 by ASU_Diamond
до записи ссылка и должна быть пустая, а вот то что после пустая - это уже что-то нездоровое у тебя в модуле документа (не формы документа) точно ничего нет?
#64 by lion366
организация сидит в таблице, в ней я и ищю СтрОрг = Счетчики.Найти(Строка(НаборЗаписей.Fields("ID_Enter").Value),"Идентификатор");
#65 by ASU_Diamond
строрг.получать=Ложь то в строрг=Неопределено не зайдет
#66 by lion366
совсем пусто там
#67 by ASU_Diamond
а модуль проведения тогда где?
#68 by hhhh
сам вчитайся повнимательнее в код: переход на метку у тебя идет только если СтрОрг = Неопределено. Вник?
#69 by bask
пипец, тогда я не прогнал в
#70 by lion366
Тут был касяк, согласен. но он выявлялся только когда мы галочки снимали. а я этого не делал
#71 by lion366
да нашол, но опять же в этом случае этого не случалось
#72 by lion366
есть общий модуль, там событие ПередЗаписьюДокументовПередЗаписью сейчас его ковырну досканально
#73 by ASU_Diamond
пробовал?
#74 by lion366
конечно, на форме есть галочка которая рулит показывать или нет. эффект одинаковый
#75 by lion366
модуль посмотрел, ничего интересного одни если и все проскакиваю
#76 by hhhh
а Основной реквизит формы какой у тебя там задан?
#77 by lion366
непонял что значит основной реквизит. Думаю это наименование а может ли быть касяк изза того что я через 1 переменную прогоняю все документы? т.е. когда второй документ фактически перекрывает первый
#78 by hhhh
нет - это объект документ - другими словами "контекст", который у тебя теряется в строке 50.
#79 by lion366
еще такой момент: после проведения ссылка заполнена и флажок проведен у документа стоит, а в списке документов его нет
#80 by hhhh
это внутри транзакции, а если потом отмена тразакции: Отказ = Истина; то всё херится. Откатывается назад.
#81 by lion366
!!!!!!!!!!!!!!!!!!!ВСЕ!!!!!!!!!!!!!!!!!!!!!!! трабл был в транзакции. ПоЛучаеться я начинал транзакцию, но не заканчивал! перемудрил одним словом
#82 by lion366
Всем участвующим спасибо за содействие. Отдельное спасибо уважаемому hhhh, за наводку на мысль!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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