Создание документа во время записи другого #741817


#0 by dexxxqqq
Здравствуйте, уважаемые участники. УТ 11. Задача: при записи документа "1" создать документ "2" и ссылку на него проставить в документ "1". Никак не врублюсь: если прописать это в события ПриЗаписи или ПослеЗаписи, то проставить ссылку уже не получается. Что я делаю не так? Цель: указание потерь в документе перемещения и создание документа СписаниеНедостачТоваров автоматически, с дальнейшим редактированием.
#1 by wertyu
нельзя создавать объект при создании другого объекта, сделай обработку
#2 by DJ Anthon
я ожиданием сделал, использовал глобальный список документов, но это не считается хорошим тоном
#3 by Garykom
тебе это на сервере надо делать? в смысле запись документа 1 это интерактивно юзверем или может даже обработкой программно и тоже нужно создать док 2 ?
#4 by RomanYS
почему не ПередЗаписью? лень обработку заполнения писать?
#5 by dexxxqqq
Да, кстати, тоже вариант. Интерактивно юзверем. Он сам создает док 1. Ну а если документ с ошибкой не запишется, а юзверь раздумает потом его записывать? У меня останется созданный моим быдлокодом документ.
#6 by RomanYS
ПередЗаписью вызывается после всех действий пользователя, и пользователь уже не должен влиять на процесс. Если не проходят какие-то проверки - проверяй Отказ.
#7 by RomanYS
а вообще логичнее связывать документы через реквизит в создаваемом документе (+критерий отбора для быстрого поиска) или в регистре сведений
#8 by dexxxqqq
Я и пытаюсь в документе "1" таким образом прописать реквизит (ссылку на документ "2"). Не выходит нифига. Сейчас свой быдлокод покажу.
#9 by dexxxqqq
[code] &НаСервере
#10 by RomanYS
"Не выходит нифига" - конкретнее ошибка, тогда давай текст ошибки Если ошибки нет, но ты не видишь результата - запускай отладчик
#11 by dmpl
А надо наоборот - чтобы документ 2 ссылался на документ 1.
#12 by RomanYS
Кстати, например, в типовой БП2 при записи авансового отчета создаются СФ и подставляются в документ. Можно посмотреть как это делает 1С
#13 by Garykom
веселый код, особенно условие )) а если тип реквизита "Объект.ДокументНедостач" скажем доклюбаяссылка?
#14 by RomanYS
+1 именно про это я и писал в
#15 by dexxxqqq
Не, ошибок нет. "Не выходит нифига" - в момент события ПередЗаписьюНаСервере уже поздняк писать туда ссылку, куда я хочу. Нет, не любая. Только СписаниеНедостачТоваров Аааа.. Понятно.. А как мне его потом найти, чтобы при редактировании документа "1" изменить и документ "2"?
#16 by RomanYS
"ПередЗаписьюНаСервере уже поздняк писать.." - почему? "А как мне его потом найти.." -  посмотри в любой типовой, как ищется и перезаполняется СФ, например, в реализации.
#17 by dexxxqqq
Хороший вопрос. Пока не понимаю почему, но не пишет. Поле потом пустое... Может лыжи не едут... Теперь более внимательно прочитал, про критерии отбора понял. Спасибо.
#18 by RomanYS
"Может лыжи не едут." - отладчик тут точно эффективнее любого форума
#19 by wertyu
новенькое, обычно путевой лист
#20 by dexxxqqq
Отладчик мне ничего интересного не сказал. Вижу, что не сохраняет ссылку и все. Даже на другой документ ставлю ссылку, все равно в Объект.ДокументНедостач она не сохраняется.
#21 by ДенисЧ
хм... Я понимаю, что наивен, как тысяча чертей... Но почему бы объекту не сказать Записать?
#22 by ice777
неверная методология.. нах еще документ городить. пишите в регистры. Потом выбирайте данные, если уж так напрямую данные друг от друга зависят.
#23 by dexxxqqq
Была такая мысль, но ругается Метод объекта не обнаружен (Записать)         Объект.Записать;
#24 by ДенисЧ
Мда.... А откуда ты взял переменную Объект?
#25 by dexxxqqq
Ну да, это мне еще в первых постах сказали. Но почему-то продолжают помогать)))
#26 by dmpl
Если при редактировании документа 1 надо менять и документ 2 - рекомендую просто поправить обработку проведения документа 1, чтобы она делала движения по всем нужным регистрам + печатную форму документа 2. Отдельный документ нужен если данные могут не совпадать, либо нужна связь 1 ко многим.
#27 by dexxxqqq
Мозг с непривычки перегрелся...
#28 by Garykom
Блин да поменяй уже ссылки местами и не ... мозг при записи док1 создавать док2, ссылку на док1 засовывать в док2 при необходимости легко можно выбрать док2 с реквизитом = док1...
#29 by ice777
а не нужен нахрен новый объект в таком случае. нефиг сущности городить. но я не претендую на истину в последней инстанции. недаром документы разные существуют, не только док "СделатьВсё".
#30 by dexxxqqq
Да, уже делаю так. Спасибо))
#31 by wertyu
а лучше сделай сразу обработку
#32 by Drac0
Не так надо Объект.ДокументНедостач = Недостач.Ссылка;
#33 by Drac0
А чтобы не путаться, делай в модуле объекта, передавая допсвойство. А то будешь потом бегать по формам в поисках функционала.
#34 by RomanYS
+ а в типовой лучше в подписку
#35 by dexxxqqq
Так и правда заработало Всем больше спасибо! С праздником!
#36 by mistеr
А весь этот геморрой для того, чтобы сэкономить юзеру 1 нажатие кнопки "создать док2 на основании"?
#37 by ilkoder
нет ничего хуже чем при записи-проведении 1 документа делать что-то с другими, сделайте отдельную кнопку и пишите чего хотите, то потом начнете месяц закрывать документы перепроводить - а они потянут за собой создание-пересоздание или при удалении 1 - чего делать со ссылками на созданные другие.
#38 by Фокусник
пора уже забывать ограничения 7ки как страшный сон ;)
#39 by Фокусник
разрабы типовых с тобой не согласны. Например док.реализация вполне себе автоматически перезаполняет счет-фактуру ;)
#40 by EvgeniuXP
см. базовый курс 1-ый модуль (Гилев)
#41 by mistеr
Перезаполняет -да, но не создает без участия пользователя.
#42 by RomanYS
посмотри авансовый отчет в БП2, закладка "прочие"
#43 by Фокусник
Счет-фактуру автоматом нельзя создавать, т.к. она не каждый раз нужна. В документ нужен каждый раз...
#44 by mistеr
Если КАЖДЫЙ раз без исключений, то отдельный документ вообще не нужен.
#45 by sanja26
перед записью подучаешь ссылку нового,  помещаешь в доп. свойства объекта, а при записи уже создаешь 2й документ со ссылкой из доп. свойств этого.
#46 by Garykom
в нашей провинции такое называют "Через Ширшу в Маймаксу"
#47 by sanja26
ничего плохого в этом нет, кроме того, что получается транзакция в транзакции и при ошибке записи второго документа вфлетит ошибка, никакие обертки в попытки не помогут.
#48 by Фокусник
предлагаешь существенно переписать типовой документ (добавить в него функционал из другого документа)? ИМХО, не рационально...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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