7.7 Помогите найти ошибку! Выгрузка в DBF.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем andryscha92, 3 окт 2013.

  1. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    Конфигурация БП. Нужно выгрузить с документа РасходнаяНакладная поля в файл DBF.

    Есть обработка, но в ней ОШИБКА.Видимо в запросе или что то не так с группировками!
    Помогите разобраться с выгрузкой.Вот сам код:

    Процедура Сформировать()
    Если ВыбПост.Выбран()=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);
    КонецЕсли;
    КонецПроцедуры
    ВыбКонПериода=РабочаяДата();
    ВыбНачПериода=РабочаяДата();
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    1. оформляйте код в тэги...
    2. Вы из текущего документа пытаетесь выгрузить табл.часть?? Для чего вообще запрос?? Можно циклом по строкам пройтись...
    3. Какая ошибка выскакивает?
    4. Файл создался?
  3. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    Ошибки не выскакивают.Сам файл создается, но данные туда не попадают. что то с группировками может?ни в один из циклов не заходит..
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    ...
    Запрос.Выполнить(Текст);
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ);
    ТЗ.ВыбратьСтроку();
    ...
    
    В ТЗ что-нибудь попадает?
  5. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    вместо запроса попробуйте написать:
    Код:
    ВыбратьСтроки();
    Пока ПолучитьСтроку() > 0 Цикл
    КонецЦикла;
    думаю запрос здесь не нужен...
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    не... Там же выборка за период
  7. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    кстати вот ещё в запросе строчка должна быть
    |Группировка Док;

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

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Сначала определитесь - попадает что-нибудь в запрос или нет...
  9. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29

    Дело в запросе, почему то данные туда не попадают!

    Что то с условием,буду разбираться...если что напишу результат!
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Как вариант у вас дубль в справочнике контрагентов... Смотрите по коду элемента
  11. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    Всем спасибо!
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    И в чем была причина?
  13. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    ТЗ дали "мутное".Условие задачи чуть изменили.Теперь вроде получилось всё. Спасибо вам большое!тема закрыта.

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