Имя: Пароль:
1C
1С v8
Правила конвертации, не подставляется договор контрагента в приходную накладную
0 lg2marvel
 
14.06.15
11:32
Добрый день, делаю односторонний обмен с "ДАЛИОН: Управление магазином.ПРО", ред. 1.2 (1.2.26.13) и Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.39.56).
Переношу приходные накладные, при переносе все поля заполняются кроме договора контрагента. Еще момент, у контрагента может быть несколько договоров, договор поставки - основной.

В обработчике "после загрузки" следующее:

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

    Для Каждого ТекСтрока Из МассивСтрок Цикл
        
        НовСтрокаДопРасхода = Параметры.ДопРасходы.Добавить();
        
        СтрокаУслуги = Объект.Услуги[ТекСтрока.НомерСтроки];
        
        НовСтрокаДопРасхода.ПоступлениеОбъект  = Объект;
        НовСтрокаДопРасхода.Дата               = Объект.Дата;
        НовСтрокаДопРасхода.Организация        = Объект.Организация;
        НовСтрокаДопРасхода.ВалютаДокумента    = Объект.ВалютаДокумента;
        НовСтрокаДопРасхода.СуммаВключаетНДС   = Объект.СуммаВключаетНДС;
        НовСтрокаДопРасхода.Контрагент         = ?(ЗначениеЗаполнено(ТекСтрока.Контрагент), ТекСтрока.Контрагент, Объект.Контрагент);
        НовСтрокаДопРасхода.ДоговорКонтрагента = ?(ЗначениеЗаполнено(ТекСтрока.ДоговорКонтрагента), ТекСтрока.ДоговорКонтрагента, Объект.ДоговорКонтрагента);
        НовСтрокаДопРасхода.СтавкаНДС          = СтрокаУслуги.СтавкаНДС;
        НовСтрокаДопРасхода.Сумма              = СтрокаУслуги.Сумма;
        НовСтрокаДопРасхода.СуммаНДС           = СтрокаУслуги.СуммаНДС;
        
        Объект.Услуги.Удалить(СтрокаУслуги);
        
    КонецЦикла;
    
КонецЕсли;

Для Каждого ТекСтрока Из Объект.Товары Цикл
    Документы.ПоступлениеТоваровУслуг.ЗаполнитьОтражениеВУСНВСтрокеТабличнойЧасти(Объект, ТекСтрока);
КонецЦикла;

Для Каждого ТекСтрока Из Объект.Услуги Цикл
    Документы.ПоступлениеТоваровУслуг.ЗаполнитьОтражениеВУСНВСтрокеТабличнойЧасти(Объект, ТекСтрока);
КонецЦикла;

ПлательщикНДС    = УчетнаяПолитика.ПлательщикНДС(Объект.Организация, Объект.Дата);
Если НЕ ПлательщикНДС Тогда
    Объект.НДСВключенВСтоимость    = Истина;
КонецЕсли;

НомерСФ = ПараметрыОбъекта.Получить("НомерСчетаФактуры");
ДатаСФ  = ПараметрыОбъекта.Получить("ДатаСчетаФактуры");

СчетаУчетаВДокументах.ЗаполнитьПередОтображениемПользователю(Объект);

В настройках ПКО документа Поступление товаров и услуг галочки поиск по внутреннему идентификатору источника и продолжить поиск по полям поиска.

В настройках ПКО справочника Контрагенты галочки поиск по внутреннему идентификатору источника и продолжить поиск по полям поиска.

В настройках ПКО справочника ДоговорыКонтрагентов галочки поиск по внутреннему идентификатору источника и продолжить поиск по полям поиска.

Подскажите пожалуйста что в объекте документа приемника доделать чтоб выбирался основной договор?
1 Рэйв
 
14.06.15
11:42
Это писец, товарищи...

    Для Каждого ТекСтрока Из МассивСтрок Цикл
        
        НовСтрокаДопРасхода = Параметры.ДопРасходы.Добавить();

после каждого переноса безусловно добаляем строку.
Лихо, чё...
2 lg2marvel
 
14.06.15
11:48
Осталось по наследству, а принцип "работает - не трожь" не позволил все это удалить, тем более пока не очень понимаю что оно там делает :-(
3 lg2marvel
 
14.06.15
12:18
Попробовал вот так в обработчике После загрузки документа:

Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
    Объект.ДоговорКонтрагента = Объект.Контрагент.ОсновнойДоговорКонтрагента;
КонецЕсли;


В поле договор все также получаю Объект не найден
4 ДенисЧ
 
14.06.15
12:57
Так у тебя договор не перенёсся.
Зарегистрируй его в обмен...
5 lg2marvel
 
14.06.15
13:34
Оказалось что договор не "основной" в приемнике, сделал "основным" - подтянулся
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.