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 - это какой-то свой документ?

Что бы сделал я - это попробовал бы в эту обработку подсунуть контрагента с одним договором.
Конечно, включил бы отладку - посмотреть, что передаётся в РаботаСДоговорамиКонтрагентовБП.УстановитьДоговорКонтрагента, что там происходит и что возвращается.
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, время: 06:04.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.