Имя: Пароль:
1C
1С v8
Заменить реквизиты документа с помощью запроса
0 nany11
 
05.01.15
13:13
Всем привет.

Подскажите как правильно написать обработку, найти документ и в нём заменить реквизиты.

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

        Запрос.УстановитьПараметр("Покупатель", Док.Контрагент);
        Запрос.УстановитьПараметр("Документ", Док.Номер);
        Запрос.УстановитьПараметр("Организация", Организация);
        
        Результат = Запрос.Выполнить();
        
        Выборка = Результат.Выбрать();
        
        Пока Выборка.Следующий() Цикл
            
            Док.ДатаВходящегоДокумента = Выборка.ДатаДокументаОплаты;
            Док.НомерВходящегоДокумента = Выборка.НомерДокументаОплаты;
            
            
            Сообщение = Новый СообщениеПользователю();
            Сообщение.Текст = "Сейчас будет скопированы данные из " + Выборка.Регистратор + " по контрагенту: " + Выборка.Покупатель + " по договору: " + Выборка.ДоговорКонтрагента;
            Сообщение.УстановитьДанные(ЭтотОбъект);
            Сообщение.Сообщить();
            Док.Записать();
        КонецЦикла;
1 Rie
 
05.01.15
13:18
(0) "Чтение - вот лучшее мучение" (пословица)

Пока Выборка.Следующий() Цикл
    Док = Выборка.Регистратор.ПолучитьОбъект();
    // и теперь издевайся над ним
КонецЦикла;
2 Ник второй
 
05.01.15
13:20
(1) Там еще и запрос кривоват.
3 Rie
 
05.01.15
13:22
(2) А это уже будет следующая ветка :-)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс