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

Как избежать дублирования файлов при выгрузке??

Автор Лейсан, 29 ноя 2011, 10:48

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

sergeevds

А у тебя в каждой строке дбф написано, какому документу должна принадлежать каждая строка?

Лейсан

Должна принадлежать документу счет на оплату покупателю-табличная часть-товары.в товары надо заносить список номенклатуры.

Лейсан

Функция загрузитьСчетаНаОплату()
      ДБФ = Новый XBase;
      ДБФ.ОткрытьФайл(ПутьКФайлу);
      ДБФ.Кодировка=КодировкаXBase.OEM;
      //Проверка на наличие записей
   Если ДБФ.КоличествоЗаписей() = 0 Тогда
      Сообщить("Файл данных пуст");
      ДБФ.ЗакрытьФайл();
      //Возврат                    
   КонецЕсли;
              //Переходим на первую строку файла
          
    ДБФ.Первая();
    Пока Истина Цикл

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

      
       БанкСчет=Справочники.БанковскиеСчета.СоздатьЭлемент();
        БанкСчет.Владелец=Справочники.Организации.НайтиПоНаименованию(СокрЛП(ДБФ.ORG));
        БанкСчет.Банк=Справочники.Банки.НайтиПоКоду(ДБФ.BIK);
       БанкСчет.Наименование=СокрЛП(ДБФ.NAMEBS);
       БанкСчет.ВалютаДенежныхСредств=Справочники.Валюты.НайтиПоНаименованию(СокрЛП(ДБФ.VAL));
       //БанкСчет.НомерСчета=СокрЛП(ДБФ.COUNT);
       Банк.Записать();
       БанкСчет.Записать();
      
      //Заполним табличную часть "Товары"
       НоваяСтрока=Док.Товары.Добавить();
       Для каждого Товары ИЗ Док.Товары Цикл
       НоваяСтрока.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ДБФ.NOM));
       НоваяСтрока.ЕдиницаИзмерения= Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(СокрЛП(ДБФ.ED));
         НоваяСтрока.Количество=СокрЛП(ДБФ.KOL);
       НоваяСтрока.Цена=СокрЛП(ДБФ.PRICE);
       НоваяСтрока.СтавкаНДС=СокрЛП(ДБФ.NDS);
      КонецЦикла;
       //НоваяСтрока.Сумма=НоваяСтрока.СуммаБезСкидок;
       //НоваяСтрока.СуммаНДС
       //НоваяСтрока.ЕдиницаИзмерения=Номенклатура.БазоваяЕдиницаИзмерения;
      
       //Заполним табличную часть "Оплачено"
       НоваяОплачено= Док.Оплата.Добавить();
       НоваяОплачено.ДатаОплаты=СокрЛП(ДБФ.DATEO);
       НоваяОплачено.Сумма=СокрЛП(ДБФ.SUM);
       НоваяОплачено.НомерДокумента=СокрЛП(ДБФ.NDOK);
            
       //Заполним табличную часть "Отгружено"
       НоваяОтгружено= Док.Отгрузка.Добавить();
       НоваяОтгружено.ДатаОтгрузки=СокрЛП(ДБФ.DATEOT);
       НоваяОтгружено.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ДБФ.NOM));
       НоваяОтгружено.Количество=СокрЛП(ДБФ.KOL);
       НоваяОтгружено.Цена=СокрЛП(ДБФ.PRICE);
       НоваяОтгружено.Сумма=СокрЛП(ДБФ.SUMOT);
      
   Док.Записать();
   
   Если Не ДБФ.Следующая()Тогда
         Прервать;
      КонецЕсли;
      КонецЦикла;
Вот так я загружаю счета на оплату

sergeevds


Лейсан


Теги:

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

Рейтинг@Mail.ru

Поиск