Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Открыть форму созданного и существующего документа по ДокументуОснования          
Constantus Подменю пользователя
сообщение 14.06.19, 11:02
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, Форумчане!
1с8.2.6, БСП, самопис, УФ

В Документе есть кнопка, которая должна создавать дополнительный другой новый документ с заполнением и открытием вновь созданного документа, либо в случае, если такой документ уже существует, просто открыть его форму...

&НаКлиенте
Процедура УведомитьЗаказчикаОГотовностиСтелы(Команда)
    СоздатьОткрытьДокументУведомления();
    ОткрытьФорму("Документ.УведомлениеЗаказчикаОГотовностиСтелы.ФормаОбъекта", Новый Структура("ДокументОснование", Объект.Ссылка),ЭтотОбъект);
КонецПроцедуры


&НаСервере
Процедура СоздатьОткрытьДокументУведомления()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    УведомлениеЗаказчикаОГотовностиСтелы.Ссылка
        |ИЗ
        |    Документ.УведомлениеЗаказчикаОГотовностиСтелы КАК УведомлениеЗаказчикаОГотовностиСтелы
        |ГДЕ
        |    УведомлениеЗаказчикаОГотовностиСтелы.ДокментОснование = &ДокментОснование";
    
    Запрос.УстановитьПараметр("ДокментОснование", Объект.Ссылка);

    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
        Выборка = Результат.Выбрать();
        Выборка.Следующий();    
        ДокУведомление = Выборка.Ссылка;
    Иначе
        ДокУведомление = Документы.УведомлениеЗаказчикаОГотовностиСтелы.СоздатьДокумент();
        ДокУведомление.Дата = ТекущаяДата();
        ДокУведомление.Автор = ПараметрыСеанса.ТекущийПользователь;
        ДокУведомление.ДокментОснование = Объект.Ссылка;
        ДокУведомление.Заказчик = Объект.Заказчик;
        ДокУведомление.Записать();
    КонецЕсли;    
    
КонецПроцедуры


Докмуент создается, документОснование заполняется... Подскажите как правильно открывать формы для вновь созданных документов и для уже существующих...
Никак этот параметр открытия подобрать не могу...



fly Подменю пользователя
сообщение 14.06.19, 11:47
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

Constantus @ Сегодня, 12:02 * ,


&НаКлиенте
Процедура УведомитьЗаказчикаОГотовностиСтелы(Команда)
    СоздатьОткрытьДокументУведомления();
    ОткрытьФорму("Документ.УведомлениеЗаказчикаОГотовностиСтелы.ФормаОбъекта", ВыбранныйДокумент);
КонецПроцедуры;



&НаСервере
Процедура СоздатьОткрытьДокументУведомления()
...
...
...
    Если НЕ Результат.Пустой() Тогда
        Выборка = Результат.Выбрать();
        Пока Выборка.Следующий() Цикл
                ВыбранныйДокумент = Выборка.Ссылка.ПолучитьОбъект();
        КонецЦикла;
    Иначе
        ДокУведомление = Документы.УведомлениеЗаказчикаОГотовностиСтелы.СоздатьДокумент();
        ДокУведомление.Дата = ТекущаяДата();
        ДокУведомление.Автор = ПараметрыСеанса.ТекущийПользователь;
        ДокУведомление.ДокментОснование = Объект.Ссылка;
        ДокУведомление.Заказчик = Объект.Заказчик;
        ДокУведомление.Записать();

        ВыбранныйДокумент = ДокУведомление;
    КонецЕсли;    
КонецПроцедуры


fly @ Сегодня, 12:24 * ,
или

 Пока Выборка.Следующий() Цикл
                ВыбранныйДокумент = Выборка.Ссылка;
КонецЦикла;




ВыбранныйДокумент = ДокУведомление.Ссылка;


вроде как надо ссылку на объект передать, а не сам объект

Спасибо сказали: Constantus,

Vladal Подменю пользователя
сообщение 20.06.19, 8:00
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Цитата(fly @ 14.06.19, 12:47) *
вроде как надо ссылку на объект передать, а не сам объект

Да.
Я иногда делаю так:
(сферический пример в вакууме)
&НаСервере
Функция СоздатьРТУНаСервере()
    ДокОбъект = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    ДокОбъект.Дата = ТекущаяДата();
    ДокОбъект.Записать();
    Возврат ДокОбъект.Ссылка;
КонецФункции

&НаКлиенте
Процедура СоздатьРТУ(Команда)
    СсылкаНаДокумент = СоздатьРТУНаСервере();
    ОткрытьЗначение(СсылкаНаДокумент);
КонецПроцедуры

Спасибо сказали: Aksiniya,

Aksiniya Подменю пользователя
сообщение 02.06.23, 10:56
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vladal @ 20.06.19, 9:00) *
Да.
Я иногда делаю так:
(сферический пример в вакууме)
&НаСервере
Функция СоздатьРТУНаСервере()
    ДокОбъект = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    ДокОбъект.Дата = ТекущаяДата();
    ДокОбъект.Записать();
    Возврат ДокОбъект.Ссылка;
КонецФункции

&НаКлиенте
Процедура СоздатьРТУ(Команда)
    СсылкаНаДокумент = СоздатьРТУНаСервере();
    ОткрытьЗначение(СсылкаНаДокумент);
КонецПроцедуры



Спасибо за пример!
В УФ сработало вместо ОткрытьЗначение(СсылкаНаДокумент); -- ПоказатьЗначение(,ССылкаНаДокумент);

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 14:31
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!