Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 10:54
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите найти ошибку! Выгрузка в DBF.  (Прочитано 5243 раз)

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

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Процедура Сформировать()  
Если ВыбПост.Выбран()=0 Тогда
Сообщить("Не выбран поставщик");
Возврат;
КонецЕсли;      
Если ВыбФирма.Выбран()=0 Тогда
Сообщить("Не выбрано юрлицо дистрибьютора");
Возврат;
КонецЕсли;      

Ном=Найти(ВыбФирма.ИНН,"\");
Если Ном=0 Тогда
Ном=Найти(ВыбФирма.ИНН,"/");
КонецЕсли;        
Если Ном<>0 Тогда
ИНН=Лев(ВыбФирма.ИНН, 10);
КПП=Прав(ВыбФирма.ИНН, 9);
КонецЕсли;

// *****************************************************

ДБФ=СоздатьОбъект("XBase");
дбф.ДобавитьПоле("A",2,20,);
дбф.ДобавитьПоле("B",2,20,);
дбф.ДобавитьПоле("C",3,,); 
дбф.ДобавитьПоле("D",2,50,); 
дбф.ДобавитьПоле("E",2,50,);
дбф.ДобавитьПоле("F",2,250,);
дбф.ДобавитьПоле("G",2,50,);   
дбф.ДобавитьПоле("H",2,250,); 
дбф.ДобавитьПоле("I",1,15,0); 
дбф.ДобавитьПоле("J",1,15,2); 
дбф.ДобавитьПоле("K",1,15,2);

если фс.СуществуетФайл(Сокрлп(Путь)+"\narzan.dbf")<>0 тогда
фс.УдалитьФайл(Сокрлп(Путь)+"\narzan.dbf");
конецесли;
ДБФ.СоздатьФайл(Сокрлп(Путь)+"\narzan.dbf",);   

Запрос=СоздатьОбъект("Запрос");
Текст= "//{{ЗАПРОС(Продажи)
|Период с ВыбНачПериода по ВыбКонПериода;
|Док = Документ.РасходнаяНакладная.ТекущийДокумент;
|Товар = Документ.РасходнаяНакладная.Товар;
|Количество = Документ.РасходнаяНакладная.Количество;
|Сумма = Документ.РасходнаяНакладная.Сумма;
|Функция КолП1 = Сумма(Количество);
|Функция СумП1 = Сумма(Сумма);
|Группировка Товар без групп;
|Условие(Док.Грузоотправитель=ВыбПост);
|"//}}ЗАПРОС
;
Запрос.Выполнить(Текст);

Пока Запрос.Группировка(1)=1 Цикл   
    Пока Запрос.Группировка(2)=1 Цикл
Если ПустоеЗначение(Запрос.Док.Грузоотправитель)=1 Тогда
Продолжить;
КонецЕсли;

Кол=Запрос.КолП1; 
Сум=Запрос.СумП1;
Если Кол=0 Тогда
Продолжить;
КонецЕсли;
ДБФ.Добавить();     
ДБФ.УстановитьЗначениеПоля("A",ИНН);   
ДБФ.УстановитьЗначениеПоля("B",КПП);
ДБФ.УстановитьЗначениеПоля("C",Запрос.Док.ДатаДок);     
ДБФ.УстановитьЗначениеПоля("D",Сокрлп(Запрос.Док.НомерДок));
ДБФ.УстановитьЗначениеПоля("E",Строка(Запрос.Док.Грузоотправитель.Код)); 
ДБФ.УстановитьЗначениеПоля("F",Сокрлп(Запрос.Док.Грузоотправитель.Наименование));   
ДБФ.УстановитьЗначениеПоля("G",Сокрлп(Запрос.Товар.Код));     
ДБФ.УстановитьЗначениеПоля("H",Сокрлп(Запрос.Товар.Наименование));   
ДБФ.УстановитьЗначениеПоля("I",Кол);   
ДБФ.УстановитьЗначениеПоля("J",Сум/Кол);
ДБФ.УстановитьЗначениеПоля("K",Сум); 

ДБФ.Записать();   
КонецЦикла;
КонецЦикла;           
ДБФ.ЗакрытьФайл();
//
КонецПроцедуры
Процедура ПриНачалеВыбораЗначения(Элем,Флаг)
Если Элем="Путь" Тогда
Флаг=0;
ФС.ВыбратьКаталог(Путь,"Выберите каталог файла",60);
КонецЕсли;
КонецПроцедуры
ВыбКонПериода=РабочаяДата();
ВыбНачПериода=РабочаяДата();
 

Последний раз редактировалось: MuI_I_Ika; 03 Окт 2013, 15:33


Оффлайн crow1983

  • Глобальный модератор
  • *****
  • Сообщений: 438
  • РЕПУТАЦИЯ: 43
  • КПД: 10%
  • Регистрация: 2010-04-26
  • Сайт: 
  • Профессия: Программист 8.1
Как ошибка то выглядит?
Преподаватель, программист...и просто хороший человек

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Как ошибка то выглядит?
Ошибки не выскакивают.Сам файл создается, но данные туда не попадают. что то с группировками может?ни в один из циклов не заходит..

Оффлайн crow1983

  • Глобальный модератор
  • *****
  • Сообщений: 438
  • РЕПУТАЦИЯ: 43
  • КПД: 10%
  • Регистрация: 2010-04-26
  • Сайт: 
  • Профессия: Программист 8.1
Для начала отладчиком попробуйте. Точку остонова поставте и посмотрите как код выполняется.
Преподаватель, программист...и просто хороший человек

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Для начала отладчиком попробуйте. Точку остонова поставте и посмотрите как код выполняется.
а как просмотреть результат запроса?

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Если у вас не чего не выводится, то скорее всего из-за этого:
ВыбКонПериода=РабочаяДата();
ВыбНачПериода=РабочаяДата();


Помогли, отблагодари!

Оффлайн crow1983

  • Глобальный модератор
  • *****
  • Сообщений: 438
  • РЕПУТАЦИЯ: 43
  • КПД: 10%
  • Регистрация: 2010-04-26
  • Сайт: 
  • Профессия: Программист 8.1
Открываешь в конфигураторе обработку. Ставишь точку(можно просто щелкнуть ЛКМ напротив нужной строки). Запускаешь предприятие в режиме отладки. Запускаешь обработку...в конфигураторе смотришь.
Преподаватель, программист...и просто хороший человек

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Если у вас не чего не выводится, то скорее всего из-за этого:
ВыбКонПериода=РабочаяДата();
ВыбНачПериода=РабочаяДата();

нет,это по умолчанию дата,я её изменяю то же самое.
кстати вот ещё в запросе строчка должна быть
|Группировка Док;

проблема в запросе или в группировках думаю гдето...


Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Открываешь в конфигураторе обработку. Ставишь точку(можно просто щелкнуть ЛКМ напротив нужной строки). Запускаешь предприятие в режиме отладки. Запускаешь обработку...в конфигураторе смотришь.
Это не 8! Надо сначала Отладчик запустить!
Помогли, отблагодари!

Оффлайн crow1983

  • Глобальный модератор
  • *****
  • Сообщений: 438
  • РЕПУТАЦИЯ: 43
  • КПД: 10%
  • Регистрация: 2010-04-26
  • Сайт: 
  • Профессия: Программист 8.1
Если у вас не чего не выводится, то скорее всего из-за этого:
ВыбКонПериода=РабочаяДата();
ВыбНачПериода=РабочаяДата();



Зачем вообще использовать Период, если выборка из текущего документ?
Преподаватель, программист...и просто хороший человек


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 894
  • Точка Скрытых: 0
  • Точка Пользователей: 14
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal