Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 13:38

загрузка Счета на оплату покупателю из ДБФ в 1с

Автор Лейсан, 25 ноя 2011, 17:57

0 Пользователей и 1 гость просматривают эту тему.

Лейсан

пишу обработку загрузку  Счета на оплату покупателю из ДБФ в 1с .еще не доделала.загружаю пока только шапку документа.протестировав он мне пишет "НЕ хватает фактических параметров".вот моя обработка

Функция загрузитьСчетаНаОплату()
      ДБФ = Новый XBase;
      ДБФ.ОткрытьФайл(ПутьКФайлу);
      ДБФ.Кодировка=КодировкаXBase.OEM;
      //Проверка на наличие записей
   Если ДБФ.КоличествоЗаписей() = 0 Тогда
      Сообщить("Файл данных пуст");
      ДБФ.ЗакрытьФайл();
      //Возврат                    
   КонецЕсли;
              //Переходим на первую строку файла
    ДБФ.Первая();
 
    //Запускаем цикл
   //Пока Истина Цикл
       
      //Создадим новый документ
        Док = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
      
      //Заполним реквизиты
      Док.Номер=СокрЛП(ДБФ.NUMBERD);
      Док.Дата = СокрЛП(ДБФ.DATE);
      Док.Организация = Справочники.Организации.НайтиПоРеквизиту(СокрЛП(ДБФ.ORG));
      
      
      Док.Контрагент = СокрЛП(ДБФ.NAMEK);
      
      Договор=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
      Договор.Владелец = Справочники.Контрагенты.НайтиПоНаименованию(СокрЛП(ДБФ.KONTR));
      Договор.Наименование = СокрЛП(ДБФ.NAMED);
       Договор.Номер = СокрЛП(ДБФ.NUMBER);
      Договор.ВидДоговора = Вычислить("Перечисления.ВидыДоговоровКонтрагентов."+СокрЛП(ДБФ.VID));
      Договор.Дата = СокрЛП(ДБФ.DATE);
      Договор.ВалютаВзаиморасчетов=Справочники.Валюты.НайтиПоНаименованию(СокрЛП(ДБФ.VAL));
       Договор.Организация =Справочники.Организации.НайтиПоНаименованию(СокрЛП(ДБФ.ORG));
      Договор.Записать();
      
      Банк= Справочники.Банки.СоздатьЭлемент();
       Банк.Записать();
       Банк.КоррСчет=СокрЛП(ДБФ.KORS);
       Банк.Код=СокрЛП(ДБФ.BIK);
       Банк.Наименование=СокрЛП(ДБФ.NAMEB);
       Банк.Записать();

      
      БанкСчет=Справочники.БанковскиеСчета.СоздатьЭлемент();
        БанкСчет.Владелец=Док.Организация.Ссылка;
       БанкСчет.Банк=Справочники.Банки.НайтиПоКоду(ДБФ.BIK);
       БанкСчет.Наименование=СокрЛП(ДБФ.NAMEBS);
       БанкСчет.ВалютаДенежныхСредств=Справочники.Валюты.НайтиПоНаименованию(СокрЛП(ДБФ.VAL));
       БанкСчет.НомерСчета=СокрЛП(ДБФ.COUNT);
      Банк.Записать();
       БанкСчет.Записать();

sergejK74

Во первых, пишет "НЕ хватает фактических параметров" наверное указав конкретную строку.
Во-вторых, Функция загрузитьСчетаНаОплату() - это точно функция, а не процедура. Она возвращает значения?
В третьих, Док.Контрагент = СокрЛП(ДБФ.NAMEK); наверно сильно упрощено. Контрагент наверняка справочник. Он даже дальше ищется Договор.Владелец = Справочники.Контрагенты.НайтиПоНаименованию(СокрЛП(ДБФ.KONTR));
Четвертое. Банк.Записать(); - три раза наверное много. Хватит и одного, который средний.
В-пятых. Это сколько терпения надо эту обработку писать, я бы точно уже бросил и три дня к ней не подходил.

Кнопочка Спасибо - слева!

Лейсан

спасибо:)написала:)терпения хватило:)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск