Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос в SQL и файловой базе работает по разному , как исправить?          
Vofka Подменю пользователя
сообщение 05.05.10, 14:28
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4522 раз
Рейтинг: 3645.4

Привет!

Рабочая база работает на SQL сервере.

Локально база развернута в файловом варианте. Сделал отчет:
спСчетов = СоздатьОбъект("СписокЗначений");
    спСчетов.ДобавитьЗначение(СчетПоКоду("631"));
    спСчетов.ДобавитьЗначение(СчетПоКоду("632"));
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |РСчет = Документ.БанковскаяВыписка.РСчет;
    |ТекущийДокумент = Документ.БанковскаяВыписка.ТекущийДокумент;
    |Счет = Документ.БанковскаяВыписка.Счет;
    |Контрагент = Документ.БанковскаяВыписка.Субконто1;
    |СуммаСНДС = Документ.БанковскаяВыписка.СуммаСНДС;
    |НДС = Документ.БанковскаяВыписка.НДС;
    |ВидОплаты = Документ.БанковскаяВыписка.ВидОплаты;
    |ВидДвижения = Документ.БанковскаяВыписка.ВидДвижения;
    |Содержание = Документ.БанковскаяВыписка.Содержание;
    
    |Функция СуммаСуммаСНДС = Сумма(СуммаСНДС);
    |Функция СуммаНДС = Сумма(НДС);
    
    |Группировка Счет;
    
    |Условие(Счет В спСчетов);
    
    |"
;
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    
    
    Пока Запрос.Группировка(1) = 1 Цикл
        Если Запрос.Счет.ЭтоГруппа() = 1 Тогда
            Продолжить;
        КонецЕсли;
        Таб.ВывестиСекцию("Счет");        
    КонецЦикла;
    
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");


Все нормально.
Переношу отчет в рабочую базу - ничего не показывает! 47046430.gif

Методом тыка и исключений оказалось, что проблема в условии. Если в запросе убрать строчку
|Условие(Счет В спСчетов);

то отчет отрабатывает по всем счетам.

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


Эффекта никакого.
Шо за беда? sad.gif

dmiter Подменю пользователя
сообщение 05.05.10, 20:50
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 108
Из: Киев
Спасибо сказали: 16 раз
Рейтинг: 0

Попробуй добавить группировку не по счету а по строкам документа. Скорее всего счет - это реквизит табличной части. Раньше кажется сталкивался с такой проблемой - что по регистрам группировка работает нормально, а вот когда доходит до табличной части при выборке документов - глюк.

Vofka Подменю пользователя
сообщение 06.05.10, 6:58
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4522 раз
Рейтинг: 3645.4

Цитата
Попробуй добавить группировку не по счету а по строкам документа.

Как добавить группировку по строке?

Batchir Подменю пользователя
сообщение 06.05.10, 7:18
Сообщение #4

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

На сколько помню в скуле были проблемы с конструкцией
|Условие(Счет В спСчетов);

Попробуй заменить на
|Условие(спСчетов.Принадлежит(Счет)=1);

как-то так, пишу на память. Вобщем посмотри приналдежность счета группе.

Цитата
Эффекта никакого.
Шо за беда?

Может сдесь проблема?
Счет = СчетПоКоду("631");
.
.
.
|Условие(Счет = Счет631);

Объявляешь переменную "Счет" (которая выбирается в запросе), а где "Счет631"

Спасибо сказали: Vofka,

Vofka Подменю пользователя
сообщение 06.05.10, 9:03
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4522 раз
Рейтинг: 3645.4

Цитата(Batchir @ 06.05.10, 8:18) *
На сколько помню в скуле были проблемы с конструкцией
|Условие(Счет В спСчетов);

Попробуй заменить на
|Условие(спСчетов.Принадлежит(Счет)=1);

как-то так, пишу на память. Вобщем посмотри приналдежность счета группе.


Спасибо, сработало!

Цитата(Batchir @ 06.05.10, 8:18) *
Может сдесь проблема?
Счет = СчетПоКоду("631");
.
.
.
|Условие(Счет = Счет631);

Объявляешь переменную "Счет" (которая выбирается в запросе), а где "Счет631"


Это я что-то неправтльно написал. Было
Счет631 = СчетПоКоду("631");
.
.
.
|Условие(Счет = Счет631);

Проблема не в этом.

Появилась новая проблема. Добавил на форму реквизит Выбконтрагент и условия:
1.
Если ПустоеЗначение(ВыбКонтрагент) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса +
        "
        |Условие(Контрагент В ВыбКонтрагент);
        |"
    ;
    КонецЕсли;


2.
Если ПустоеЗначение(ВыбКонтрагент) = 0 Тогда
        ТекстЗапроса = ТекстЗапроса +
        "
        |Условие(Контрагент = ВыбКонтрагент);
        |"
    ;
    КонецЕсли;


Результат в обоих случаях пустой sad.gif

ЗЫ. вопрос про группировку по строке все ещё интересен smile.gif

Fynjy Подменю пользователя
сообщение 06.05.10, 9:15
Сообщение #6

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Запрос.ВключитьSQL(0) ...


Signature

Vofka Подменю пользователя
сообщение 06.05.10, 10:20
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4522 раз
Рейтинг: 3645.4

Fynjy, если "=" - то работает, а с "В" не работает. Нету ещё для "В" какого-то "прикольчика"? smile.gif

Fynjy Подменю пользователя
сообщение 06.05.10, 11:21
Сообщение #8

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Смотря что ты передаешь в ВыбКонтрагент, если ссылку то работать В не будет ... Что логично ...


Signature

Vofka Подменю пользователя
сообщение 06.05.10, 11:47
Сообщение #9

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4522 раз
Рейтинг: 3645.4

Передаю ссылку на элемент справочника (группу) Контрагенты. Можно объяснить логику?
ЗЫ. в файловой базе ж работает 73000000.gif

dmiter Подменю пользователя
сообщение 06.05.10, 16:21
Сообщение #10

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 108
Из: Киев
Спасибо сказали: 16 раз
Рейтинг: 0

Цитата(Vofka @ 06.05.10, 8:58) *
Как добавить группировку по строке?

Синтаксис - помощник:
Группировка <?> Упорядочить по ;
Синтаксис:
Группировка <ИмяГруппировки>|<ПредопредГруппировка> [Упорядочить по <КонкретизацГруппировки>, ...][Без Упорядочивания][Без Групп][Все [ВошедшиеВЗапрос]];
Англоязычный синоним:
Group <ИмяГруппировки>|<ПредопредГруппировка> [Order By КонкретизацГруппировки, ...][Without Groups][All [IncludedInQuery]];
Назначение:
Установить порядок выборки информации.
Параметры:
<ИмяГруппировки> - имя внутренней переменной, задающей группировку;
<ПредопредГруппировка> - ключевое слово одной из встроенных группировок;
<КонкретизацГруппировки> - конкретизация переменной <ИмяГруппировки>, задающая порядок групп.
Ключевые слова:
Упорядочить по - параметры, следующие за данным ключевым словом, определяют упорядочивание строк в группировке.
Без Упорядочивания - необязательное добавочное ключевое слово, которое преследует цель уменьшения времени формирования запроса, при условии, что ни упорядочивание, ни значения упорядочивания при использовании данного запроса не нужны.
Без Групп - группы справочника не выводятся в запрос (для группировки по справочнику);
Все - в запрос выводятся все значения, и нулевые тоже (используется для группировок по справочникам и временных группировок).
ВошедшиеВЗапрос - уточняет предыдущее ключевое слово 'Все'. Использование данного слова подразумевает, что в каждую строку запроса будут включены значения данных (в том числе нулевые), для которых есть ненулевое значение хотя бы в одной строке запроса.
Замечание:
Предопределенные группировки:
Документ (Document) - позволяет детализацию до документа;
СтрокаДокумента (DocumentLine) - позволяет детализацию до строки документа;

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 22.05.24, 14:30
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!