8.х Загрузка документов СчетФактураВыданный из dbf-файла

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Салливан, 10 апр 2007.

  1. TopicStarter Overlay
    Салливан
    Offline

    Салливан

    Регистрация:
    10 апр 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте, участники форума.

    Помогите, пожалуйста, решить такую проблему:
    я пишу внешний обработчик загрузки счетов-фактур из файла dbf в 1С:Бухгалтерия предприятия (редакция 1.5).
    При этом предполагается, что основаниями для введения загружаемых счетов-фактур являются документы РеализацияТоваровУслуг, которые уже содержатся в ИБ. При загрузке счета-фактуры обработчик ищет документ РеализацияТоваровУслуг с нужными номером и датой, если он есть - проверяет, существует ли уже подчинённый этому документу документ СчетФактураВыданный с заданным номером и датой, и если его нет - то создаёт новый, заполняет его номер и дату данными из загруженной таблицы, а остальные данные пытается получить из документа РеализацияТоваровУслуг, на основании которого документ СчетФактура должен быть проведён.
    Посмотрите, пожалуйста, фрагмент кода, и подскажите, почему реквизит ДокументОснование счета-фактуры не желает заполняться по ссылке на документ РеализацияТоваровУслуг!!!
    Заранее спасибо.

    ДокументСЧФ = Документы.СчетФактураВыданный;
    ДокументНАКЛ = Документы.РеализацияТоваровУслуг;

    Для Каждого СтрокаТаблицы Из ТЗСФ Цикл

    Если ДокументСЧФ.НайтиПоНомеру(СтрокаТаблицы.НомерДок) = Документы.СчетФактураВыданный.ПустаяСсылка() Тогда
    Если ДокументНАКЛ.НайтиПоНомеру(СтрокаТаблицы.Накладная,Дата(СтрокаТаблицы.ДатаДок)) <> Документы.РеализацияТоваровУслуг.ПустаяСсылка() Тогда
    ДокОснование = ДокументНАКЛ.НайтиПоНомеру(СтрокаТаблицы.Накладная);
    Док = Документы.СчетФактураВыданный.СоздатьДокумент();
    Док.Номер = СтрокаТаблицы.НомерДок;
    ВремяДок = Строка(СтрокаТаблицы.ВремяДок);
    Часы = Число(Лев(ВремяДок,2));
    Минуты = Число(Сред(ВремяДок,4,2));
    Секунды = Число(Прав(ВремяДок,2));
    Док.Дата = Дата(СтрокаТаблицы.ДатаДок) + 3600*Часы + Минуты*60 + Секунды;
    Док.ДокументОснование = ДокОснование.Ссылка;
    Док.Ответственный = глТекущийПользователь;
    Попытка
    Док.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
    Док.Записать();
    КонецПопытки
    Иначе
    Сообщить("Не найдена накладная с номером " + СтрокаТаблицы.Накладная + " при вводе сч/ф № " + СтрокаТаблицы.НомерДок);
    КонецЕсли;

    КонецЕсли;

    КонецЦикла;
  2. TopicStarter Overlay
    Салливан
    Offline

    Салливан

    Регистрация:
    10 апр 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Спасибо всем, кто думал над моим вопросом!
    Я уже справилась сама :unsure:
    Буде у кого ещё такие проблемы, привожу тот-же кусок обработчика, но уже работающий:

    ДокументСЧФ = Документы.СчетФактураВыданный;
    ДокументНАКЛ = Документы.РеализацияТоваровУслуг;
    Для Каждого СтрокаТаблицы Из ТЗСФ Цикл
    Если ДокументСЧФ.НайтиПоНомеру(СтрокаТаблицы.НомерДок) = Документы.СчетФактураВыданный.ПустаяСсылка() Тогда
    Если ДокументНАКЛ.НайтиПоНомеру(СтрокаТаблицы.Накладная,Дата(СтрокаТаблицы.ДатаДок)) <> Документы.РеализацияТоваровУслуг.ПустаяСсылка() Тогда
    ДокОснование = ДокументНАКЛ.НайтиПоНомеру(СтрокаТаблицы.Накладная,Дата(СтрокаТаблицы.ДатаДок));
    Док = Документы.СчетФактураВыданный.СоздатьДокумент();
    Док.Номер = СтрокаТаблицы.НомерДок;
    ВремяДок = Строка(СтрокаТаблицы.ВремяДок);
    Часы = Число(Лев(ВремяДок,2));
    Минуты = Число(Сред(ВремяДок,4,2));
    Секунды = Число(Прав(ВремяДок,2));
    Док.Дата = Дата(СтрокаТаблицы.ДатаДок) + 3600*Часы + Минуты*60 + Секунды;
    Док.Заполнить(ДокОснование);
    Док.Ответственный = глТекущийПользователь;
    Попытка
    Док.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
    Док.Записать();
    КонецПопытки
    Иначе
    Сообщить("Не найдена накладная с номером " + СтрокаТаблицы.Накладная + " при вводе сч/ф № " + СтрокаТаблицы.НомерДок);
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

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