|
Цикл табличной части с условием | ☑ | ||
---|---|---|---|---|
0
kolp821
25.09.12
✎
17:13
|
Здравствуйте, есть некая табличная часть справочнике, ТабЧасть имеет несколько реквизитов (Пільга, Документ), эти реквизиты могут быть не заполнены. Вот что нужно, если заплненый реквизит Документ, вывести его в ТабДок, а также Документ и Пільга. Если только Пільга то не нужно.
Вот что есть на данный момент: // Табличная часть - Пільги : Запрос3 = Новый Запрос; Запрос3.Текст = "ВЫБРАТЬ | АбітурієнтТабличнаяЧастьПільг.Документ КАК Документ | ИЗ | Справочник.Абітурієнт.ТабличнаяЧастьПільг КАК АбітурієнтТабличнаяЧастьПільг |ГДЕ | АбітурієнтТабличнаяЧастьПільг.Ссылка = &Абітурієнт"; Запрос3.Параметры.Вставить("Абітурієнт", Ссылка.Получить(0).Абітурієнт); ВыборкаПільг = Запрос3.Выполнить().Выбрать(); // Вивод табличної частини - пільги : ТабЧаст2 = Макет.ПолучитьОбласть("ТабЧаст2"); Пока ВыборкаПільг.Следующий() Цикл ТабЧаст2.Параметры.Заполнить(ВыборкаПільг); ТабДок.Вывести(ТабЧаст2, ВыборкаПільг.Уровень()); КонецЦикла ; |
|||
1
DrShad
25.09.12
✎
17:14
|
круто
|
|||
2
ДенисЧ
25.09.12
✎
17:16
|
И шо, ви таки думаете, шо эту "собачачью мову" будет кто-то читать?
|
|||
3
kolp821
25.09.12
✎
17:16
|
(2) без политики и попрошу уважать мой родной язык.
|
|||
4
kolp821
25.09.12
✎
17:17
|
(2) это не ой код, но то что вы написали меня затронуло...
|
|||
5
Deon
25.09.12
✎
17:17
|
А что такое Пiльга? Прикольное слово )
|
|||
6
ОператорПК
25.09.12
✎
17:17
|
"ВЫБРАТЬ
| АбітурієнтТабличнаяЧастьПільг.Документ КАК Документ | ИЗ | Справочник.Абітурієнт.ТабличнаяЧастьПільг КАК АбітурієнтТабличнаяЧастьПільг |ГДЕ | АбітурієнтТабличнаяЧастьПільг.Ссылка = &Абітурієнт и не АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка = Null"; типа того.. |
|||
7
pessok
25.09.12
✎
17:17
|
(3) твой родной язык - русский. а про мову, это молодежи, при союзе не жившей, Ваши бешеные политики в уши нассали. Или Гоголь на мове писал?
|
|||
8
Alex S D
25.09.12
✎
17:18
|
(5)+1
|
|||
9
pessok
25.09.12
✎
17:19
|
теперь по делу:
одним запросом, там добавь доп.реквизит булевый. если пыльга твоя не заполнена, то ложь, если заполнена, то истина. а потом, при обходе результата запроса, проверяй пыльгу и суй в нужную таблицу. а еще лучше сделать итоги по пыльге и обходя по группировкам сувать куда надо |
|||
10
Иешуа
25.09.12
✎
17:19
|
(5) это "Льгота"
|
|||
11
ДенисЧ
25.09.12
✎
17:20
|
(3) А если я сейчас на татарском буду вопросы задавать? Многие меня поймут?
|
|||
12
pessok
25.09.12
✎
17:22
|
(11) соревнования у нас были профильные. Пятак 2012. Девочки-татарки ехидно хихикали, когда видели мальчиков с ружжами с надписью на куртке "ПЯТАК"
|
|||
13
Deon
25.09.12
✎
17:22
|
(11) Да тут каждый день больше половины вопросов на тарабарском )) телепат.длл
|
|||
14
V_V_V
25.09.12
✎
17:22
|
(0) Что у тебя ТабЧасть, а что ТабДок???
(5) Пiльга - льгота. (7) Поржал. Жил при союзе. Родной язык - украинский. Пушкин тоже не на мове писал - и что? |
|||
15
Иешуа
25.09.12
✎
17:24
|
(11) зачем вопросы?
у него не вопрос а переменая на нерусском. или одинэсникам можно переменные только на русском именовать? |
|||
16
pessok
25.09.12
✎
17:24
|
(15) на его вопрос уже ответилил. дальше - полемика и флуд)
|
|||
17
pessok
25.09.12
✎
17:24
|
ответилИ*
|
|||
18
Alex S D
25.09.12
✎
17:25
|
(16) срач вернее
|
|||
19
kolp821
25.09.12
✎
17:27
|
(14) ТабЧаст2 эта Наименование ячейки в табличном документе, он же ТабДок
|
|||
20
vudo
25.09.12
✎
17:27
|
Да ладно языковой закон приняли. Пусть пишет. Вот только правда никто читать не станет. В 1С общепринятый язык программирования русский. Хотя может на компе вообще не быть установлен русский язык ;)
А если по теме, то в (6) не сработает, сравнение c NULL так не пишут (ЕСТЬNULL) надо как-то так: и не ВЫРАЗИТЬ(АбітурієнтТабличнаяЧастьПільг.Документ КАК Документ.<ВидДокумента>) = Документ.<ВидДокумента>.ПустаяСсылка |
|||
21
pessok
25.09.12
✎
17:28
|
(18) тю. а чего срацца? каждый волен считать родным языком тот, который ему больше нравится. родной и государственный - разные вещи. просто меня умиляет, что люди сами выбирают родным языком тот, на котором нет ни одного мало-мальски приличного литературного произведения даже... я уж не говорю о том, что никто в мире кроме них самих его не знает...
|
|||
22
ОператорПК
25.09.12
✎
17:29
|
(19) то что в (6) нацарапано, не канает?
|
|||
23
pessok
25.09.12
✎
17:29
|
(19) сделать как в (9)
|
|||
24
V_V_V
25.09.12
✎
17:30
|
(21) Жаль белорусский... Жаль грузинский... И кто их знает? В мире-то???
|
|||
25
kolp821
25.09.12
✎
17:30
|
(23) поподробнее пожалуйста. Я сам админ, 1С только учусь.
|
|||
26
pessok
25.09.12
✎
17:30
|
+ если надо сравнивать с пустой ссылкой, то юзайте ЗНАЧЕНИЕ(Документ.ИмяДокумента.ПустаяСсылка), если с NULL, то (НЕ) ПсевдонимТаблицы.ИмяПоля ЕСТЬ NULL
|
|||
27
pessok
25.09.12
✎
17:31
|
(24) кому их жаль? мне не жаль
|
|||
28
V_V_V
25.09.12
✎
17:32
|
(27) Даже не сомневался.
|
|||
29
vudo
25.09.12
✎
17:33
|
(26) +100
(27) ты на грузинском или украинском читать не умеешь вот тебе и не жаль ;) (23) я не понял зачем ему еще один реквизит, если можно уменьшить количество в выборке |
|||
30
pessok
25.09.12
✎
17:35
|
(29) не умею, потому и не жаль. жаль будет программистов, которые будут искать помощи с кодом на грузинском :)
а по поводу поля. чтобы по итогам потом легко разбросать саму выборку |
|||
31
pessok
25.09.12
✎
17:35
|
ему ж надо в две разных таблицы разбросать, или я плохо читал (0)
|
|||
32
ОператорПК
25.09.12
✎
17:36
|
(20) я ж написал "типа того" - точн осинтаксис не помню.... значит так должно канать:
"ВЫБРАТЬ | АбітурієнтТабличнаяЧастьПільг.Документ КАК Документ | ИЗ | Справочник.Абітурієнт.ТабличнаяЧастьПільг КАК АбітурієнтТабличнаяЧастьПільг |ГДЕ | АбітурієнтТабличнаяЧастьПільг.Ссылка = &Абітурієнт и не ЕстьNull(АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка.0) = 0"; |
|||
33
ОператорПК
25.09.12
✎
17:36
|
"ВЫБРАТЬ
| АбітурієнтТабличнаяЧастьПільг.Документ КАК Документ | ИЗ | Справочник.Абітурієнт.ТабличнаяЧастьПільг КАК АбітурієнтТабличнаяЧастьПільг |ГДЕ | АбітурієнтТабличнаяЧастьПільг.Ссылка = &Абітурієнт и не ЕстьNull(АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка,0) = 0"; |
|||
34
pessok
25.09.12
✎
17:36
|
ЕстьNull(АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка.0) = 0"
эта пять! |
|||
35
ОператорПК
25.09.12
✎
17:37
|
(34) уже исправилсо
|
|||
36
pessok
25.09.12
✎
17:37
|
ВЫБРАТЬ
ТаблицаЛьгот.Документ КАК Документ ИЗ Справочник.Абитуриенты.ТаблицаЛьгот КАК ТаблицаЛьгот ГДЕ ТаблицаЛьгот.Ссылка = &Абитуриент И НЕ ТаблицаЛьгот.Льгота ЕСТЬ NULL ИТОГИ ПО СЛьготой |
|||
37
pessok
25.09.12
✎
17:37
|
итоги убрать, итоги нинада. это я невнимательно читал (0) )))
|
|||
38
ОператорПК
25.09.12
✎
17:38
|
(36) так работать не будет. отличник...
|
|||
39
pessok
25.09.12
✎
17:39
|
с чего не будет то?
|
|||
40
vudo
25.09.12
✎
17:39
|
(32) Ты хотел сказать
"ЕстьNull(АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка,0) = 0" АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка не будет NULL, а будет Документ.<ВидДокумента>.ПустаяСсылка условие не работает! |
|||
41
pessok
25.09.12
✎
17:39
|
ну там пыльгу на документ поменять, смотря что отобрать хочет. я в его переменных уже запутался
|
|||
42
ОператорПК
25.09.12
✎
17:40
|
во первых сам проверь... во вторых твой запрос 9если бы даже работал) вернул не то что требуется ТП. накладывать ограничения надо не на Льготу а на поле "Документ"
|
|||
43
pessok
25.09.12
✎
17:41
|
(42) это да, это я в (41) написал. а работать будет. если не нравится NULL, проверять на И Документ <> ЗНАЧЕНИЕ(Документ.Пыльги.ПустаяСсылка)
|
|||
44
ОператорПК
25.09.12
✎
17:42
|
(40) кто сказал что известен Тип документа?
|
|||
45
ОператорПК
25.09.12
✎
17:42
|
(43) см (44)
|
|||
46
ОператорПК
25.09.12
✎
17:45
|
(39) ну как проверил свой мегакод?
|
|||
47
vudo
25.09.12
✎
17:45
|
(44) А что ты знаешь документы без типов?
Не ну конечно если умозаключительно, то можно что-то придумать и без типов... Хотя может быть в принципе любого типа... Но на NULL не взлетит в любом случае... |
|||
48
pessok
25.09.12
✎
17:46
|
(46) пыльг нет, чтоб проверять. а код к ТЧ я не пишу, этим пусть чукчи занимаются. код рабочий. конечно,
Не ЕстьNull(АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка,0) = 0 тоже отработает, но это абзац |
|||
49
ОператорПК
25.09.12
✎
17:46
|
(47) слышал что нибуть про реквизиты составного типа?
|
|||
50
ОператорПК
25.09.12
✎
17:47
|
(48) твой рабочий код по любому не отработает
|
|||
51
vudo
25.09.12
✎
17:48
|
(49) Не умничай , я писал: "Хотя может быть в принципе любого типа... " ;) Но твой IS NULL тоже не взлетает ;)
|
|||
52
vudo
25.09.12
✎
17:49
|
(51) Где автор?
|
|||
53
ОператорПК
25.09.12
✎
17:51
|
(51) я проверил (не на базе АбітурієнтТабличнаяЧастьПіль конечно :)) но взлетает еще как.
|
|||
54
pessok
25.09.12
✎
17:51
|
(48) ну, вообще, да, не отработает. нулла там быть не может без соединения, согласен
|
|||
55
pessok
25.09.12
✎
17:52
|
чем ЭТО
ЕстьNull(АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка,0) = 0 отличается от ЭТОГО НЕ ТаблицаЛьгот.Льгота ЕСТЬ NULL ??? кроме количества букв? |
|||
56
pessok
25.09.12
✎
17:52
|
ну и типа переменной, ессна
|
|||
57
pessok
25.09.12
✎
17:53
|
ты ж понимаешь, что это одно и тоже, просто одно написано нормально, а другое, кхм... не очень?
|
|||
58
ОператорПК
25.09.12
✎
17:53
|
(57) это не одно и тоже ключевое различие это "Ссылка"
|
|||
59
ОператорПК
25.09.12
✎
17:54
|
+(58) именно по этому твой код не отработает ни когда
|
|||
60
pessok
25.09.12
✎
17:54
|
ссылку, забыл, гы, да :)
писал прям в теме) |
|||
61
ОператорПК
25.09.12
✎
17:55
|
(60) предлагаю закончить на этой оптиместической ноте, автар красава задал вопрос и свалил...
|
|||
62
pessok
25.09.12
✎
17:59
|
(61) плюсую
|
|||
63
AkeHayc
25.09.12
✎
18:00
|
Здоровеньки Булы!)
|
|||
64
Stim
25.09.12
✎
18:15
|
что там? с автора долги за газ еще не требуют?
|
|||
65
kolp821
26.09.12
✎
09:45
|
(60) Автор не свалил, он пытается разобраться в коде и вчера был конец рабочего дня. Извиняюсь что тема вышла слишком "острая" для сообщества.
|
|||
66
kolp821
26.09.12
✎
09:46
|
сори не (60), а (61)
|
|||
67
pessok
26.09.12
✎
09:46
|
(65) нормальная тема, славянская, гыгы) результата добился, самое главное?
|
|||
68
kolp821
26.09.12
✎
09:49
|
(65) пока нет,
ЕстьNull(АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка,0) = 0 или НЕ ТаблицаЛьгот.Льгота ЕСТЬ NULL не дают того результата, выводится все льготы... |
|||
69
pessok
26.09.12
✎
09:51
|
(68) ты забыл НЕ
|
|||
70
pessok
26.09.12
✎
09:52
|
НЕ АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка ЕСТЬ NULL
|
|||
71
kolp821
26.09.12
✎
10:10
|
(70) возникает ошибка
{Документ.Договір(515)}: Ошибка при вызове метода контекста (Выполнить) ВыборкаПільг = Запрос3.Выполнить().Выбрать(); по причине: {(7, 97)}: Поле не найдено "АбітурієнтТабличнаяЧастьПільг.Документ.Ссылка" АбітурієнтТабличнаяЧастьПільг.Ссылка = &Абітурієнт И НЕ АбітурієнтТабличнаяЧастьПільг.Документ.<<?>>Ссылка ЕСТЬ NULL Если убрать "Ссылка" то не дает того результата, выводится все льготы. |
|||
72
pessok
26.09.12
✎
10:15
|
ну разверни АбітурієнтТабличнаяЧастьПільг.Документ и поищи там упоминания о ссылке
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |