Проверка уникальности при создании на основании

1. Nikita890 27.07.16 10:09 Сейчас в теме
Добрый день, создал "документ1", настроил "ввод на основании" из документа "Производство" типовой конфигурации. "Документ1" создается, все необходимые реквизиты и данные переносятся, заполняются.
Вопрос: как можно сделать, чтобы при нажатии на "Создать на основании" из документа "Производство" при уже созданном "Документ1" программа вместо того чтобы создавать такой же док, но с другим номером, выдавала ошибку, что документ на основании уже создан, а лучше бы сразу его открывала?
УНФ 1.5.3.49
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. EMelihoff 27.07.16 10:11 Сейчас в теме
Посмотреть есть ли документ созданный на основании (проведённый) с таким типом и выдать сообщение с ссылкой на документ. Или тебе код написать?
Nikita890; +1 Ответить
5. Nikita890 27.07.16 10:29 Сейчас в теме
(2) EMelihoff, Ну хотя бы скажите каким способом из какого модуля пробовать.Если есть фрагменты кода - тоже буду признателен.
3. Nikita890 27.07.16 10:23 Сейчас в теме
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	Документ1.Ссылка
	               |ИЗ
	               |	Документ.Документ1 КАК Документ1
	               |ГДЕ
	               |	Документ1.ДокументОснование = &ДокументОснование";
	Запрос.УстановитьПараметр("ДокументОснование", ЭтотОбъект.Объект.ДокументОснование);
	Результат = Запрос.Выполнить(); 
	Если не Результат.Пустой()Тогда
		Отказ = Истина ;
	Сообщить("Для документа " + ЭтотОбъект.Объект.ДокументОснование + " Документ1 сформирован!");
КонецЕсли;	
КонецПроцедуры
Показать

Ну у меня вот такой запрос получился, теперь создавать дубль не дает, а заодно не дает зайти в существующий документ)
Это из-за того, что я проверку делаю в обработчике ПриСозданииНаСервере или потому что я ее неправильно делаю?
4. EMelihoff 27.07.16 10:26 Сейчас в теме
а заодно не дает зайти в существующий документ
странно, что не даёт зайти
6. Nikita890 27.07.16 10:31 Сейчас в теме
(4) EMelihoff, Да не дает, даже если просто из списка документов Документ1 пытаешься открыть, срабатывает тот же отказ. Видимо даже когда уже сохраненный документ открываешь, программа форму "создаетНаСервере" - это я про процедуру компиляции.
7. shmeler 27.07.16 10:31 Сейчас в теме
создать подписчик на событие

ОбработкаЗаполнения(<ДанныеЗаполнения>, <ТекстЗаполнения>, <СтандартнаяОбработка>)

в нем написать запрос на поиск документа с номером или ели есть реквизит "ДокументОснование" в "Документ1", то может по нему запрос создать.

по результату запроса
1. Если "Документ1" с входящим в "ДанныеЗаолнения" номером и документом основанием не найден, то ничего не делаем - откроется новый документ1
2. Если найден, то из запроса получаем ссылку "Документ1". А дальше нужно придумать как открыть документ по ссылке из точки выхода этой подписки на событие.)
9. Nikita890 27.07.16 10:34 Сейчас в теме
(7) shmeler, С подписчиком попробую обязательно, спасибо!(8)
8. EMelihoff 27.07.16 10:32 Сейчас в теме
Скажи каким образом не даёт зайти в текущий документ? У создающегося документа не должно быть ссылки (аналог ЭтоНовый() )
10. shmeler 27.07.16 10:38 Сейчас в теме
+ 7

1. добавить общий модуль _Мой_Подписки
2. в нем метод ОбработкаЗаполнения_Документ1(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
3. Создать подписчик в закладке "Общие" _Мой_ОбработкаЗаполнения_Документ1

Далее отладка в локализованном модуле, без возни в модулях документов

Возможно будет необходимо использовать "ДополнительныеСвойства" объекта, для передачи результирующий данных далее.
Nikita890; +1 Ответить
Оставьте свое сообщение

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