[ОТВЕТИТЬ]
Опции темы
08.02.2016 17:01  
JuliaL
ДоговорКонтрагента= Контрагент.ОсновнойДоговорКонтрагента;
ДоговорКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;

НовДок = Документы.ПриходныйКассовыйОрдер1.СоздатьДокумент();
МассивВидовДоговоров = Новый Массив;
МассивВидовДоговоров.Добавить(ДоговорКонтрагента);
РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента(НовДок.ДоговорКонтрагента, НовДок.Контрагент, НовДок.Организация, МассивВидовДоговоров);
Если НовДок.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
НайденДоговор = Истина;
КонецЕсли;


//
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();

//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
НоваяСтрока.ДоговорКонтрагента = НайденДоговор;


т.е. равно поставить?!.. не соображу совсем..(((((((((((((
 
08.02.2016 17:07  
JuliaL
{ВнешняяОбработка.ЗагрузкаДокументовИзСТЕК.МодульОбъекта(142)}: Преобразование значения к типу Булево не может быть выполнено
Если НайденДоговор Тогда
 
08.02.2016 17:08  
KirillHome
Ещё раз :)
НайденДоговор - булево. Имеет значение "Истина" если РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента нам НЕ вернулась пустая ссылка

Код:
НайденДоговор = Ложь;
....
....
РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента(НовДок.ДоговорКонтрагента,	НовДок.Контрагент, НовДок.Организация, МассивВидовДоговоров);
Если НовДок.ДоговорКонтрагента <> Справочники.ДоговорыКонтрагентов.ПустаяСсылка() ТОГДА
	НайденДоговор = Истина;
КонецЕсли;
Т.е. ссылка на основной (единственный) договор с контрагентом содержится в НовДок.ДоговорКонтрагента.
А вот если с контрагентом несколько договоров, и ни один из них не является главным, то тогда будет
Код:
НайденДоговор = Ложь;
И дальше уже это можно обрабатывать (к примеру - создавать договор с контрагентом, выбирать первый (последний?) из всех договоров и т.д.).
 
08.02.2016 17:18  
JuliaL
ДоговорКонтрагента = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;

НовДок = Документы.ПриходныйКассовыйОрдер1.СоздатьДокумент();
МассивВидовДоговоров = Новый Массив;
МассивВидовДоговоров.Добавить(ДоговорКонтрагента);
РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента(НовДок.ДоговорКонтрагента, НовДок.Контрагент, НовДок.Организация, МассивВидовДоговоров);
Если НовДок.ДоговорКонтрагента <> Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
НайденДоговор = Истина
Иначе
НайденДОговор = Ложь;
КонецЕсли;



//
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();

//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
Если НайденДоговор Тогда
НоваяСтрока.ДоговорКонтрагента=НовДок.ДоговорКонтрагента
Иначе
НоваяСтрока.ДоговорКонтрагента= "";
КонецЕсли;



Сделала уже итак.. Ошибок нет, но и основной договор не находит.. т.е. получается все ЛОжь(( я уже ничего не понимаю.. Помогите, пжл.. все сроки горят.. хоть релиз откатывай..
 
08.02.2016 17:30  
KirillHome
Первое - у данного контрагента есть хоть один договор по виду договора "С покупателем"?
Второе - сколько у данного контрагента есть договоров по виду "С покупателем"?
Третье - у данного контрагента есть какой-либо договор, который указан как основной по виду договора - "С покупателем"?

Т.е. что может быть:
1) Нет договора совсем
2) Договоров несколько (больше одного), и нет основного
В этом случае, конечно, нам не вернётся договор.

Если договор один (без разницы - указан ли он как основной или нет), или договоров несколько, но есть основной - то обязан вернуться.

ПриходныйКассовыйОрдер1 - это какой-то свой документ?

Что бы сделал я - это попробовал бы в эту обработку подсунуть контрагента с одним договором.
Конечно, включил бы отладку - посмотреть, что передаётся в РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента, что там происходит и что возвращается.
 
"Спасибо" KirillHome от:
08.02.2016 17:34  
JuliaL
ДОговор с покупателем есть 100% и основной тож.. но видит он((
 
08.02.2016 17:37  
KirillHome
Выложи обработку, попробую посмотреть, понять (хотя новый вид документа - ПриходныйКассовыйОрдер1 - меня смущает).
 
08.02.2016 17:55  
KirillHome
Так, стоп!
А где после
Код:
НовДок = Документы.ПриходныйКассовыйОрдер1.СоздатьДокумент();
происходит объявление НовДок.Контрагент и НовДок.Организация???
 
08.02.2016 18:18  
JuliaL
а как выложить обработку? Почту?
 
08.02.2016 18:24  
JuliaL
Все спасибо!!!!!!!!!!!!!!!!!!)))))))) Новдок не надо было второй раз создавать.. у меня ж было там НовыйДОкумент.Создать))))

МассивВидовДоговоров = Новый Массив;
МассивВидовДоговоров.Добавить(ДоговорКонтрагента);
НайденДОговор = Ложь;

РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента(НовыйДокумент.ДоговорКонтрагента, НовыйДокумент.Контрагент, НовыйДокумент.Организация, МассивВидовДоговоров);
Если НовыйДокумент.ДоговорКонтрагента <> Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
НайденДоговор = Истина;
КонецЕсли;



//
НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();

//НоваяСтрока.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
Если НайденДоговор=Истина Тогда
НоваяСтрока.ДоговорКонтрагента=НовыйДокумент.ДоговорКонтрагента;
//Иначе
// НоваяСтрока.ДоговорКонтрагента= НовДок.ДоговорКонтрагента.ВидДоговора.Пустая();
КонецЕсли;
 
 


Опции темы



Часовой пояс GMT +3, время: 17:22.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.