×
×
+ Ответить в теме
Показано с 1 по 7 из 7
  1. #1
    Клерк
    Регистрация
    10.09.2007
    Сообщений
    24

    Вопрос Как исправить ошибку - Не выбран документ!

    Добрый день. Помогите, пожалуйста, справиться с проблемой. Код процедуры:

    Код:
    Поцедура ИзменитьОперацию(Операция)
       Если Операция.Проведен() = 0 Тогда
          Если Операция.Провести() = 0 Тогда
             Сообщить("документ " + Операция + " не проведен", "!");
             Возврат;
          КонецЕсли;
       КонецЕсли;
    КонецПроцедуры
    При выполнении метода Операция.Провести() появляется ошибка:

    Если ТекущаяОперация.Провести() = 0 Тогда
    {Обработка.СозданиеКонтрагентовПоОперациям.Форма.Модуль(146)}: Не выбран документ!

    Процедура вызывается следующим образом:

    Код:
       Операция = ТекущаяВыписка.ПервичныйДокумент;
       ИзменитьОперацию(Операция);
    Пробовал в процедуре перед проводить следующим образом:

    Код:
    ТекущаяОперация.ТекущийДокумент().Провести()
    Но ошибка повторяется. Пробовал переписать код (вставил код получения документа перед проведением):

    Код:
    Поцедура ИзменитьОперацию(Операция)
      ТекущаяОперация = СоздатьОбъект("Документ");
      Если ТекущаяОперация.ВыбратьПоНомеру(Операция.НомерДок, Операция.ДатаДок) = 0 Тогда
        Сообщить("неудалось выбрать текущую операцию с номером " + Операция.НомерДок, "!");
        Возврат;
      КонецЕсли;  
      Если ТекущаяОперация.ПолучитьДокумент() = 0 Тогда
        Сообщить("неудалось получить текущую операцию с номером " + Операция.НомерДок, "!");
        Возврат;
      КонецЕсли;
    
       Если ТекущаяОперация.Проведен() = 0 Тогда
          Если ТекущаяОперация.Провести() = 0 Тогда
             Сообщить("документ " + ТекущаяОперация + " не проведен", "!");
             Возврат;
          КонецЕсли;
       КонецЕсли;
    КонецПроцедуры
    В этом случае все работает. Да вот беда - имеются документы с одинаковыми номерами, т.е. для их извлечения необходимо использовать другой способ (не ВыбратьПоНомеру), что накладно.
    Я все же не понимаю - как мне "выбрать" этот документ в первой версии реализации процедуры?
    Заранее спасибо!

  2. #2
    Умный Клерк!
    Регистрация
    07.01.2004
    Адрес
    Владимир
    Сообщений
    13,623
    обхект Операция не проводится по-оперделению.
    А у операции есть еще метод ПолучитьДокумент()
    для определения Документа-владельца.
    1.Открыта новая радиостанция для юзеров под названием RТ FМ. По ней будут транслироваться чтения различных мануалов и ответы на часто задаваемые вопросы.
    2. "Помогая ленивым людям, ты помогаешь им сесть на свою шею" Сян-Цзы

  3. #3
    Клерк
    Регистрация
    10.09.2007
    Сообщений
    24
    В моем коде - "Операция" не объект, "Операция" - это переменная. (Пример неудачного названия )
    Вопрос всё ещё актуален.

  4. #4
    Умный Клерк!
    Регистрация
    07.01.2004
    Адрес
    Владимир
    Сообщений
    13,623
    ТекущаяОперация = СоздатьОбъект("Документ");
    Если ТекущаяОперация.НАЙТИДОКУМЕНТ(Операция.ТекущийДокумент()) = 0 Тогда
    Сообщить("неудалось выбрать текущую операцию с номером " + Операция.НомерДок, "!");
    Возврат;
    КонецЕсли;
    1.Открыта новая радиостанция для юзеров под названием RТ FМ. По ней будут транслироваться чтения различных мануалов и ответы на часто задаваемые вопросы.
    2. "Помогая ленивым людям, ты помогаешь им сесть на свою шею" Сян-Цзы

  5. #5
    Клерк
    Регистрация
    10.09.2007
    Сообщений
    24
    Разобрался, суть в следующем - необходимо перед вызовом метода "Провести()" создать объект, найти его (например по номеру документ). При этом если существует несколько доументов с одним и тем же номером, тогда многократное "ПолучитьДокмент" возвращает множество документов с одним и тем же номером - здорово!

  6. #6
    Умный Клерк!
    Регистрация
    07.01.2004
    Адрес
    Владимир
    Сообщений
    13,623
    я жнаписал как конкретный документ получить, зачем по номеру перебирать?
    1.Открыта новая радиостанция для юзеров под названием RТ FМ. По ней будут транслироваться чтения различных мануалов и ответы на часто задаваемые вопросы.
    2. "Помогая ленивым людям, ты помогаешь им сесть на свою шею" Сян-Цзы

  7. #7
    Клерк
    Регистрация
    10.09.2007
    Сообщений
    24
    Да, точно! - работает! Спасибо! (случайно пропустил Ваше предыдущее сообщение)

+ Ответить в теме

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы можете создавать новые темы
  • Вы можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •