[РЕШЕНО] Ошибка при программной отмене проведения в COM

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

  1. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток !

    Создал обработку, которая работает через COM. На предварительном этапе работы обработка должна помечать на удаление и отменять соответственно движения старых документов.
    Вот код:
    Код:
    Пока ВыборкаНаУдаление.Следующий() Цикл
                Счетчик = Счетчик + 1;
                Состояние("Пометка на удаление поступления - " + Счетчик + " из " + КоличествоУдаляемых);
                ОбъектДляУдаления = ВыборкаНаУдаление.Ссылка.ПолучитьОбъект();
                ОбъектДляУдаления.Проведен = Ложь;
                ОбъектДляУдаления.ПометкаУдаления = Истина;
                ОбъектДляУдаления.Записать(РежимЗаписиДокумента.ОтменаПроведения);
            КонецЦикла;
    Выборка из базы, к которой подсоединяемся. Так вот на строчке
    Код:
    ОбъектДляУдаления.Записать(РежимЗаписиДокумента.ОтменаПроведения);
    выдается ошибка "Несоответствие типов параметр номер 1 "при отмене проведения""

    Даже скажу на какой документ ругается: "Отражение НДС к вычету"

    Что я делаю не так?

    Заранее спасибо!
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    а для чего отменять проведение у помеченного на удаление документа?? и в коде до этого Вы делаете Док НеПроведенным:
    Код:
    ОбъектДляУдаления.Проведен = Ложь;
  3. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    щас подправлю
    --- Объединение сообщений, 30 янв 2015 ---
    Даже вот так выдает ошибку
    Код:
    Пока ВыборкаНаУдаление.Следующий() Цикл
                Счетчик = Счетчик + 1;
                Состояние("Пометка на удаление поступления - " + Счетчик + " из " + КоличествоУдаляемых);
                ОбъектДляУдаления = ВыборкаНаУдаление.Ссылка.ПолучитьОбъект();
                //ОбъектДляУдаления.Проведен = Ложь;
                //ОбъектДляУдаления.ПометкаУдаления = Истина;
                ОбъектДляУдаления.Записать(РежимЗаписиДокумента.ОтменаПроведения);
    КонецЦикла;
    Последнее редактирование: 30 янв 2015
  4. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Запрос хоть выполняется ???
  5. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    [​IMG]
    --- Объединение сообщений, 30 янв 2015 ---
    Запись без параметров происходить спокойно. Но нужно именно отменить проведение.
  6. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Хм, странно. По сути должен отменить проведение. А документ точно проведен ?
    Еще смущает что обязательные поля на инглише.
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    необходимо делать:

    ОбъектДляУдаления.Записать(УДАЛЕННАЯ_БД.РежимЗаписиДокумента.ОтменаПроведения);
    selig нравится это.
  8. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    26
    Чорт, я же тоже так думал)

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

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