Имя: Пароль:
1C
1С v8
выгрузка
0 del12
 
17.04.12
10:38
необходимо чтобы в custname выводился клиент, а не организация. как этоисправить?
&НаСервере
Функция ПолучитьЗначенияПолей()
   Поля = Новый Структура;
   Поля.Вставить("CustName", Объект.CustName.ПолноеНаименование());
   Поля.Вставить("INN", Объект.CustName.ИНН);
   Поля.Вставить("Address", Объект.CustName.КонтактнаяИнформация.Найти(Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес"),"Вид").Представление);
   Поля.Вставить("Art", Объект.ItemName.Артикул);
   Поля.Вставить("ItemName", Объект.ItemName.ПолноеНаименование());
   Поля.Вставить("TradeEmpN", Объект.TradeEmpN.ПолноеНаименование());
   Поля.Вставить("ItemId", "");
   Для каждого ДопРеквизит Из Объект.ItemName.ДополнительныеРеквизиты Цикл
       Если  ДопРеквизит.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Код товара поставщика") Тогда
           Поля["ItemId"]=ДопРеквизит.Значение;  //Объект.ItemName.ДополнительныеРеквизиты.Найти("Значение").Значение
       КонецЕсли
   КонецЦикла;
   
   //Исключение
   //    Поля.Вставить("ItemId", "");
   //КонецПопытки;
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ЦеныНоменклатурыСрезПоследних.Цена
   |ИЗ
   |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
   |ГДЕ
   |    ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
   |    И ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
   
   Запрос.УстановитьПараметр("ВидЦены", Объект.ВидЦены);
   Запрос.УстановитьПараметр("Дата", Объект.BeginDate);
   Запрос.УстановитьПараметр("Номенклатура", Объект.ItemName);
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ВыборкаДетальныеЗаписи.Следующий();
   Если НЕ ВыборкаДетальныеЗаписи.Цена = 0 И НЕ ВыборкаДетальныеЗаписи.Цена = НЕОПРЕДЕЛЕНО Тогда
       Поля.Вставить("Price", ?(Объект.ВидЦены.ЦенаВключаетНДС,ВыборкаДетальныеЗаписи.Цена,ВыборкаДетальныеЗаписи.Цена+ВыборкаДетальныеЗаписи.Цена/100*18));
   Иначе
       Поля.Вставить("Price",0);
   КонецЕсли;
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот,
   |    ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот,
   |    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
   |    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.Артикул,
   |    ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Договор.Менеджер
   |ИЗ
   |    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачала, &ДатаКонца, , ) КАК ВыручкаИСебестоимостьПродажОбороты
   |ГДЕ
   |    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
   |    И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
   |    И ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер = &Менеджер
   |    И ВЫБОР
   |            КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
   |                    ИЛИ &Организация = НЕОПРЕДЕЛЕНО
   |                    ИЛИ &Организация ЕСТЬ NULL
   |                ТОГДА ИСТИНА
   |            ИНАЧЕ ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Организация = &Организация
   |        КОНЕЦ
   |    И ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Соглашение.ВидЦен = &ВидЦен
   |    И (НЕ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.НаименованиеПолное ПОДОБНО &ПодстрокаБонуса
   |            ИЛИ НЕ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.Наименование ПОДОБНО &ПодстрокаБонуса)";
   
   Запрос.УстановитьПараметр("ВидЦен", Объект.ВидЦены);
   Запрос.УстановитьПараметр("Организация", Объект.Организация);
   Запрос.УстановитьПараметр("ДатаКонца", КонецДня(Объект.EndDate));
   Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(Объект.BeginDate));
   Запрос.УстановитьПараметр("Контрагент", Объект.CustName);
   Запрос.УстановитьПараметр("Менеджер", Объект.TradeEmpN);
   Запрос.УстановитьПараметр("Номенклатура", Объект.ItemName);
   Запрос.УстановитьПараметр("ПодстрокаБонуса", "%"+"**БОНУС!!!"+"%");
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ВыборкаДетальныеЗаписи.Следующий();
   Поля.Вставить("Qty", ВыборкаДетальныеЗаписи.КоличествоОборот);
   
   Если НЕ ВыборкаДетальныеЗаписи.СуммаВыручкиОборот = 0 И НЕ ВыборкаДетальныеЗаписи.СуммаВыручкиОборот = НЕОПРЕДЕЛЕНО Тогда
       Поля.Вставить("Amount",?(Объект.ВидЦены.ЦенаВключаетНДС,ВыборкаДетальныеЗаписи.СуммаВыручкиОборот,ВыборкаДетальныеЗаписи.СуммаВыручкиОборот+ВыборкаДетальныеЗаписи.СуммаВыручкиОборот/100*18));
   ИНАЧЕ
       Поля.Вставить("Amount",0);
   КонецЕсли;
   
   //Поиск бонусного товара
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот,
   |    ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот
   |ИЗ
   |    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачала, &ДатаКонца, , ) КАК ВыручкаИСебестоимостьПродажОбороты
   |ГДЕ
   |    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
   |    И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам.Контрагент = &Контрагент
   |    И ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Менеджер = &Менеджер
   |    И ВЫБОР
   |            КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
   |                    ИЛИ &Организация = НЕОПРЕДЕЛЕНО
   |                    ИЛИ &Организация ЕСТЬ NULL
   |                ТОГДА ИСТИНА
   |            ИНАЧЕ ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Организация = &Организация
   |        КОНЕЦ
   |    И ВыручкаИСебестоимостьПродажОбороты.ЗаказКлиента.Соглашение.ВидЦен = &ВидЦен
   |    И (ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.НаименованиеПолное ПОДОБНО &ПодстрокаБонуса
   |            ИЛИ ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура.Наименование ПОДОБНО &ПодстрокаБонуса)";
   
   Запрос.УстановитьПараметр("ВидЦен", Объект.ВидЦены);
   Запрос.УстановитьПараметр("Организация", Объект.Организация);
   Запрос.УстановитьПараметр("ДатаКонца", КонецДня(Объект.EndDate));
   Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(Объект.BeginDate));
   Запрос.УстановитьПараметр("Контрагент", Объект.CustName);
   Запрос.УстановитьПараметр("Менеджер", Объект.TradeEmpN);
   Запрос.УстановитьПараметр("Номенклатура", Объект.ItemName);
   Запрос.УстановитьПараметр("ПодстрокаБонуса", "%"+"**БОНУС!!!"+"%");
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ВыборкаДетальныеЗаписи.Следующий();
   Поля.Вставить("QtyBon", ВыборкаДетальныеЗаписи.КоличествоОборот);
   
   ////////////////////////////////////////////////////////////////////////
   
   
   
   
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ТоварыНаСкладахОстатки.ВНаличииОстаток,
   |    ТоварыНаСкладахОстатки.ВРезервеОстаток
   |ИЗ
   |    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, ) КАК ТоварыНаСкладахОстатки
   |ГДЕ
   |    ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура";
   
   Запрос.УстановитьПараметр("Дата", КонецДня(Объект.EndDate));
   Запрос.УстановитьПараметр("Номенклатура", Объект.ItemName);
   Запрос.УстановитьПараметр("Организация", Объект.Организация);
   
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ВыборкаДетальныеЗаписи.Следующий();
   Поля.Вставить("QtyRem", ?(НЕ ВыборкаДетальныеЗаписи.ВНаличииОстаток=Неопределено,ВыборкаДетальныеЗаписи.ВНаличииОстаток,0)+?(НЕ ВыборкаДетальныеЗаписи.ВРезервеОстаток=Неопределено,ВыборкаДетальныеЗаписи.ВРезервеОстаток,0));
   КоличествоОстаток=?(НЕ ВыборкаДетальныеЗаписи.ВНаличииОстаток=Неопределено,ВыборкаДетальныеЗаписи.ВНаличииОстаток,0)+?(НЕ ВыборкаДетальныеЗаписи.ВРезервеОстаток=Неопределено,ВыборкаДетальныеЗаписи.ВРезервеОстаток,0);
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ЦеныНоменклатурыСрезПоследних.Цена
   |ИЗ
   |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
   |ГДЕ
   |    ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
   |    И ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
   
   Запрос.УстановитьПараметр("ВидЦены", Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная"));
   Запрос.УстановитьПараметр("Дата", Объект.EndDate);
   Запрос.УстановитьПараметр("Номенклатура", Объект.ItemName);
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ВыборкаДетальныеЗаписи.Следующий();
   Если НЕ КоличествоОстаток = 0 Тогда
       Поля.Вставить("AmountRem", ВыборкаДетальныеЗаписи.Цена*КоличествоОстаток);
   Иначе
       Поля.Вставить("AmountRem", 0);
   КонецЕсли;
   
   Поля.Вставить("BeginDate", Объект.BeginDate);
   Поля.Вставить("EndDate", Объект.EndDate);
   Возврат Поля;
КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)
   Объект.Организация= ПолучитьОрганизация();
   Объект.CustName= ПолучитьCustName();
   Объект.CustAcc="КЛ-1640";
   Объект.TradeEmpN= ПолучитьTradeEmpN();
   Объект.ВидЦены= ПолучитьВидЦен();
   Объект.ItemName= ПолучитьItemName();    
   Объект.BeginDate=НачалоМесяца(ТекущаяДата());
   Объект.EndDate=КонецМесяца(ТекущаяДата());
   Объект.ИНН=ПолучитьИНН();
   
КонецПроцедуры

//&НаСервере
//Функция   ПолучитьИНН()
//    Возврат Объект.Организация.ИНН;
//КонецФункции

&НаСервере
Функция ПолучитьВидЦен()
   Попытка
       ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Магазины2");
       Возврат ВидЦены
   Исключение
   КонецПопытки;
КонецФункции

&НаСервере
Функция ПолучитьItemName()
   Попытка
       ItemName = Справочники.Номенклатура.НайтиПоНаименованию("ср д труб Тирет гель 1000г (уп12)");
       Возврат ItemName
   Исключение
   КонецПопытки;
КонецФункции

//&НаСервере
//Функция ПолучитьОрганизация()
//    Попытка
//        Организация = Справочники.Организации.НайтиПоНаименованию("ООО ""Элтонхим""");
//        Возврат Организация
//Исключение
//КонецПопытки;    
//КонецФункции

&НаСервере
Функция ПолучитьCustName()
   Попытка
       CustName = Справочники.Контрагенты.НайтиПоНаименованию("Магазин Юмах (парфюмерия)");
       Возврат CustName
   Исключение
   КонецПопытки;
КонецФункции


&НаСервере
Функция ПолучитьTradeEmpN()                                      
   Попытка
       TradeEmpN = Справочники.Пользователи.НайтиПоНаименованию("Михайлова");
       Возврат TradeEmpN
   Исключение
   КонецПопытки;
КонецФункции

&НаКлиенте
Процедура Выгрузить(Команда)
   
   
   
   
   
КонецПроцедуры

&НаКлиенте
Процедура ВыгрузитьПогруппе(Команда)
   
   Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
   ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
   ДиалогОткрытия.Каталог = "";
   ДиалогОткрытия.МножественныйВыбор = Ложь;
   ДиалогОткрытия.Заголовок = "Выберите каталог";    
   
   Если ДиалогОткрытия.Выбрать() Тогда
       
       ПутьККаталогу = ДиалогОткрытия.Каталог;
       
       БД = Новый XBase;
       
       БД.Кодировка=КодировкаXBase.ANSI;
       
       БД.Поля.Добавить("CustAcc","S",20);    
       БД.Поля.Добавить("CustName","S",100);
       БД.Поля.Добавить("INN","S",12);
       БД.Поля.Добавить("Address","S",250);
       БД.Поля.Добавить("Art","S",4);
       БД.Поля.Добавить("ItemId","S",20);
       БД.Поля.Добавить("ItemName","S",200);
       БД.Поля.Добавить("TradeEmpId","S",20);
       БД.Поля.Добавить("TradeEmpN","S",80);
       БД.Поля.Добавить("VO","N",1,0);
       БД.Поля.Добавить("Price","N",15,2);
       БД.Поля.Добавить("Qty","N",15,0);
       БД.Поля.Добавить("QtyBon","N",15,0);
       БД.Поля.Добавить("Amount","N",15,2);
       БД.Поля.Добавить("QtyRem","N",15,0);
       БД.Поля.Добавить("AmountRem","N",15,2);
       БД.Поля.Добавить("BeginDate","D",10,0);
       БД.Поля.Добавить("EndDate","D",10,0);
       
       БД.СоздатьФайл(ПутьККаталогу+"\"+"ax001090"+".dbf");  //ax //СокрЛП(Строка(Объект.CustAcc))
       
       
       Объект.НоменкдтураВся.Очистить();    
       //ПереборПодчиненыхЭлементов(Объект.Номенклатура);
       
       Объект.Пользователи.Очистить();
       ЗапросПоПользователям();
       
       Для каждого ЭлементПользователь из Объект.Пользователи Цикл
           
           Объект.TradeEmpN=ЭлементПользователь.Пользователь;
           
           Для каждого ЭлементНоменклатура из Объект.НоменкдтураВся Цикл
               Объект.ItemName = ЭлементНоменклатура.Номенклатура;
               Сформировать(ЭтаФорма.Команды.Сформировать);
               
               БД.Добавить();
               БД.CustAcc=Объект.СтруктураВыгрузки[0].Значение;    
               БД.CustName=Объект.СтруктураВыгрузки[1].Значение;
               БД.INN=Объект.СтруктураВыгрузки[2].Значение;
               БД.Address=Объект.СтруктураВыгрузки[3].Значение;
               БД.Art=Объект.СтруктураВыгрузки[4].Значение;
               БД.ItemId=Объект.СтруктураВыгрузки[5].Значение;
               БД.ItemName=Объект.СтруктураВыгрузки[6].Значение;
               БД.TradeEmpId=Объект.СтруктураВыгрузки[7].Значение;
               БД.TradeEmpN=Объект.СтруктураВыгрузки[8].Значение;
               БД.VO=Объект.СтруктураВыгрузки[9].Значение;
               БД.Price=Объект.СтруктураВыгрузки[10].Значение;
               БД.Qty=Объект.СтруктураВыгрузки[11].Значение;
               БД.QtyBon=Объект.СтруктураВыгрузки[12].Значение;
               БД.Amount=Объект.СтруктураВыгрузки[13].Значение;
               БД.QtyRem=Объект.СтруктураВыгрузки[14].Значение;
               БД.AmountRem=Объект.СтруктураВыгрузки[15].Значение;
               
               //БД.BeginDate=Дата(СтрЗаменить(Объект.СтруктураВыгрузки[16].Значение,".",""));
               //БД.EndDate=Дата(СтрЗаменить(Объект.СтруктураВыгрузки[17].Значение,".",""));
               БД.BeginDate=Объект.BeginDate;
               БД.EndDate=Объект.EndDate;
               
               БД.Записать();
               
               БД.Добавить();
               БД.CustAcc=Объект.СтруктураВыгрузки[0].Значение;    
               БД.CustName=Объект.СтруктураВыгрузки[1].Значение;
               БД.INN=Объект.СтруктураВыгрузки[2].Значение;
               БД.Address=Объект.СтруктураВыгрузки[3].Значение;

               БД.Art=Объект.СтруктураВыгрузки[4].Значение;
               БД.ItemId=Объект.СтруктураВыгрузки[5].Значение;
               БД.ItemName=Объект.СтруктураВыгрузки[6].Значение;
               БД.QtyRem=Объект.СтруктураВыгрузки[14].Значение;
               БД.AmountRem=Объект.СтруктураВыгрузки[15].Значение;
               БД.EndDate=Объект.EndDate;
               
               БД.Записать();        
               
           КонецЦикла;
           
       КонецЦикла;
       
       
       БД.ЗакрытьФайл();
       
       ПоказатьОповещениеПользователя("Выгрузка успешно завершена ("+ПутьККаталогу+"\ax"+"001090"+".dbf");
       
       
   КонецЕсли;
   
КонецПроцедуры

&НаСервере
Процедура ПереборПодчиненыхЭлементов(Номенклатура,Массив)
   
   // Получить выборку по указанному контрагенту.
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    Номенклатура.Ссылка
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.Родитель = &Владелец";
   
   Запрос.УстановитьПараметр("Владелец", Номенклатура);
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       Если НЕ Выборка.Ссылка.ЭтоГруппа Тогда
           Массив.Добавить(Выборка.Ссылка);    
       Иначе //Это группа
           ПереборПодчиненыхЭлементов(Выборка.Ссылка,Массив);            
       КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры

&НаСервере

Функция ЗапросПоПользователям()
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Пользователи.Ссылка
   |ИЗ
   |    Справочник.Пользователи КАК Пользователи
   |ГДЕ
   |    Пользователи.ПометкаУдаления = ЛОЖЬ";
   
   Результат = Запрос.Выполнить();
   
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       Объект.Пользователи.Добавить().Пользователь =  Выборка.Ссылка;
   КонецЦикла;
КонецФункции


&НаКлиенте
Процедура СформироватьВыгрузку(Команда)
   
   МассивНоменклатуры=Новый Массив;
   ПереборПодчиненыхЭлементов(Объект.Номенклатура,МассивНоменклатуры);
   
   СформироватьПродажи(МассивНоменклатуры);
   СформироватьОстатки(МассивНоменклатуры);

   
   
   Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
   ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
   ДиалогОткрытия.Каталог = "";
   ДиалогОткрытия.МножественныйВыбор = Ложь;
   ДиалогОткрытия.Заголовок = "Выберите каталог";    
   
   Если ДиалогОткрытия.Выбрать() Тогда
       
       ПутьККаталогу = ДиалогОткрытия.Каталог;
       
       Попытка
           УдалитьФайлы(ПутьККаталогу+"\"+"ax001090"+".dbf"); //СокрЛП(Строка(Объект.CustAcc))
       Исключение

       КонецПопытки;

       
       БД = Новый XBase;
       
       БД.Кодировка=КодировкаXBase.OEM;
       
       БД.Поля.Добавить("CustAcc","S",20);    
       БД.Поля.Добавить("CustName","S",100);
       БД.Поля.Добавить("INN","S",12);
       БД.Поля.Добавить("Address","S",250);
       БД.Поля.Добавить("Art","S",4);
       БД.Поля.Добавить("ItemId","S",20);
       БД.Поля.Добавить("ItemName","S",200);
       БД.Поля.Добавить("TradeEmpId","S",20);
       БД.Поля.Добавить("TradeEmpN","S",80);
       БД.Поля.Добавить("VO","N",1,0);
       БД.Поля.Добавить("Price","N",15,2);
       БД.Поля.Добавить("Qty","N",15,0);
       БД.Поля.Добавить("QtyBon","N",15,0);
       БД.Поля.Добавить("Amount","N",15,2);
       БД.Поля.Добавить("QtyRem","N",15,0);
       БД.Поля.Добавить("AmountRem","N",15,2);
       БД.Поля.Добавить("BeginDate","D",10,0);
       БД.Поля.Добавить("EndDate","D",10,0);
       
       БД.СоздатьФайл(ПутьККаталогу+"\"+"ax001090"+".dbf");  //ax СокрЛП(Строка(Объект.CustAcc))
       
       
       Для каждого СтрокаТаблицаПродаж Из Объект.ТаблицаПродаж Цикл
           
               БД.Добавить();
               БД.CustAcc=Объект.CustAcc;    
               БД.CustName=Объект.Контрагент;
               БД.INN=Объект.ИНН;
               БД.Address=ПолучитьАдрес();
               БД.Art=СтрокаТаблицаПродаж.Art;
               БД.ItemId=ПолучитьItemId(СтрокаТаблицаПродаж.ItemName);
               БД.ItemName=СтрокаТаблицаПродаж.ItemName;
               БД.TradeEmpId="";
               БД.TradeEmpN=СтрокаТаблицаПродаж.TradeEmpN;
               БД.VO=0;
               БД.Price= ?(СтрокаТаблицаПродаж.Qty=0,0,Формат(СтрокаТаблицаПродаж.Amount/СтрокаТаблицаПродаж.Qty,"ЧДЦ=2"));
               БД.Qty=СтрокаТаблицаПродаж.Qty;
               БД.QtyBon=СтрокаТаблицаПродаж.QtyBon;
               БД.Amount=СтрокаТаблицаПродаж.Amount;
               БД.QtyRem=0;
               БД.AmountRem=0;
               
               //БД.BeginDate=Дата(СтрЗаменить(Объект.СтруктураВыгрузки[16].Значение,".",""));
               //БД.EndDate=Дата(СтрЗаменить(Объект.СтруктураВыгрузки[17].Значение,".",""));
               БД.BeginDate=Объект.BeginDate;
               БД.EndDate=Объект.EndDate;
               
               БД.Записать();
           КонецЦикла;
           
           Для каждого СтрокаТаблицаОстаток Из Объект.ТаблицаОстаток Цикл
               
               БД.Добавить();
               БД.Art=СтрокаТаблицаОстаток.Art;
               БД.ItemId=ПолучитьItemId(СтрокаТаблицаОстаток.ItemName);
               БД.ItemName=СтрокаТаблицаОстаток.ItemName;
               БД.QtyRem=СтрокаТаблицаОстаток.QtyRem;
               БД.AmountRem=Формат(СтрокаТаблицаОстаток.AmountRem,"ЧДЦ=2");
               БД.EndDate=Объект.EndDate;
               
               БД.Записать();

           КонецЦикла;

       БД.ЗакрытьФайл();
       
               
       ПоказатьОповещениеПользователя("Выгрузка успешно завершена ("+ПутьККаталогу+"\"+"ax001090"+".dbf"); //СокрЛП(Строка(Объект.CustAcc))
   
   
КонецЕсли;    
   
КонецПроцедуры

&НаСервере
Функция ПолучитьАдрес()
     Возврат Объект.Контрагент.КонтактнаяИнформация.Найти(Справочники.ВидыКонтактнойИнформации.ФактАдресКонрагента,"Вид").Представление;    
КонецФункции

&НаСервере
Функция ПолучитьItemId(ItemName)
   Для каждого ДопРеквизит Из ItemName.ДополнительныеРеквизиты Цикл
                   Если  ДопРеквизит.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Код товара поставщика") Тогда
                       Возврат ДопРеквизит.Значение;  //Объект.ItemName.ДополнительныеРеквизиты.Найти("Значение").Значение
                   КонецЕсли
               КонецЦикла;
КонецФункции

&НаСервере
Функция ПолучитьПроцессорВывода()
   Возврат Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;    
КОнецФункции

&НаСервере
Функция СформироватьПродажи(МассивНоменклатуры)
   СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");  
   КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
   КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
   
   НачалоПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2];
   НачалоПериода.Значение = НачалоДня(Объект.EndDate);
   НачалоПериода.Использование = ИСТИНА;
   
   КонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[3];
   КонецПериода.Значение = КонецДня(Объект.BeginDate);
   КонецПериода.Использование = ИСТИНА;
   
   КонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[4];
   КонецПериода.Значение = Объект.CustAcc;
   КонецПериода.Использование = ИСТИНА;
   
   КонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[5];
   КонецПериода.Значение = Объект.CustName;
   КонецПериода.Использование = ИСТИНА;
   
   КонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[6];
   КонецПериода.Значение = Объект.Организация.ИНН;
   КонецПериода.Использование = ИСТИНА;

   КонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[7];
   КонецПериода.Значение = Объект.Контрагент.КонтактнаяИнформация.Найти(Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагент,"Вид").Представление;
   КонецПериода.Использование = ИСТИНА;
                 
   КонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[8];
   КонецПериода.Значение = "%"+"**БОНУС!!!"+"%";
   КонецПериода.Использование = ИСТИНА;
   
   КонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[9];
   КонецПериода.Значение = МассивНоменклатуры;
   КонецПериода.Использование = ИСТИНА;

       
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
   
   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных();
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
   
   //ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных();
   //ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
   //
   //
   //ЭлементыФормы.Результат.Очистить();
   //ДокументРезультат = ЭлементыФормы.Результат;
   //
   //ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   //ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   //
   //ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   
   МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
   КомпоновщикНастроек.Настройки, , ,
   Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
   ТаблицаЗначений = Новый ТаблицаЗначений;
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
   ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
   Объект.ТаблицаПродаж.Очистить();
   
   Для каждого строкаТаблицаЗначений из ТаблицаЗначений Цикл
   НоваяСтрокаПродажи = Объект.ТаблицаПродаж.Добавить();
   НоваяСтрокаПродажи.Art = СтрокаТаблицаЗначений.Art;
   НоваяСтрокаПродажи.ItemName = строкаТаблицаЗначений.ItemName;
   НоваяСтрокаПродажи.TradeEmpN = строкаТаблицаЗначений.TradeEmpN;
   НоваяСтрокаПродажи.Qty = строкаТаблицаЗначений.Qty;
   НоваяСтрокаПродажи.QtyBon = строкаТаблицаЗначений.QtyBon;
   НоваяСтрокаПродажи.Amount = строкаТаблицаЗначений.Amount;
   КонецЦикла;
   //Возврат ТаблицаЗначений;
КонецФункции

&НаСервере
Функция СформироватьОстатки(МассивНоменклатуры)
1 butterbean
 
17.04.12
10:40
Объект это что??
2 del12
 
17.04.12
11:00
Процедура Сформировать(Команда)
   
Объект.СтруктураВыгрузки.Очистить();
   
   ЗначенияПолей=ПолучитьЗначенияПолей();
   
   //CustAcc
   НоваяСтрока = Объект.СтруктураВыгрузки.Добавить();    
   НоваяСтрока.ИмяПоля = "CustAcc";
   НоваяСтрока.Значение=Объект.CustAcc;.....