8.х Копирую Документ

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

  1. TopicStarter Overlay
    bun
    Offline

    bun

    Регистрация:
    27 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Надо скопировать Документы из ЗУП в БП.

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

    Хэлп
  2. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. Что такое Польз и зачем оно, если нигде в коде не используется?
    2. Что такое ВыборкаПольз?
    3. Вы пытаетесь сохранить COM-объект как документ - не прокатит. Вам нужно пройтись по реквизитам и ТЧ документа и заполнить вручную их.
    Ибо вы пытаетесь записать не документ, а нечто другое.

    Вердикт: код выкинуть - писать все заново.
  3. TopicStarter Overlay
    bun
    Offline

    bun

    Регистрация:
    27 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Да в этом я еще вчера сам убедился - лажа какая0то была, сам смеялся потом. Ну ничего - проблема имеет продолжение. Суть: берем элемент из БП, который выгружен в ТЗ, и начинаем проходить по другой ТЗ, где элементы из ЗУП. Как после первого прохода Берем 2-й элемент из БП, а как снова с первого элемента ЗУП начать проверять (т.е. при 2-м входе в Для чтобы Пока Выборка.Следующий() снова был на 1-м элементе ЗУП)?

    Код:
    ПриемЗП=СоединениеЗУП.Документы.ПриемНаРаботуВОрганизацию;
    ПриемТБ=Документы.ПриемНаРаботуВОрганизацию;
    Организация=ЭлементыФормы.Организация.Значение;
    ВыборкаПриемЗП=ПриемЗП.Выбрать(ДатаС,ДатаПо,ОтборОрг,);
    
    Для Каждого стрРаб из тпРаботникиТБ Цикл
    ОбработкаПрерыванияПользователя();
    Пока ВыборкаПриемЗП.Следующий() Цикл            
    Если (ВыборкаПриемЗП.Дата=стрРаб.ДатаТБ) И (ВыборкаПриемЗП.Номер=стрРаб.НомерТБ) Тогда
    Сообщить("Такой элемент уже есть: "+стрРаб.РаботникТБ);
    Ответ=Вопрос("Перезаписать элемент?",РежимДиалогаВопрос.ДаНет,,КодВозвратаДиалога.Да);
    Если Ответ=КодВозвратаДиалога.Да Тогда
    ТЧДокумента(Элемент, ВыборкаПриемЗП, ПриемТБ);
    Иначе //Если была нажата кнопка "Нет"
    Продолжить;
    КонецЕсли;
    Иначе
    ТЧДокумента(Элемент,  ВыборкаПриемЗП, ПриемТБ);
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    
    
    
  4. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Есть два варианта:
    1. Объединить ТЗ, свернуть и удалить дубли
    2. После обработки удалять из ТЗ обработанные элементы
  5. Рассада
    Offline

    Рассада

    Регистрация:
    28 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    А документы из ЗУП не в таблице ведь, а в выборке.
    Можно делать ВыборкаПриемЗП.Сбросить() - снова на первом элементе будет

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