Имя: Пароль:
1C
1С v8
Внешняя обработка. Смена вида договора в РКО
,
0 1_C_L_D
 
07.11.13
18:12
Здравствуйте, скорее всего тупой вопрос, но я затупаю... Подскажите, пожалуйста, почему я получаю ошибку при выполнении своей внешней обработки вида - Допускается использовать только договоры вида: "C покупателем", "С комиссионером", "С комитентом".
Проведение документа: Приходный кассовый ордер 00000000003 от 10.01.2013 10:31:52 (Оплата от покупателя)
Договор "Основной договор" с видом "Прочее
не может использоваться в операции "Оплата от покупателя".
Допускается использовать только договоры вида: "C покупателем", "С комиссионером", "С комитентом".


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

            Запрос.УстановитьПараметр("ВидДоговора", Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
            Запрос.УстановитьПараметр("Владелец", ВыборкаРКО.Контрагент);

            Результат = Запрос.Выполнить();

            Если Результат.Пустой() Тогда
            
                ДоговорПокупатель = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
                ДоговорПокупатель.Наименование = "Основной (" + ВыборкаРКО.Контрагент + ")";
                ДоговорПокупатель.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
                ДоговорПокупатель.Владелец = ВыборкаРКО.Контрагент;
                ДоговорПокупатель.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоКоду("643");
                ДоговорПокупатель.Организация = Справочники.Организации.НайтиПоКоду("000000002");
                ДоговорПокупатель.Записать();
                
            Иначе
                
                ДоговорПокупатель = Результат.Выгрузить()[0].Договор;
                
            КонецЕсли;
            
            ТекДок = ВыборкаРКО.Ссылка;
            Док = ТекДок.ПолучитьОбъект();
            Док.ДоговорКонтрагента = ДоговорПокупатель;
            //УстановитьПривилегированныйРежим(Истина);
            Док.Записать(РежимЗаписиДокумента.Проведение);
                        
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры


При этом я меняю на договор ведь с покупателем, ставлю точку перед проведение смотрю, всё меняется, а когда начинает проводить договор возвращается старый...

p.s. знаю что писать в цикле запрос не комильфо, но обработка разовая поэтому не заморачивался)
1 Artful Den
 
07.11.13
18:15
(0) Русским вроде бы языком написано:
2 Artful Den
 
07.11.13
18:15
Договор "Основной договор" с видом "Прочее
не может использоваться в операции "Оплата от покупателя".
Допускается использовать только договоры вида: "C покупателем", "С комиссионером", "С комитентом".
3 Artful Den
 
07.11.13
18:16
Если хочешь засунуть вид договора "прочее" поменяй вид операции РКО на "Прочий расход ден. средств"
4 1_C_L_D
 
07.11.13
18:16
(2) Я вижу какого-типа ошибка, я не понимаю почему он мне обратно меняет на договор который был, если я его в обработке меняю на договор с покупателем...
5 Artful Den
 
07.11.13
18:21
(4) Поменяй договор в табличной части "Расшифровка платежа" документа
6 1_C_L_D
 
07.11.13
18:26
(5) ах ты ж ёжик... Спасибо большое)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн