Имя: Пароль:
1C
1С v8
Не работает запрос
0 KrasnSergey
 
07.11.18
10:25
Добрый день!
В документе инвентаризация БГУ1 в табличную часть должно попадать 125000 строк. Ограничение 1с 99999. Переделал типовой запрос на выбрать первые 99000. Для второй части ОС загружаю обработкой ТЧ, код запроса прилагаю. Пользовался подобной схемой при выборке документов, с остатками не проходит. Отсеивает не те ОС которые были в выбрать первые 99999
    "ВЫБРАТЬ ПЕРВЫЕ 99999
    |    ЕПСБУОстатки.Счет КАК Счет,
    |    ЕПСБУОстатки.Субконто2 КАК ОС,
    |    ЕПСБУОстатки.Субконто3 КАК ЦМО,
    |    ЕПСБУОстатки.Субконто3.Код КАК ЦМОКод,
    |    ВЫРАЗИТЬ(ЕПСБУОстатки.Субконто2 КАК Справочник.ОсновныеСредства).Код КАК ОСКод,
    |    ВЫРАЗИТЬ(ЕПСБУОстатки.Субконто2 КАК Справочник.ОсновныеСредства).Наименование КАК ОСПредставление,
    |    ВЫРАЗИТЬ(ЕПСБУОстатки.Субконто2 КАК Справочник.ОсновныеСредства).ГрупповойУчет КАК ГрупповойУчет,
    |    ВЫБОР
    |        КОГДА ЕПСБУОстатки.Счет В ИЕРАРХИИ (&СчетНПА)
    |            ТОГДА 1
    |        ИНАЧЕ ЕСТЬNULL(ЕПСБУОстатки.КоличествоОстаток, 0)
    |    КОНЕЦ КАК КоличествоБУ,
    |    ЕПСБУОстатки.СуммаОстаток КАК СтоимостьБалансовая,
    |    ЕПСБУОстатки.КБК КАК КБК,
    |    ЕПСБУОстатки.КВД КАК КВД,
    |    ЕПСБУОстатки.Баланс КАК Баланс,
    |    ЕПСБУОстатки.Счет.Код КАК СчетКод,
    |    ПРЕДСТАВЛЕНИЕ(ЕПСБУОстатки.КВД) КАК КВДПредставление,
    |    ЕПСБУОстатки.Баланс.Код КАК БалансКод,
    |    ВЫРАЗИТЬ("""" КАК СТРОКА(200)) КАК Ключ
    |ИЗ
    |    РегистрБухгалтерии.ЕПСБУ.Остатки(
    |            &ДатаЗапроса,
    |            Счет.Ссылка В ИЕРАРХИИ (&Счет101),
    |            ,
    |            Учреждение = &Учреждение
    |                И Субконто3 В (&ЦМО)
    |                И ВЫБОР
    |                    КОГДА &БалансОтбор = НЕОПРЕДЕЛЕНО
    |                        ТОГДА ИСТИНА
    |                    ИНАЧЕ Баланс = &БалансОтбор
    |                КОНЕЦ) КАК ЕПСБУОстатки
    |ГДЕ
    |    ЕПСБУОстатки.СуммаОстаток <> 0
    |    И НЕ ВЫРАЗИТЬ(ЕПСБУОстатки.Субконто2 КАК Справочник.ОсновныеСредства).Код В
    |                (ВЫБРАТЬ ПЕРВЫЕ 99999
    |                    ВЫРАЗИТЬ(ЕПСБУОстатки.Субконто2 КАК Справочник.ОсновныеСредства).Код
    |                ИЗ
    |                    РегистрБухгалтерии.ЕПСБУ.Остатки(&ДатаЗапроса, Счет.Ссылка В ИЕРАРХИИ (&Счет101), , Учреждение = &Учреждение
    |                        И Субконто3 В (&ЦМО)
    |                        И ВЫБОР
    |                            КОГДА &БалансОтбор = НЕОПРЕДЕЛЕНО
    |                                ТОГДА ИСТИНА
    |                            ИНАЧЕ Баланс = &БалансОтбор
    |                        КОНЕЦ) КАК ЕПСБУОстатки)
    |ИТОГИ ПО
    |    ОС,
    |    ЦМО
    |;
1 KrasnSergey
 
07.11.18
10:26
в вопросе ошибка не 99000, а 99999 (((
2 ДенисЧ
 
07.11.18
10:26
Сортировки нет. А без неё ПЕРВЫЕ выдаёт данные как БГ на душе положит
3 KrasnSergey
 
07.11.18
10:27
изменение типового варианта:

    |    И НЕ ВЫРАЗИТЬ(ЕПСБУОстатки.Субконто2 КАК Справочник.ОсновныеСредства).Код В
    |                (ВЫБРАТЬ ПЕРВЫЕ 99999
    |                    ВЫРАЗИТЬ(ЕПСБУОстатки.Субконто2 КАК Справочник.ОсновныеСредства).Код
    |                ИЗ
    |                    РегистрБухгалтерии.ЕПСБУ.Остатки(&ДатаЗапроса, Счет.Ссылка В ИЕРАРХИИ (&Счет101), , Учреждение = &Учреждение
    |                        И Субконто3 В (&ЦМО)
    |                        И ВЫБОР
    |                            КОГДА &БалансОтбор = НЕОПРЕДЕЛЕНО
    |                                ТОГДА ИСТИНА
    |                            ИНАЧЕ Баланс = &БалансОтбор
    |                        КОНЕЦ) КАК ЕПСБУОстатки)
4 KrasnSergey
 
07.11.18
10:31
(2) при добавлении сортировки ругается ...
5 unregistered
 
07.11.18
10:33
(0) Не занимайтесь ерундой.
Поменяйте подход и заполняйте документ инвентаризации таким образом, чтобы в результате было менее 90000 объектов.
Добавьте в текст запроса отборы (по подразделениям, учреждениям, субсчетам, каким-либо ещё параметрам). В обработке заполнения - возможность эти отборы устанавливать.
6 Deon
 
07.11.18
10:34
(4) Как ругается-то?
7 unregistered
 
07.11.18
10:35
(6) Видимо настолько нецензурно, что автору стыдно тут цитировать.
8 KrasnSergey
 
07.11.18
10:37
(5) случай уникальный, база передается другой базе хранения, объем документов очень большой - все на 1 ЦМО
9 Buster007
 
07.11.18
10:39
сделай обработку уже наконец, которая заполнит тебе n документов
10 KrasnSergey
 
07.11.18
10:41
(9) вопрос про запрос )))
11 KrasnSergey
 
07.11.18
10:43
(6) {(49, 1)}: Во вложенных запросах нельзя применять операцию УПОРЯДОЧИТЬ ПО без использования конструкции ПЕРВЫЕ.
12 unregistered
 
07.11.18
10:45
(8) Если никаких критериев отбора нет совсем (что весьма сомнительно) или вам никак их не придумать (что более вероятно), то см. (9) - сделайте обработку, которая будет формировать несколько документов - как только в цикле дошли до счетчика 90000 - записываем текущий документ и создаём следующий.
13 KrasnSergey
 
07.11.18
10:48
(12) Скорее всего так и придется....