Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ввод только одного документа на основании

Ввод только одного документа на основании
Я
   Bodrug
 
25.07.19 - 12:02
Всем доброго времени суток!
Есть 2 документа: Док1, Док2. Док2 вводится на основании Док1. Нужно реализовать следующее: можно создать только один Док2 на основании Док1. Если уже существует такой документ, нужно открыть его форму и заполнить данными заполнения Док1.
Никак не пойму, как это сделать.
 
 
   Кац
 
1 - 25.07.19 - 12:03
проверять кол-во созданных доков в обработке заполнения
или посмотреть ка сделана связка РТиУ и СФ
   Гипервизор
 
2 - 25.07.19 - 12:04
В один документ добавить реквизит - ссылку на другой документ.
   Bodrug
 
3 - 25.07.19 - 12:06
(1) (2)  с частью проверки на существование Док2 проблем нет - я это сделал в ОбработкеЗаполнения. Вот дальше непонятно как действовать.
   Bodrug
 
4 - 25.07.19 - 12:09
Как сделать открытие сущетсвующего Док2, вместо открытия нового?
   Cyberhawk
 
5 - 25.07.19 - 12:17
(3) В обработке заполнения заполняешь служебный реквизит документа. В форме уже делаешь манипуляции с подменой объекта.
   Cyberhawk
 
6 - 25.07.19 - 12:17
+(5) Или в форме закрываешь текущую и открываешь новую нужную
   Гипервизор
 
7 - 25.07.19 - 12:21
Проверяйте ПередОткрытием.
   DrWatson
 
8 - 25.07.19 - 12:31
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если Объект.Ссылка.Пустая() И ЗначениеЗаполнено(Параметры.Основание) Тогда
    
        СуществующийДок = НайтиДокументНаОсновании(Параметры.Основание);
        
        Если ЗначениеЗаполнено(СуществующийДок) Тогда
        
            ЗначениеВРеквизитФормы(СуществующийДок.ПолучитьОбъект(), "Объект");
        
        КонецЕсли;
    
    КонецЕсли;
    
КонецПроцедуры

&НаСервереБезКонтекста
Функция НайтиДокументНаОсновании(ДокОснование)

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

КонецФункции
   Bodrug
 
9 - 25.07.19 - 12:40
(8) Спасибо большое! Все работает!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.