|
v7: ОбратныйПорядок(1) По "ТаблицаЗначений" через Сортировать | ☑ | ||
---|---|---|---|---|
0
tpudl_bases
29.11.12
✎
15:32
|
Хелп,не получается вывести последный документ
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса="ПЕРИОД С {ДатаКонца} ПО {ДатаКонца};"; ТекстЗапроса=ТекстЗапроса+" |КредДокумент = Регистр.Покупатели.КредДокумент,Регистр.Поставщики.КредДокумент; |ДатаДокумента= Регистр.Покупатели.КредДокумент.ДатаДок,Регистр.Поставщики.КредДокумент.ДатаДок; |Фирма = Регистр.Покупатели.Фирма,Регистр.Поставщики.Фирма; |Контрагент = Регистр.Покупатели.Договор.Владелец,Регистр.Поставщики.Договор.Владелец; |Договор_ = Регистр.Покупатели.Договор,Регистр.Поставщики.Договор; |МОЛ = Регистр.Покупатели.МОЛ,Регистр.Поставщики.МОЛ; |СуммаРубл=Регистр.Покупатели.СуммаРуб,Регистр.Поставщики.СуммаРуб; |"; ТекстЗапроса=ТекстЗапроса+" |Функция СуммаКонРуб=КонОст(СуммаРубл); // |Функция ВидД = Сумма(ВидД(КредДокумент)); |"; ТекстЗапроса=ТекстЗапроса+" |Группировка Контрагент упорядочить по Контрагент.Наименование; |Группировка Договор_; |Группировка КредДокумент ; |"; Флаг=Запрос.Выполнить(ТекстЗапроса); Если Флаг=0 Тогда Сообщить("Ошибка в формировании запроса по итогам регистра. Запрос не выполнен!"); // Возврат; КонецЕсли; Запрос_из_ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(Запрос_из_ТЗ,1); Запрос_из_ТЗ.Сортировать("-ДатаДокумента"); Запрос_из_ТЗ.ВыбратьСтроки(); Пока Запрос_из_ТЗ.ПолучитьСтроку()=1 Цикл |
|||
1
tpudl_bases
29.11.12
✎
15:45
|
апну разочек
|
|||
2
viktor_vv
29.11.12
✎
15:50
|
Запрос_из_ТЗ.Сортировать("-ДатаДокумента",1)
|
|||
3
viktor_vv
29.11.12
✎
15:50
|
А не. У тебя ж там дата.
|
|||
4
viktor_vv
29.11.12
✎
15:51
|
Запрос_из_ТЗ.Сортировать("-КредДокумент",1);
|
|||
5
Касандер72
29.11.12
✎
15:56
|
В запросе: Группировка КредДокумент Упорядочить по КредДокумент.ДатаДок
|
|||
6
tpudl_bases
29.11.12
✎
16:00
|
(5)не работает блина:
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса="ПЕРИОД С {ДатаКонца} ПО {ДатаКонца};"; ТекстЗапроса=ТекстЗапроса+" |КредДокумент = Регистр.Покупатели.КредДокумент,Регистр.Поставщики.КредДокумент; |ДатаДокумента= Регистр.Покупатели.КредДокумент.ДатаДок,Регистр.Поставщики.КредДокумент.ДатаДок; |Фирма = Регистр.Покупатели.Фирма,Регистр.Поставщики.Фирма; |Контрагент = Регистр.Покупатели.Договор.Владелец,Регистр.Поставщики.Договор.Владелец; |Договор_ = Регистр.Покупатели.Договор,Регистр.Поставщики.Договор; |МОЛ = Регистр.Покупатели.МОЛ,Регистр.Поставщики.МОЛ; |СуммаРубл=Регистр.Покупатели.СуммаРуб,Регистр.Поставщики.СуммаРуб; |"; ТекстЗапроса=ТекстЗапроса+" |Функция СуммаКонРуб=КонОст(СуммаРубл); // |Функция ВидД = Сумма(ВидД(КредДокумент)); |"; ТекстЗапроса=ТекстЗапроса+" |Группировка Контрагент упорядочить по Контрагент.Наименование; |Группировка Договор_; |Группировка КредДокумент Упорядочить по КредДокумент.ДатаДок; |"; Если ТипЗначенияСтр(ЗначениеФильтра)="Справочник" Тогда ТекстЗапроса=ТекстЗапроса+" |Условие (Фирма=ЗначениеФильтра); |"; ИначеЕсли ТипЗначенияСтр(ЗначениеФильтра)="СписокЗначений" Тогда ТекстЗапроса=ТекстЗапроса+" |Условие (ЗначениеФильтра.Принадлежит(Фирма)=1); |"; КонецЕсли; ТекстЗапроса=ТекстЗапроса+" |Условие (Контрагент в Клиент); |"; // Если ВыбДоговор.Выбран()>0 Тогда ТекстЗапроса=ТекстЗапроса+" |Условие (Договор_ = Договор); |"; // КонецЕсли; // Если ВыбФизЛица.Выбран()>0 Тогда ТекстЗапроса=ТекстЗапроса+" |Условие (МОЛ=ВыбФизЛица); |"; КонецЕсли; Флаг=Запрос.Выполнить(ТекстЗапроса); Если Флаг=0 Тогда Сообщить("Ошибка в формировании запроса по итогам регистра. Запрос не выполнен!"); // Возврат; КонецЕсли; Запрос_из_ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(Запрос_из_ТЗ,1); Запрос_из_ТЗ.Сортировать("-КредДокумент",1); Запрос_из_ТЗ.ВыбратьСтроки(); Пока Запрос_из_ТЗ.ПолучитьСтроку()=1 Цикл |
|||
7
Касандер72
29.11.12
✎
16:00
|
+ (5) продвинутые могут добавить: ,КредДокумент.ВремяДок
|
|||
8
tpudl_bases
29.11.12
✎
16:01
|
Епрст должен знать..........
|
|||
9
Касандер72
29.11.12
✎
16:03
|
(6) напрямую выборку попробуй из документов - ты же с одним видом работаешь - на кой хафф тебе регистр сдался?
|
|||
10
Касандер72
29.11.12
✎
16:05
|
+ (9) или у тебя в доке нет ссылки на договор?
|
|||
11
tpudl_bases
29.11.12
✎
16:06
|
(9)
если бы по одним,все документы которые образуют дебеторку. |
|||
12
tpudl_bases
29.11.12
✎
16:07
|
очень долго
Док=СоздатьОбъект("Документ"); Док.ОбратныйПорядок(1); СуммаДокументов=0; Док.ВыбратьДокументы(,ДатаКонца); |
|||
13
Касандер72
29.11.12
✎
16:10
|
(0) упс, сори - попутал, чтобы сортануть через упорядочение нужно считать из регистра текущий документ, а у тебя по ходу КредДокумент - измерение в регистрах?
|
|||
14
tpudl_bases
29.11.12
✎
16:11
|
(13)да измерение
|
|||
15
Касандер72
29.11.12
✎
16:14
|
(14) ну и ещё вопросик - ты выбираешь остаток, а доки - движение - это на мысль не наводит?
|
|||
16
Касандер72
29.11.12
✎
16:16
|
(14) попробуй так:
КредДокумент = Регистр.Покупатели.ТекущийДокумент,Регистр.Поставщики.ТекущийДокумент; авось взлетит) |
|||
17
Касандер72
29.11.12
✎
16:21
|
+ (16) но функцию Прихода или Расхода я бы все-таки добавил)
|
|||
18
Касандер72
29.11.12
✎
16:25
|
(11) на счет дебеторки - в один не ригистр не судьба было приходом и расходом запихнуть? - или это тебе по-наследству досталось?
|
|||
19
Aleksey
29.11.12
✎
16:30
|
(18) Расскажи это писателям типовых на 7-ке (ТиС, комплексная)
|
|||
20
Касандер72
29.11.12
✎
16:32
|
(19) а, дык енто в типовой .... мы давно от ентого косячного сборища отказалить ... ыыы, тогда соболезнования)
|
|||
21
tpudl_bases
29.11.12
✎
16:34
|
(17)так воще документов нет
|
|||
22
Касандер72
29.11.12
✎
16:36
|
(21) функции прихода и/или расхода не забыл добавить?
|
|||
23
Касандер72
29.11.12
✎
16:39
|
(21) стоп, если тебе нужна оплата в разрезе доков - тогда оставь как было - я щас гляну что за баг с сортировкой в ТЗ может быть
|
|||
24
Касандер72
29.11.12
✎
16:46
|
(21) Запрос_из_ТЗ на форму выбрось и проверь визуально значения в колонках.
(Если бы ты "ручками" запрос обрабатывал - я бы предложил преобразовать дату в аналог-строку перевертыш - тогда с сортировкой было бы все оки) |
|||
25
Касандер72
29.11.12
✎
16:50
|
(21) предположение: у тебя КредДокумент не всегда заполнен (нужно проводки по регистру из доков отслеживать) - тогда целостность типа колонки "ДатаДокумента" не гарантирована - отсюда: баг при сортировке колонки с различными типами значений в ячейках.
Можно "пробежать" ТЗ и заменить пустышки на дата(0) - тогда сортировка должна сработать |
|||
26
tpudl_bases
29.11.12
✎
17:09
|
(25)слушай я по реализации так делал:
Рег=СоздатьОбъект("Регистр.Продажи"); Рег.УстановитьЗначениеФильтра("Покупатель",Клиент,1); Рег.ОбратныйПорядок(1); по 2-м регистрам может как то можно?!(Покупатели/Поставщики) |
|||
27
пипец
29.11.12
✎
17:11
|
по документам не сортирнет ... это ж ТЗ
|
|||
28
Mikeware
29.11.12
✎
17:15
|
в ТЗ добавить "разницу дат" между датой документа, и "локальным началом времен". и по ней уже сортировать...
|
|||
29
Касандер72
29.11.12
✎
17:21
|
(25) можно - но это дольше и некрасиво - как вариант - два запроса - у тебя другая проблема - всегда ли присутствует дата в нужном формате
|
|||
30
Касандер72
29.11.12
✎
17:22
|
(28) как вычислится разница, если КредДокумент - пустышка? )
|
|||
31
Mikeware
29.11.12
✎
17:35
|
(30) ну а как в этом случае нужно сортировать?
|
|||
32
Касандер72
29.11.12
✎
17:46
|
(31) ручками а не выгрузкой заполнить ТЗ с проверкой на пустой док - если он пустой дату читать с дока, сделавшего эту проводку, ну на крайняк дата(0) поставить - они вниз уйдут правда - здесь определиться нужно
|
|||
33
Mikeware
29.11.12
✎
17:49
|
(32) ну так и я о том же - прежде чем "сортировать технически" - нужно определить, как "сортировать логически"
|
|||
34
tpudl_bases
29.11.12
✎
18:02
|
Вообщем вроде все получилось,завтра еще раз все перепроверю...........Всем спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |