Ввод на основании

1. user1619761 03.09.21 10:38 Сейчас в теме
Здравствуйте, коллеги. Такая ситуация: есть документ оказание услуг, в котором есть ввод на основании (и выбирается акт,на основании которого оказываются услуги). Как сделать, чтобы при входе в документ, для которого уже существует акт, открывался именно существующий акт, а не создавался новый. Пробовал условие в модуле объекта (Документ АктОказанияУслуг) условие прописывать, не отработало. Подскажите, пж-ста =) .

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

 	Иначе
	
		Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ОказаниеУслуг") 
		и  не ДанныеЗаполнения.Услуги.Количество() = 0 Тогда
		// Заполнение шапки
		Комментарий = ДанныеЗаполнения.Комментарий;
		Ответственный = ПараметрыСеанса.ТекущийПользователь;
		ДокументОснование = ДанныеЗаполнения.Ссылка;
		
		Услуги =  ДанныеЗаполнения.Услуги[0].Услуга;
		
		КонецЕсли;
	КонецЕсли;
	КонецЕсли;
	
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1278383 4 03.09.21 10:43 Сейчас в теме
Переопределить команду ввода на основании и там проверять. Уж точно не в модуле объекта это делать, это же уже сервер
3. slavyan_arena 03.09.21 10:58 Сейчас в теме
(7)
найти по реквизиту в создаваемых, "докОснование" и если найден открыть
если нет то создавать
4. soft_wind 03.09.21 11:03 Сейчас в теме
(1) то что вы описали, это не ввод на основании

Вам, просто, надо форму документа вывести реквизит: ДокументОснования
в виде навигационной ссылки

тогда при открытии Акта, в форме будет видно на основании какого документа введен Акт
и кликая по нав.ссылке можно открыть этот документ основания
5. slavyan_arena 03.09.21 11:07 Сейчас в теме
(4)
тоже вариант )))
я хотел просто идею подать, сам недавно это делал
6. nissti 6 03.09.21 11:42 Сейчас в теме
Есть АктОказанияУслуг, на основании его ОказаниеУслуги. Если надо просто при открытии ОказанияУслуг в поле увидеть АктОказанияУслуг(документ -основание), то да, нужно на форму ОказанияУслуг вывести реквизит документ-основание, добавив ему кнопку открытия, чтоб сразу его открывать.
А если надо при вводе на основании у АктаОказания услуг открывать имеющийся ОказаниеУслуги, то надо тогда дорабатывать ОбработкаЗаполнения у ОказаниеУслуги, открывая имеющийся. В счет-фактурах, насколько помню, так делается.
7. user1619761 03.09.21 12:05 Сейчас в теме
(2)
(3)
(4)
(6) Всем спасибо за подсказки ))
Оставьте свое сообщение

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