Имя: Пароль:
1C
1С v8
Обновление реквизитов определенного документа
0 podkovka_
udachi
 
19.03.15
19:21
Необходимо добавить новый документ (паспорт). Открываю форму этого документа, вношу данные, при записи нужно проверить условие: если паспорт у этого человека уже есть в базе, то вношу обновленные данные. Если паспорта нет, просто записываю данные с формы.

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

    КонецЕсли;

КонецПроцедуры


получается если паспорт вносится с новыми данными, обновляются строки и в старом и добавляется еще одна строка ( ну логично потому что запись 2 раза осуществляется).

А мне нужно просто обновить старые данные. новую строку вообще не нужно добавлять. Где мне поправить?  не могу сообразить, метода обновить не могу найти...
1 Dmitrii
 
гуру
19.03.15
19:31
Задача поставлена и  сформулирована неверно.
Меняйте постановку.

PS И завязывайте с тяжелыми наркотиками.
2 DirecTwiX
 
19.03.15
19:34
Почему Документ, а не справочник? Что за НомерЛД?
Но вообще да, бредом попахивает)
3 podkovka_
udachi
 
19.03.15
19:39
номерЛД- номер личного дела, по которому идентифицируется паспорт.

1) из документа личное дело открываю  форму документа паспорт.
2) проверяем условие - есть ли уже паспорт в этом личном деле или нет?
если есть - нужно обновить данные ( ситуация когда человек сменил паспорт)
если нет- вношу новые данные с формы
4 podkovka_
udachi
 
19.03.15
19:40
(1) да, я не специалист в 1С, потому и обращаюсь за помощью, учусь.  Надсмехаться не очень прилично с Вашей стороны
5 podkovka_
udachi
 
19.03.15
19:42
(2) не могу ответить почему я сделала именно так, почему считаете, что лучше использовать справочник?
6 DirecTwiX
 
19.03.15
19:44
(3) Судя по всему, забыла "Отказ = Истина;" в ветке Иначе.

(5) Документы нужны, чтобы двигать регистры.
7 podkovka_
udachi
 
19.03.15
19:51
(6) но тогда  не закрывается открытая форма документа
8 DirecTwiX
 
19.03.15
19:58
Если паспорт открывается из личного дела, то перед открытием ищи существующий паспорт и открывай его форму. Если ничего нет, открывай форму нового документа.
9 podkovka_
udachi
 
19.03.15
20:01
(8) Спасибо большое!