Имя: Пароль:
1C
1С v8
Как получить запросом подобный результат
,
0 newbas
 
29.07.13
16:30
Есть запрос, получающий остатки в разрезе характеристик, результат которого выводится в табличный документ. В табличном документе нужно сделать полосатую таблицу, чередующую полосы по не по четности строк, а по номенклатуре.
т.е. На входе запроса имеем
Товар1 Размер1 3
Товар1 Размер3 2
Товар1 Размер4 8
Товар2 Размер2 1
Товар3 Размер2 1
Товар3 Размер2 2
Товар3 Размер5 5
А на выходе должна быть еще одна колонка, например
ИСТИНА Товар1 Размер1 3
ИСТИНА Товар1 Размер3 2
ИСТИНА Товар1 Размер4 8
ЛОЖЬ   Товар2 Размер2 1
ИСТИНА Товар3 Размер2 1
ИСТИНА Размер2 2
ИСТИНА Размер5 5
1 User_Agronom
 
29.07.13
16:31
А как определить ИСТИНА/ЛОЖЬ?
2 Живой Ископаемый
 
29.07.13
16:31
а, чтобы не овладевать возможностями СКД, нужно подобное извращение.
3 Живой Ископаемый
 
29.07.13
16:32
2(1) поменялся товар, поменялось значение этой колонки.
4 User_Agronom
 
29.07.13
16:35
ВЫБРАТЬ
     ВЫБОР
          КОГДА поменялся товар, поменялось значение этой колонки
          ТОГДА ИСТИНА
          ИНАЧЕ ЛОЖЬ
          КОНЕЦ КАК БулевоПоле,
     Номенклатура КАК Товар,
     Характеристика КАК Размер
ИЗ
     ТаблицаНаВходе

Как-то так, наверное.
5 Живой Ископаемый
 
29.07.13
16:37
2(4) проверял?
Нет, не будет работать. Ну или расскажи, как ты определишь, что поменялся товар в текущей строке результата относительно предыдущей
6 fisher
 
29.07.13
16:38
1. Получить таблицу номенклатуры отчета, отсортированную в том же порядке
2. Пронумеровать строки номенклатуры
3. Соединить с результирующей таблицей и по номеру строки номенклатуры определять чет/нечет.
7 newbas
 
29.07.13
16:39
(1) - Нужно просто чередование
(2) - СКД не подойдет - данные выгружаются в табличное поле документа (а не табличный документ как я написал).
(4) - это я и сам бы написал - как вычислить, что товар поменялся.
Есть идея выгрузить сначала номенклатуру без характеристик в таблицу с счетчиком строк, а затем присоединить остатки. И при выводе проверять четность строк
8 exwill
 
29.07.13
16:39
(5) На самом деле, это можно сделать. Через соединение таблицы с самой собой. Но это страшное занудство.
9 newbas
 
29.07.13
16:39
(6) уже опередил - видимо так и сделаю
10 fisher
 
29.07.13
16:40
(7) Дык результат СКД можно выгрузить в ТЗ
11 newbas
 
29.07.13
16:41
(7) можно, я так и делаю. Вот и скажите как пометить строки с различной номенклатурой
12 Живой Ископаемый
 
29.07.13
16:44
2(8) да, можно, но в приведенном примере нет и намека на это
2(7) ага, то есть по-прежнему не ужно.. Нужно просто при выводе строки табличного поля документа проверять.
13 User_Agronom
 
29.07.13
16:46
(7) Сформировать табличку и пробежать по ней циклом.
в цикле будет одно сравнение и одно присваивание (и то не каждый раз выполняться будет).
Быстро пробежит.
14 Живой Ископаемый
 
29.07.13
16:49
2(11) При выводе строки, проверяй, если это не первая строка, то сравнивай значение колонки с аналогичным предыдущей строки. Если другое, то меняй например цвет...
15 User_Agronom
 
29.07.13
16:49
Только я чего-то не понял: почему ветка в Job?
16 Живой Ископаемый
 
29.07.13
17:02
2(15) ну а почему нет? Вопроса нет, есть приказ... видимо человек хочет чтобы кто-то сделал, а он заплатит за решение денег
17 Живой Ископаемый
 
29.07.13
17:08
тест
18 User_Agronom
 
29.07.13
17:29
(16) Это оффтоп
Приказ бы звучал так:
ПОЛУЧИТЬ ЗапросомПодобныйРезультат
А это как раз вопрос таки. Нам на это указывает слово "как".
19 Живой Ископаемый
 
29.07.13
17:31
2(18) может это не вопрос, а рассказ.. Как у Киплинга: "Как носорог получил свои складки"
20 Живой Ископаемый
 
29.07.13
17:33
в конце концов, вопросительного знака таки нет