×
Показано с 1 по 2 из 2
  1. Клерк Аватар для Салливан
    Регистрация
    31.01.2007
    Адрес
    Воронеж
    Сообщений
    166

    Вопрос Внешняя обработка загрузки данных в 1С Бухгалтерия предприятия (восьмёрку)

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

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

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

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

    КонецЕсли;

    КонецЦикла;
    Поделиться с друзьями

  2. Клерк Аватар для Салливан
    Регистрация
    31.01.2007
    Адрес
    Воронеж
    Сообщений
    166
    Я совершила чудо и ответила на свой вопрос сама
    Спасибо всем, кто думал
    На всякий случай, буде у кого ещё такая беда, привожу этот-же фрагмент, но работающий:

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

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

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

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