8.х загрузка документов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем mazza, 16 мар 2009.

  1. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Привет всем.
    Помогите новичку. Вот пытаюсь написать обработку для загрузки данных из таблиц Access в Документы 1С Бухгалтерия предприятия 1.5 .Пример кода ниже. Эта обработка для загрузки счетов на оплату покупателю. Сейчас каждый раз создается новый документ, а мне нужно чтобы на одного и того же контрагента добавлялись строки в табличную часть документа. Как это можно реализовать?

    Процедура Счета(Кнопка) //ЗАГРУЗКА
    Если ЭлементыФормы.ПутьКФайлу.Значение = "" Тогда
    Предупреждение("Не выбрана база данных");
    Возврат;
    КонецЕсли;
    MBD = Новый COMОбъект("ADODB.CONNECTION");
    Попытка
    MBD.Open("Driver={Microsoft Access Driver (*.mdb)};Dbq="+ЭлементыФормы.ПутьКФайлу.Значение+";Uid=Admin;Pwd=");
    Исключение Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;
    ТекстСелект = "SELECT * FROM ппп";
    НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
    Попытка
    НаборЗаписей=MBD.Execute(ТекстСелект);
    Исключение Сообщить(ОписаниеОшибки());
    КонецПопытки;
    Попытка НаборЗаписей.MoveFirst();
    Исключение //табилца пустая
    Сообщить(ОписаниеОшибки());
    НаборЗаписей.Close();
    Возврат;
    КонецПопытки;

    Пока НаборЗаписей.EOF()=0 Цикл
    КодКлиента = Строка(НаборЗаписей.Fields("КодКлиента").Value);
    Название = Строка(НаборЗаписей.Fields("Название").Value);
    Дата = Строка(НаборЗаписей.Fields(2).Value);
    КодЗаказа = Строка(НаборЗаписей.Fields(3).Value);
    Цена = Строка(НаборЗаписей.Fields("Цена").Value);
    КодТовара = Строка(НаборЗаписей.Fields(5).Value);
    Продано = Строка(НаборЗаписей.Fields("Продано").Value);
    НаборЗаписей.MoveNext();

    Номр=КодЗаказа;

    Код = КодКлиента;
    КодЗаказа = КодЗаказа;

    Наименование = Название;



    Новыйдокумент = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();

    новыйдокумент.ВалютаДокумента=справочники.Валюты.НайтиПоКоду(810);
    новыйдокумент.Организация=справочники.Организации.НайтиПоКоду(1);
    новыйдокумент.СуммаВключаетНДС=Истина;
    новыйдокумент.Дата= дата;
    новыйдокумент.СуммаВключаетНДС=Истина;
    новыйдокумент.УчитыватьНДС=Истина;
    новыйдокумент.Контрагент=Справочники.Контрагенты.НайтиПоКоду(Код);
    новыйдокумент.ДоговорКонтрагента=справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Основной договор");
    новыйдокумент.Склад=справочники.Склады.НайтиПоНаименованию("Основной склад");
    новаястрокатабличнойчасти=новыйдокумент.Товары.Добавить();
    новаястрокатабличнойчасти.Номенклатура=Справочники.Номенклатура.НайтиПоКоду(КодТовара);
    новаястрокатабличнойчасти.Количество= Продано;
    новаястрокатабличнойчасти.СтавкаНДС=Перечисления.СтавкиНДС.НДС18;
    новаястрокатабличнойчасти.Цена= Цена;
    Новаястрокатабличнойчасти.Сумма= Цена*Продано;


    новыйдокумент.Записать();


    КонецЦикла;

    Сообщить("СЧЕТА ЗАГРУЖЕНЫ");
    КонецПроцедуры

    Вложения:

  2. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    Вынеси создание документа за цикл.

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