Помощь - Поиск - Пользователи - Календарь
Полная версия: Загрузка документов СчетФактураВыданный из dbf-файла
"1C-PRO" - форум по 1C > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Отчеты и обработки для платформы "1С:Предприятие 8.x"
Салливан
Здравствуйте, участники форума.

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

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

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

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

КонецЕсли;

КонецЦикла;
Салливан
Спасибо всем, кто думал над моим вопросом!
Я уже справилась сама tongue.gif
Буде у кого ещё такие проблемы, привожу тот-же кусок обработчика, но уже работающий:

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