Приветствую, Форумчане!
1с8.2.6, БСП, самопис, УФ
В Документе есть кнопка, которая должна создавать дополнительный другой новый документ с заполнением и открытием вновь созданного документа, либо в случае, если такой документ уже существует, просто открыть его форму...
&НаКлиенте
Процедура УведомитьЗаказчикаОГотовностиСтелы(Команда)
СоздатьОткрытьДокументУведомления();
ОткрытьФорму("Документ.УведомлениеЗаказчикаОГотовностиСтелы.ФормаОбъекта", Новый Структура("ДокументОснование", Объект.Ссылка),ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура СоздатьОткрытьДокументУведомления()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УведомлениеЗаказчикаОГотовностиСтелы.Ссылка
|ИЗ
| Документ.УведомлениеЗаказчикаОГотовностиСтелы КАК УведомлениеЗаказчикаОГотовностиСтелы
|ГДЕ
| УведомлениеЗаказчикаОГотовностиСтелы.ДокментОснование = &ДокментОснование";
Запрос.УстановитьПараметр("ДокментОснование", Объект.Ссылка);
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
ДокУведомление = Выборка.Ссылка;
Иначе
ДокУведомление = Документы.УведомлениеЗаказчикаОГотовностиСтелы.СоздатьДокумент();
ДокУведомление.Дата = ТекущаяДата();
ДокУведомление.Автор = ПараметрыСеанса.ТекущийПользователь;
ДокУведомление.ДокментОснование = Объект.Ссылка;
ДокУведомление.Заказчик = Объект.Заказчик;
ДокУведомление.Записать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УведомитьЗаказчикаОГотовностиСтелы(Команда)
СоздатьОткрытьДокументУведомления();
ОткрытьФорму("Документ.УведомлениеЗаказчикаОГотовностиСтелы.ФормаОбъекта", ВыбранныйДокумент);
КонецПроцедуры;
&НаСервере
Процедура СоздатьОткрытьДокументУведомления()
...
...
...
Если НЕ Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
ВыбранныйДокумент = Выборка.Ссылка.ПолучитьОбъект();
КонецЦикла;
Иначе
ДокУведомление = Документы.УведомлениеЗаказчикаОГотовностиСтелы.СоздатьДокумент();
ДокУведомление.Дата = ТекущаяДата();
ДокУведомление.Автор = ПараметрыСеанса.ТекущийПользователь;
ДокУведомление.ДокментОснование = Объект.Ссылка;
ДокУведомление.Заказчик = Объект.Заказчик;
ДокУведомление.Записать();
ВыбранныйДокумент = ДокУведомление;
КонецЕсли;
КонецПроцедуры
Пока Выборка.Следующий() Цикл
ВыбранныйДокумент = Выборка.Ссылка;
КонецЦикла;
ВыбранныйДокумент = ДокУведомление.Ссылка;
&НаСервере
Функция СоздатьРТУНаСервере()
ДокОбъект = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ДокОбъект.Дата = ТекущаяДата();
ДокОбъект.Записать();
Возврат ДокОбъект.Ссылка;
КонецФункции
&НаКлиенте
Процедура СоздатьРТУ(Команда)
СсылкаНаДокумент = СоздатьРТУНаСервере();
ОткрытьЗначение(СсылкаНаДокумент);
КонецПроцедуры
&НаСервере
Функция СоздатьРТУНаСервере()
ДокОбъект = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ДокОбъект.Дата = ТекущаяДата();
ДокОбъект.Записать();
Возврат ДокОбъект.Ссылка;
КонецФункции
&НаКлиенте
Процедура СоздатьРТУ(Команда)
СсылкаНаДокумент = СоздатьРТУНаСервере();
ОткрытьЗначение(СсылкаНаДокумент);
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua