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