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