8.х Ошибка в документе.

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

  1. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

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

    Прошу помочь в вопросе устранения одной неясной ошибки, с которой никак не могу разобраться.

    Ошибка -
    {Документ.Счет.Форма.Форма1(1243)}: Итератор для значения не определен
    For each x In Выб Do




    Текст, где останавливается программа-
    For each x In Выб Do

    Буду очень благодарен за помощь.
  2. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    выб - неопределен интератор
    все сказано! Просто неопределено из чего выбирать....
  3. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

    Регистрация:
    11 сен 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    А можете более подробно рассказать что нужно сделать, потому что я уже перебрал всю эту прогу и не нашел места ошибки?
    Текст программы:

    Procedure ChoiceProcessing(Выб) Export
    If gCountChildDoc(Ref,"СнятиеРезерва",1)>0 Then
    message(String(Ref)+" есть снятие резерва!");
    //Cancel=True;
    return;
    EndIf;
    If ТипПодбора="Д" Then
    If Выб.ВидТовара<>Enums.ВидыТоваров.Услуга Then
    If Not IsNew() Then
    t=gChildDocToTable(Ref,"РасходнаяНакладная",5);
    x=t.Find(Catalogs.Номенклатура.Сборка,"name");
    If x=Undefined Then
    x=ТабличнаяЧасть.Find(Catalogs.Номенклатура.Сборка,"Товар");
    If x<>Undefined Then
    ТабличнаяЧасть.Delete(x);
    Message("Сборка удалена");
    EndIf;
    EndIf;
    Else
    x=ТабличнаяЧасть.Find(Catalogs.Номенклатура.Сборка,"Товар");
    If x<>Undefined Then
    ТабличнаяЧасть.Delete(x);
    Message("Сборка удалена");
    EndIf;
    EndIf;
    EndIf;
    глПриОбработкеПодбора_Дэфо(Выб,ThisForm);//ThisForm);
    Else
    For each x In Выб Do
    If x.Элемент.ВидТовара<>Enums.ВидыТоваров.Услуга Then
    If Not IsNew() Then
    t=gChildDocToTable(Ref,"РасходнаяНакладная",5);
    x=t.Find(Catalogs.Номенклатура.Сборка,"name");

    If x=Undefined Then
    x=ТабличнаяЧасть.Find(Catalogs.Номенклатура.Сборка,"Товар");
    If x<>Undefined Then
    ТабличнаяЧасть.Delete(x);
    Message("Сборка удалена");
    EndIf;

    EndIf;
    Else
    x=ТабличнаяЧасть.Find(Catalogs.Номенклатура.Сборка,"Товар");
    If x<>Undefined Then
    ТабличнаяЧасть.Delete(x);
    Message("Сборка удалена");
    EndIf;
    EndIf;
    break;
    EndIf;
    EndDo;
    глПриОбработкеПодбора(Выб,ThisForm);//ThisObject);//,ThisForm);
    EndIf;
    Итого();
    If (СпецСкидка<>0) AND (Posted) Then
    DoMessageBox("Проверьте спецскидку");
    EndIf;
    //несвоевременно
    //If Not Constants.ПоследниеИзмененияВыкл.Get() Then
    // ТабличнаяЧасть.Sort("Приоритет DESC,Товар");
    //EndIf;
    EndProcedure
  4. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    а что передается в ВЫБ??
  5. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Скорее всего там выборка. Значит обходить ее надо циклом
    Код:
    Пока Выб.Следующий() Цикл
    //...
    КонецЦикла;
    
  6. TopicStarter Overlay
    GEN1983
    Offline

    GEN1983

    Регистрация:
    11 сен 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    К сожалению, это не помогло, есть еще какие-нибудь варианты решения этой ошибки?
  7. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    ЕЩЕ раз!! ЧТО ВЫ ПЕРЕДАЕТЕ В ВЫБ!!! от этого пойдут все решения какой типзнч у вас там?

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