8.х Ошибка при переносе данных с 8.1 в 8.0

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем GEN1983, 13 окт 2009.

  1. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

    Регистрация:
    11 сен 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток!

    При переносе данных из 8.1 в 8.0 вылезает ошибка,

    ОбщийМодуль.FuncV7(88)}: Значение не является значением объектного типа (DoModal)
    Parameter=x.DoModal()


    Текст программы -

    Код:
    Function OpenPermanentChoiceModal(ThisForm,RefName,FormName=Undefined,Parameter="",OneChoice=false,ChoiceFoldersAndItems=Undefined) Export
    r=New(RefName);
    if Left(RefName,3)="Cat" Then
    x=r.GetChoiceForm(FormName,ThisForm);
    If ChoiceFoldersAndItems<>Undefined Then
    x.ChoiceFoldersAndItemsParameter=ChoiceFoldersAndItems;
    EndIf;
    x.CloseOnChoice=OneChoice;
    //If (RefName="CatalogManager.Номенклатура")  Then //18.02.08 OR (RefName="CatalogManager.Контрагенты")
    //	x.Mode="ChoiceProcessing";
    //EndIf;
    If Parameter<>"" AND Parameter<>False Then
    x.ChoiceInitialValue=Parameter;	
    EndIf; 
    //x.MultipleChoice=Not OneChoice;
    ElsIf Left(RefName,3)="Dat" Then
    x=r.GetForm(FormName,ThisForm);
    x.Parameter=Parameter;
    ElsIf Left(RefName,3)="Doc" Then
    x=r.ПолучитьФормуВыбора(FormName,ThisForm);
    x.CloseOnChoice=OneChoice; 
    x.Parameter=Parameter;
    If FormName<>Undefined Then
    x.Mode="ChoiceProcessing";
    EndIf;
    Else 
    Error(18);
    EndIf;
    
    Parameter=x.DoModal();
    
    //	Parameter=x.Parameter;
    return Parameter;
    EndFunction
    
    Буду благодарен за любую помощь в данном вопросе.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Если попадаете в ветку Else, что за процедура вызывается? x будет неопределенный в этом случае

    ЗЫ. Отвратительный код. Что за переменные в один символ?
  3. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

    Регистрация:
    11 сен 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Код и правда ужасен, "спасибо" моему предшественнику, я уже две недели разбираю его программы!
    Я не совсем понял Ваш вопрос, можете более подробно написать, что мне нужно сделать?
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Посмотрите, как у вас определяется значение для X - если вы попадаете в ветку Else - X = Неопределено. Вот вам и ошиба.
  5. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    В правилах хорошего тона программирования переменные должны либо идентифицироваться по названию, либо комментироваться что значат. Односимвольные переменные нормальные, если их грамотно использовать

    Вот пример :)
    for (i = 1; i <= 100; i++) {}

    Код отвратителен потмоу что он написан зачем-то на английском (простите, на смеси языков, что еще хуже). Разницы нет, но большая часть разработок на 1С ведется на русском. Есть обработка по замене английских термов.

    Я правильно понимаю, кусок кода вызывается в какой-то обработке переноса по OLE или нет, как организован обмен?

Поделиться этой страницей