Имя: Пароль:
1C
1C 7.7
v7: Договор-основание в комплексной
0 lg2marvel
 
25.09.13
16:00
Добрый день, в обработке выгружаю данные в документ счет, при заполнении  столкнулся с проблемой. У документа нет реквизита Договор как, например, в расходных накладных. Есть строка на форме документа: глСтрокаОснование(Контекст,Заказ,"")

При изменении контрагента договор меняется:
Процедура ИзмКонтрагент() // Процедура при выборе Контрагента в докумнете
    Если Контрагент.Выбран()=1 Тогда                                      
        Если СтарыйКонтрагент <> Контрагент Тогда
            // изменили Контрагента
            // очистим заказ
            Заказ = ПолучитьПустоеЗначение("Документ.Договор");
            
            Если Фирма = Контрагент.БазДоговор.Фирма Тогда
                Если глВосстановитьЗначение(,"ПодставлятьОсновнойДоговор") = Да Тогда
                    Если фВключенаТорговля = Да Тогда
                        // включена торговля - в зависимости от константы
                        Заказ = Контрагент.БазДоговор;
                    ИначеЕсли Контрагент.ВидВзаиморасчетов = Перечисление.ВидыВзаиморасчетов.ПоДоговорам Тогда
                        // в противном случае - в зависимости от вида взаиморасчетов контрагента
                        Заказ = Контрагент.БазДоговор;
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
            
            Если Заказ.Выбран() = 1 Тогда
                Если спВидТорговли.Принадлежит(Заказ.ВидТорговли)=0 Тогда
                    глКомментарий(Шаблон("Для контрагента установлен договор по умолчанию с недопустимым видом торговли [Заказ.ВидТорговли]! Договор не заполнен."),1);
                    Заказ = 0;
                ИначеЕсли ЧтоПродаем <> Перечисление.ЧтоПродаем.Товары Тогда
                    // приходуем не товары (при приходовании товаров может быть любой вид торговли)
                    Если Заказ.ВидТорговли = Перечисление.ВидыТорговли.Кредит Тогда // кредит можно выбирать только в торговом счете
                        глКомментарий(Шаблон("Для контрагента установлен договор по умолчанию с недопустимым видом торговли [Заказ.ВидТорговли]! Договор не заполнен."),1);
                        Заказ = 0;
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        
            Если ПустоеЗначение(Контрагент.КатегорияЦен) = 0 Тогда
                КатегорияЦен = Контрагент.КатегорияЦен;
            Иначе    
                КатегорияЦен = глВосстановитьЗначение(,"ОсновнаяКатегорияЦен");
            КонецЕсли;                                      
            ИзмСрокРезерва();
        КонецЕсли;
    Иначе
        //Не выбран Контрагент - не имеет смысла показывать глубину и дату оплаты и заказ
        Заказ = ПолучитьПустоеЗначение("Документ.Договор");          
        ВидТорговли = Перечисление.ВидыТорговли.Предоплата;
    КонецЕсли;
    // Формирует и показывает дату оплаты
    СтарыйКонтрагент = Контрагент;
    ИзмСрокРезерва();
КонецПроцедуры    

Как выбрать договор в обработке?
1 lg2marvel
 
25.09.13
16:03
ДокСч.Контрагент = СтруктураФайла.Получить("Контрагент");                
                Если (глВосстановитьЗначение(,"ПодставлятьОсновнойДоговор") = Да)
                    и (Константа.БазФирма = ДокСч.Контрагент.БазДоговор.Фирма) Тогда
                    Заказ = ДокСч.Контрагент.БазДоговор;
                    
                Иначе
                    ДокСч.Договор = ПолучитьПустоеЗначение("Документ.Договор");
                КонецЕсли;

В Заказ получаю нужный договор. Как поместить его на форму?
2 lg2marvel
 
25.09.13
16:42
Вопрос закрыт.

ДокСч.Заказ = ДокСч.Контрагент.БазДоговор;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший