|   |   | 
| 
 | v7: Выбрать из документа табличную часть | ☑ | ||
|---|---|---|---|---|
| 0
    
        julia_rostov 14.04.14✎ 11:41 | 
        Всем добрый день! Есть вопросы. Есть документ, из него нужно выбрать табличную часть.Делаю выборку за период по документам,за один день например. А обработка выводит только последние строки каждого документа. А мне нужно вывести все строки. Подскажите как? или дайте ссылку где почитать.Всем заранее спасибо     | |||
| 1
    
        VladZ 14.04.14✎ 11:42 | 
        Покажи, как делаешь.     | |||
| 2
    
        vladko 14.04.14✎ 11:42 | 
        док.выбратьСтроки(); Пока док.ПолучитьСтроку() = 1 Цикл ... КонецЦикла; | |||
| 3
    
        aka AMIGO 14.04.14✎ 11:42 | 
        интересно..
 док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 Цикл // читай-не-хочу.. а вообще - СП | |||
| 4
    
        julia_rostov 14.04.14✎ 12:47 | 
        Процедура Сформировать()
 Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Обрабатывать НеПомеченныеНаУдаление; |ПриходнаяКредит = Документ.ПриходнаяКредит.ТекущийДокумент; |Товар = Документ.ПриходнаяКредит.Товар; |Цена = Документ.ПриходнаяКредит.Цена; |Группировка ПриходнаяКредит без групп; |Условие(ПриходнаяКредит = ВыбПриходнаяКредит); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ДатаОтчета = ТекущаяДата(); Док=СоздатьОбъект("Документ.ПриходнаяКредит"); Док.выбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл КонецЦикла; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей ПриходнаяКредит Таб.ВывестиСекцию("ПриходнаяКредит"); КонецЦикла; // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры | |||
| 5
    
        DmitriyDI 14.04.14✎ 12:49 | 
        (4) что за бред написан тут)
 Док=СоздатьОбъект("Документ.ПриходнаяКредит"); Док.выбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл КонецЦикла; | |||
| 6
    
        aka AMIGO 14.04.14✎ 12:51 | 
        ой-ёй.. не надо так..
 срочно: //Док=СоздатьОбъект("Документ.ПриходнаяКредит"); // Док.выбратьСтроки(); // // Пока Док.ПолучитьСтроку() = 1 Цикл // // КонецЦикла; а вот тут переделать: Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей ПриходнаяКредит Док = Запрос.ПриходнаяКредит. Док.ВыбратьСтроки(); //если тебе надо уж вот как выбирать строки.. Пока получитьстроку()=1 Цикл //... Таб.ВывестиСекцию("ПриходнаяКредит"); КонецЦикла; | |||
| 7
    
        aka AMIGO 14.04.14✎ 12:52 | 
        Пока док.получитьстроку()=1 Цикл
 //... блинчик.. | |||
| 8
    
        DmitriyDI 14.04.14✎ 12:53 | 
        (7) + Таб.ВывестиСекцию("ПриходнаяКредит"); тут надо еще будет посмотреть как обращение идет при выводе и скорее всего переделать     | |||
| 9
    
        DmitriyDI 14.04.14✎ 12:54 | 
        (8)+ это в самом макете уже     | |||
| 10
    
        aka AMIGO 14.04.14✎ 12:55 | 
        а лучше-то так:
 |Группировка ПриходнаяКредит без групп; |Группировка Товар без групп; Пока Запрос.Группировка(1)=1 Цикл ... Пока Запрос.Группировка(2)=1 Цикл //... это и будет выборка по строкам документа | |||
| 11
    
        Mikeware 14.04.14✎ 12:57 | 
        А группировку по строке документа гук делать будет?     | |||
| 12
    
        aka AMIGO 14.04.14✎ 12:58 | 
        (11) ей надо выбрать строки.. не нужна груп-ка по строкам     | |||
| 13
    
        oslokot 14.04.14✎ 13:06 | 
        весело тут
 (12) нужна группировка по строке, иначе сгруппируется по одинаковому товару | |||
| 14
    
        aka AMIGO 14.04.14✎ 13:08 | 
        (13) неа.. группировка будет по товару в одном доке, 
 первый цикл - выборка док второй - выборка товара в одном доке.. | |||
| 15
    
        aka AMIGO 14.04.14✎ 13:09 | 
        +14 если в приходной один товар во многих строках - тогда пардон..     | |||
| 16
    
        oslokot 14.04.14✎ 13:09 | 
        (14) я и говорю, группировка по "Товар" сложит строки с одинаковым товаром     | |||
| 17
    
        aka AMIGO 14.04.14✎ 13:10 | 
        (16) а это уже проблемы бухов..     | |||
| 18
    
        julia_rostov 14.04.14✎ 14:09 | 
        ВСЕМ спасибочки, уже давно сама нашла свои ошибки))     | |||
| 19
    
        Mikeware 14.04.14✎ 14:10 | 
        (18) читайте Синтакс-помощник, и вам воздастся...     | |||
| 20
    
        Попытка1С 14.04.14✎ 14:12 | 
        Юлия все не тем занимается.. и не за те деньги видимо..     | |||
| 21
    
        Mikeware 14.04.14✎ 14:41 | 
        (20) я ей, помнится, советовал уйти на вдвое более высокооплачиваемую работу. но меня забанили...     | |||
| 22
    
        КонецЦикла 14.04.14✎ 14:49 | 
        (4) Док=СоздатьОбъект("Документ.ПриходнаяКредит");
 Док.выбратьСтроки(); Док не спозиционирован, сделай сообщить(Док) Или в запрос добавить группировку или перебором | |||
| 23
    
        Тот же 14.04.14✎ 14:54 | 
        (22) Правильно, позиционировать нужно.
 ПрихДок = Запрос.ПриходнаяКредит. Док.НайтиДокумент(ПрихДок). И дальше уже цикл Док.ВыбратьСтроки() Пока Док.ПолучитьСтроку() | |||
| 24
    
        oslokot 14.04.14✎ 14:59 | 
        дама уже ушла, джентльмены :)     | |||
| 25
    
        Boroda 14.04.14✎ 14:59 | 
        Если уж делать запрос именно построчно, то лучше группировать именно по номеру строки. Типа так:
 ТекстЗапроса = " |Период с НачДата по КонДата; |ТекДок = Документ.Реализация.ТекущийДокумент; |НомерСтроки = Документ.Реализация.НомерСтроки; |Группировка Документ; |Группировка НомерСтроки; |"; | |||
| 26
    
        Злопчинский 14.04.14✎ 18:45 | 
        во-первых, дама без лица
 а во-вторых - проще писать надо проще!! понятней! и разжевывать кому не лень ;-) а то нагрузили девочку она опухла от тонны инфы и свалила | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |