Имя: Пароль:
1C
 
Помогите с переносом из 8 в 7.7
0 program345
 
31.10.16
10:40
ДОбрый день!
Из ут 10 делаю перенос в 1с 7.7.
Документ поступление товаров и услуг.
В 8-ке он проведенный, в 7.7 после переноса - нет.

Процедура ПоступлениеТовара(Док)
    ПН=V7.CreateObject("Документ.ПоступлениеТоваров");
    СВРН=V7.CreateObject("Справочник.ВариантыРасчетаНалогов");
    БСЧЕТ=V7.CreateObject("Счет.Основной");
    Пн= ПолучитьДокумент(Док,"ПоступлениеТоваров",Истина);
    Пн.НомерДок=Док.Номер;
    Пн.ДатаДок=Док.Дата;
    ПН.Контрагент=оКонтрагент(Док.Контрагент);
    Если ЗначениеЗаполнено(Док.КонтрагентТранзит) тогда
        ПН.КонтрагентТранзит=оКонтрагент(Док.КонтрагентТранзит);
    КонецЕсли;
    ПН.Договор=оДоговор(Док.ДоговорКонтрагента);
    ПН.ВидПоступления=1;
    Если  док.ВидПоступления=Перечисления.ВидыПоступленияТоваров.НаСклад Тогда
        ПН.МестоХранения=оСклад(Док.СкладОрдер);
    Иначе
        ПН.МестоХранения=оСклад(Док.СкладОрдер.Склад);
    КонецЕсли;
    ПН.курс=1;
    ПН.ВерсияОбъекта=V7.Константа.НомерРелиза;
    Если Док.СуммаВключаетНДС Тогда
        стрНалоги="НДС в сумме";
    Иначе
        стрНалоги="НДС сверху";
    КонецЕсли;
    СчетФактура=НайтиПодчиненныйДокумент(Док, "СчетФактураПолученный");
    Если СчетФактура<>Неопределено Тогда
        Пн.ДатаНомерСчетаФактуры=строка(СчетФактура.НомерВходящегоДокумента) +" от "+Формат(СчетФактура.ДатаВходящегоДокумента,"ДЛФ=Д");
    КонецЕсли;
    ПН.UUID=строка(Док.Ссылка.УникальныйИдентификатор());
    ЗаписатьПровестиДокумент(ПН,Док);
КонецПроцедуры




И соответсвенно:



Функция ЗаписатьПровестиДокумент(ДокументV7,ДокументV8)
        
    Попытка
        ДокументV7.Записать();
    Исключение
        Сообщить(" ***************** Отчет об ошибке записи ***************************** ");
        Сообщить("Документ v8 - "+ДокументV8+"    Номер документа- "+ДокументV8.Номер+"   Дата документа-"+ДокументV8.Дата);
        Сообщить("Документ v7 - "+ДокументV7.Вид()+"    Номер документа- "+ДокументV7.НомерДок+"   Дата документа-"+ДокументV7.ДатаДок);
        Форма=ДокументV8.ПолучитьФорму("ФормаСписка");
        Форма.Открыть();
        Форма.ЭлементыФормы.Список.ТекущаяСтрока=ДокументV8;
        Сообщить(" ***************** Описание ошибки ***************************** ");
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

    Если ДокументV8.ПометкаУдаления Тогда
        ДокументV7.Удалить(0);
    Иначе
        ДокументV7.СнятьПометкуУдаления();
        Если ДокументV8.Проведен Тогда
            ДокументV7.Провести();
        Иначе
            Если ДокументV7.Проведен()=1 Тогда
                ДокументV7.СделатьНеПроведенным();
            КонецЕсли;
        КонецЕсли;
    конецЕсли;
    состояние(ДокументV8);    
КонецФункции

Как победить?
1 DrShad
 
31.10.16
10:48
а что победить нужно?
2 program345
 
31.10.16
10:54
(1) почему-то документ В 8-ке проведенный, в 7.7 после переноса - нет. Проводишь его вручную, после переноса он становится непроведенный.
3 HawkEye
 
31.10.16
10:55
(2) а отладчик что говорит?
4 program345
 
31.10.16
10:57
(3) в том то и дело, что отладчик на этом месте https://s.mail.ru/5oVH/C1YyFXLic
говорит что метод Провести() не обнаружен. (?!?)
5 HawkEye
 
31.10.16
11:04
(4) попробуй: .Провести(1,"");
хотя конечно странно...

в отладчике ДокументV7 - чему равен?
6 program345
 
31.10.16
11:07
(5) благодарю, попробую.
7 DrShad
 
31.10.16
11:20
при работе по ОЛЕ необходимо в 7-ке заполнять все параметры методов
8 DrShad
 
31.10.16
11:21
даже если они пустые, то хотябы запятые ставить
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.