|
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
|
во-первых, дама без лица
а во-вторых - проще писать надо проще!! понятней! и разжевывать кому не лень ;-) а то нагрузили девочку она опухла от тонны инфы и свалила |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |