внешняя обработка

1. user1599296 26.10.21 10:54 Сейчас в теме
Коллеги, привет, нужна помощь!
Есть обработка создания документа (документ закрытия договоров). Все отрабатывает. Как в колонку обработки на форму вывести ссылку на документ, который эта обработка создает?
Код ниже:
&НаКлиенте
Процедура Заполнить(Команда)
    Если  ЗначениеЗаполнено(Дата) тогда
        Договоры.Очистить();
        ЗаполнитьНаСервере();
    иначе
        Сообщить("Не выбрана дата!");
    КонецЕсли; 
    ЗаполнитьНаСервере();
КонецПроцедуры




&НаСервере
Процедура ЗаполнитьНаСервере()
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    МАКСИМУМ(ЛТ_ГрафикиПлатежейОбороты.ДатаНачисления) КАК ДатаПлатежа,
    |    ЛТ_ГрафикиПлатежейОбороты.ДоговорЛизинга КАК ДоговорЛизинга
    |ПОМЕСТИТЬ ДЛ
    |ИЗ
    |    РегистрНакопления.ЛТ_ГрафикиПлатежей.Обороты(, , , ) КАК ЛТ_ГрафикиПлатежейОбороты
    |
    |СГРУППИРОВАТЬ ПО
    |    ЛТ_ГрафикиПлатежейОбороты.ДоговорЛизинга
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    |    ИБР_СтатусыДоговоровСрезПоследних.Договоры КАК Договоры,
    |    ИБР_СтатусыДоговоровСрезПоследних.Статусы КАК Статусы
    |ПОМЕСТИТЬ ДЛ_Действуют
    |ИЗ
    |    РегистрСведений.ИБР_СтатусыДоговоров.СрезПоследних КАК ИБР_СтатусыДоговоровСрезПоследних
    |ГДЕ
    |    ИБР_СтатусыДоговоровСрезПоследних.Статусы = ЗНАЧЕНИЕ(Справочник.ИБР_СтатусыДоговоров.Действует)
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    |    ДЛ.ДатаПлатежа КАК ДатаПлатежа,
    |    ДЛ.ДоговорЛизинга КАК ДоговорЛизинга,
    |    ДЛ_Действуют.Статусы КАК Статусы
    |ПОМЕСТИТЬ ДЛ_Статус
    |ИЗ
    |    ДЛ_Действуют КАК ДЛ_Действуют
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДЛ КАК ДЛ
    |        ПО (ДЛ.ДоговорЛизинга = ДЛ_Действуют.Договоры)
    |ГДЕ
    |    ДЛ.ДатаПлатежа = НАЧАЛОПЕРИОДА(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ), ДЕНЬ)
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ ПЕРВЫЕ 3
    |    ДЛ_Статус.ДоговорЛизинга КАК ДоговорЛизинга,
    |    ДЛ_Статус.ДатаПлатежа КАК ДатаОкончания
    |ИЗ
    |    ДЛ_Статус КАК ДЛ_Статус
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЛТ_ЗакрытиеДоговоров КАК ЛТ_ЗакрытиеДоговоров
    |        ПО ДЛ_Статус.ДоговорЛизинга = ЛТ_ЗакрытиеДоговоров.Основание
    |ГДЕ
    |    ЕСТЬNULL(ЛТ_ЗакрытиеДоговоров.Ссылка, 0) = 0";
    
    Запрос.УстановитьПараметр("Период",Дата);
    ТЗ = Запрос.Выполнить().Выгрузить();
    ЭтаФорма.Договоры.Загрузить(ТЗ);
    
КонецПроцедуры

&НаКлиенте
Процедура Создать(Команда)
        СоздатьНаСервере();
    
        
 КонецПроцедуры

&НаСервере
Процедура СоздатьНаСервере()
    
    Для каждого Стр из Договоры Цикл
        НовыйДокумент = Документы.ЛТ_ЗакрытиеДоговоров.СоздатьДокумент();
        НовыйДокумент.Дата=КонецМесяца(Дата);
        НовыйДокумент.Основание= Стр.ДоговорЛизинга;
        НовыйДокумент.Записать();
        СсылкаНаНовыйДокумент = Документы.ЛТ_ЗакрытиеДоговоров.ПолучитьСсылку(УникальныйИдентификатор);
        
    КонецЦикла;
    Сообщить("Документы созданы");     
    
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. -AI- 26.10.21 11:21 Сейчас в теме
(1)
Код ниже:

для начала, оформите код как код, а то сливается всё...
(с помощью кнопки </>)
3. starjevschik 26.10.21 11:28 Сейчас в теме
(1)
НовыйДокумент.Записать();
СсылкаНаНовыйДокумент = Документы.ЛТ_ЗакрытиеДоговоров.ПолучитьСсылку(УникальныйИдентификатор);

это нонсенс. Он же записан, у него своя ссылка
НовыйДокумент.Записать();
        СсылкаНаНовыйДокумент = НовыйДокумент.Ссылка;
Стр.Ссылка = СсылкаНаНовыйДокумент; // записали ссылку в строку таблицы

4. user1599296 26.10.21 11:40 Сейчас в теме
(3)
СсылкаНаНовыйДокумент = НовыйДокумент.Ссылка;
Стр.Ссылка = СсылкаНаНовыйДокумент;


ошибка : поле объекта не обнаружено!
5. -AI- 26.10.21 14:01 Сейчас в теме
(4)
СсылкаНаНовыйДокумент

в какой строке?

если во второй, то "стр.Ссылка", замените на "стр.ИмяПоляТаблицыКудаНадоПоложитьНовуюСсылку"
7. user1599296 26.10.21 15:22 Сейчас в теме
(5) Ругается на "СсылкаНаНовыйДокумент = НовыйДокумент.Ссылка;", пишет "Не найдет объект ссылка".
Пробовала использовать СсылкаНаНовыйДокумент = НовыйДокумент.ПолучитьСсылку, в отладчике в значение приходит "<Объект не найден> (43775:80c6bcee7be3149511ec3657443c07e3)".
8. -AI- 26.10.21 16:41 Сейчас в теме
(7) вы каждый раз пишите неполную или недостоверную информацию....
(иначе зачем я задавал бы уточняющий вопрос про место ошибки?)

например. написали не "ссылка", а "сылка" или "ссылку" и т.д., вот оно и ругается..
либо место кода не то... но вам же лень скопипастить всю процедуру....

в общем, а пас..
9. user1599296 26.10.21 16:50 Сейчас в теме
(8) я считаю , что Вам нормально ответила , пас так пас. Спасибо и на этом.
10. Oldsad 27.10.21 03:06 Сейчас в теме
(9) плохо
для нормального разбора ситуации нужен как минимум копи-паст кода и копи паст ошибки
вы не сделали ни того ни другого
6. starjevschik 26.10.21 14:05 Сейчас в теме
(4) наймите программиста, это обойдется намного дешевле, задача не очень сложная, но если сделать ее неправильно, есть шанс наплодить кучу лишних документов и потом в ней потеряться.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот