Всем привет, в процедуре перед записью нужна уже ссылка, для того, чтобы отослать письмо с ссылкой на этот док. Пробовала использовать различные варианты УстановитьСсылкуНового, ПолучитьСсылку, но все равно ссылка пустая.
Подскажите, что не так делаю.
Спасибо!
---
в процедуре перед записью нужна уже ссылка
(18) СсылкаНового = Документы.МойДок.ПолучитьСсылку();
        ДокументОбъект = Документы.МойДок.СоздатьДокумент();
        ДокументОбъект.УстановитьСсылкуНового(СсылкаНового);
        СсылкаНаДокумент = ДокументОбъект.ПолучитьСсылкуНового();
ТекстПисьма=Обращение+"
                |Ссылка на документ: " + ПолучитьНавигационнуюСсылку(СсылкаНаДокумент) + "
Вот это ничего не говорит?
Вот код в обработчике модуля объекта ПередЗаписью:

```1c
    НужнаяСсылка = Ссылка;
    Если НужнаяСсылка.Пустая() Тогда
    ЭтотОбъект.УстановитьСсылкуНового(Документы.МойДок.ПолучитьСсылку());
    НужнаяСсылка = ПолучитьСсылкуНового();
    КонецЕсли;
    ТекстПисьма=Обращение+"
    |Ссылка на документ: " + ПолучитьНавигационнуюСсылку(НужнаяСсылка);
```
:
---
Нельзя отослать письмо после записи документа?
---
Можно, но я хочу попробовать так. Если это возможно.
---
Нет. Иначе не будет ситуации, когда при ошибке записи уйдет письмо с ссылкой на несуществующий документ.
---
вероятно, после записи это единственный верный вариант, но тога логика будет не женской
надо сначала отослать письмо со ссылкой, а потом откатить запись пусть мучаются )
---
в процедуре перед записью нужна уже ссылка
(18) СсылкаНового = Документы.МойДок.ПолучитьСсылку();
        ДокументОбъект = Документы.МойДок.СоздатьДокумент();
        ДокументОбъект.УстановитьСсылкуНового(СсылкаНового);
        СсылкаНаДокумент = ДокументОбъект.ПолучитьСсылкуНового();
ТекстПисьма=Обращение+"
                |Ссылка на документ: " + ПолучитьНавигационнуюСсылку(СсылкаНаДокумент) + "
Вот это ничего не говорит?
Вот код в обработчике модуля объекта ПередЗаписью:

```1c
    НужнаяСсылка = Ссылка;
    Если НужнаяСсылка.Пустая() Тогда
    ЭтотОбъект.УстановитьСсылкуНового(Документы.МойДок.ПолучитьСсылку());
    НужнаяСсылка = ПолучитьСсылкуНового();
    КонецЕсли;
    ТекстПисьма=Обращение+"
    |Ссылка на документ: " + ПолучитьНавигационнуюСсылку(НужнаяСсылка);
```
:
---
Все, так работает. Спасибо!
---
Если уж так хочется, то может получится присвоить документу заранее сформированный ГУИД?
---
Я так пробовала, но тоже пустая ссылка

```1c
    UID = Новый УникальныйИдентификатор();
    СсылкаНаНовый = Документы.МойДок.ПолучитьСсылку(UID);
    УстановитьСсылкуНового(СсылкаНаНовый);
```
---
```1c
    СсылкаНового = Документы.ПоступлениеНаРасчетныйСчет.ПолучитьСсылку();
    ДокументОбъект = Документы.ПоступлениеНаРасчетныйСчет.СоздатьДокумент();
    ДокументОбъект.УстановитьСсылкуНового(СсылкаНового);
    СсылкаНаДокумент = ДокументОбъект.ПолучитьСсылкуНового();
```

СсылкаНаДокумент будет непустая. Почему так - не спрашивайте. 1С, одно слово ;)
---
СсылкаНового = Документы.ПоступлениеНаРасчетныйСчет.ПолучитьСсылку();
Подскажите, а ничего, что документ уже в процессе создания?
---
а вы попоробуйте.
---
Очень долго думает, в итоге ссылку формирует, но когда я хочу перейти по ней то объект не находится..
---
Ну так документ еще не записан. Чего вы еще ожидаете?
При записи документу будет присвоена эта ссылка.
---
При записи документу будет присвоена эта ссылка.
Нет, документ уже записан. Я его закрываю иду в почту, копирую ссылку, перехожу по ней и там нет находится документ.
---
куда перейти-то ? в соседний вагон если только Ж). Это ссылка (УИД по факту) объекта, который только создан в памяти, БД ещё ничего про неё не знает.
---
Переход по ссылке, знаете в 1С есть такое?
Из моего первого сообщения - "в процедуре перед записью нужна уже ссылка, для того, чтобы отослать письмо с ссылкой на этот док"
Документ с ссылкой отсылается. Потом я копирую ссылку, всталяю из буфера и осуществляю переход по ссылке. И выдается сообщение - объект не найден.
---
Из моего первого сообщения - "в процедуре перед записью нужна уже ссылка, для того, чтобы отослать письмо с ссылкой на этот док"

Покажите код, что именно вы в письмо вставляете. Какую ссылку?
---
```1c
    СсылкаНового = Документы.МойДок.ПолучитьСсылку();
    ДокументОбъект = Документы.МойДок.СоздатьДокумент();
    ДокументОбъект.УстановитьСсылкуНового(СсылкаНового);
    СсылкаНаДокумент = ДокументОбъект.ПолучитьСсылкуНового();
    ТекстПисьма=Обращение+"
    |Ссылка на документ: " + ПолучитьНавигационнуюСсылку(СсылкаНаДокумент) + "
```
---
Если документ все таки записывается, в качестве отладки - сформируйте после записи еще одно письмо, в котором в качестве ссылки на документ будет:

```1c
    Ссылка на документ: " + ПолучитьНавигационнуюСсылку(ДокументОбъект.Ссылка) + "
```

Будут ли отличия в навигационных ссылках письма до записи и после?
---
Ссылка на документ: " + ПолучитьНавигационнуюСсылку(ДокументОбъект.Ссылка)
Там пустая ссылка.
Извините, не прочитала, что после записи.. После записи я могу сама в предприятии получить ссылку и она отличается от той, что в письме.
---
После записи я могу сама в предприятии получить ссылку и она отличается от той, что в письме.
Приведите 3 варианта навигационной ссылки:
1 - установленную до записи
2 - после записи
3 - полученную вручную в предприятии
Тогда скорее всего можно будет сказать, что не так в 1 варианте.
---
1. в процедуре ПередЗаписью ссылка, оканчивается на одно число
2. в процедуре ПриЗаписи другая ссылка оканчивается на число больше на 1
3. тоже самое, что и 2.
---
потому, что в ПередЗаписью ссылку устанавливали для нового "левого" документа, который ничего общего с текущим документом не имеет. Вот новый "левый" документ и получил новую ссылку.
Затем при записи текущего документа была получена новая ссылка, которая и отличается от ранее полученной ссылки для "левого" документа.
А так как в итоге новый "левый" документ не был записан, то и ссылки такой в базе нет.
---
Делала по совету sergathome, выше пример кода был. Еще переспросила, а нормально, что записывается 2 разных документа.. Ок, буду переделывать.
---
Поддержу (31) =)
Приведите полный код и сообщите где он выполняется.
Если в модуле объекта документа в ПередЗаписью - то почему не работает написано в (33).
---
СсылкаНового = Документы.ПоступлениеНаРасчетныйСчет.ПолучитьСсылку(); КАРЛ!!!
Какой МОЙДОК ?
---
А в чем проблема?
Какой документ создается, для того и получается ссылка.
---
проблема в том, что так не работает, очевидно
---
Очевидно, что ТС просто заменил имя документа на МойДок.
---
или нет ;))

вобщем без полного куска не поймёшь. что-то она неправильно делает.
---
По идее в письмо вы должны вставлять навиганционную ссылку.
Примерно так.

```1c
    СсылкаНового = Документы.ПоступлениеНаРасчетныйСчет.ПолучитьСсылку();
    ДокументОбъект = Документы.ПоступлениеНаРасчетныйСчет.СоздатьДокумент();
    ДокументОбъект.УстановитьСсылкуНового(СсылкаНового);
    СсылкаНаДокумент = ДокументОбъект.ПолучитьСсылкуНового();

    СсылкаДляПочты = ПолучитьНавигационнуюСсылку(СсылкаНаДокумент);
```

А как у вас?
---
|Ссылка на документ: " + ПолучитьНавигационнуюСсылку(СсылкаНаДокумент)
---
У неё отсутствует ДокументОбъект.Записать(). Её зуб даю. ыыыы
И в первой же строке ошибка....
---
Не записан документ = его нет в базе данных.
Ссылка = ключ в таблице базы данных.

Нетрудно увидеть, что у незаписанного документа нет ссылки, т.к. это еще не документ, а только форма.
Ошибка в постановке задачи.
---
у незаписанного документа нет ссылки
Ее можно установить.
---
а как это сделать? Пробовала по-разному. Но или нет ссылки или она не рабочая..