Имя: Пароль:
1C
1С v8
Построитель Отчета
0 Gattuso
 
14.08.14
12:34
Извиняюсь, никогда не любил этот построитель и особо им не занимался.

Такой вопрос: понадобилось выводить доп поле строковое неограниченной длины.
Хотел в запросе подменить текст, использовать ВЫРАЗИТЬ(), но не могу понять возможно ли это вообще в построителе или нет.
Построитель.Текст-это как я понял начальный запрос, на основании которого создаются отборы, группировки и тд.
А Построитель.ПолучитьЗапрос().Текст-это уже текст запроса, результат которого выводится на экран. Я правилньо понял?
И если да, то каким образом этот итоговый текст можно заменить?

Очень буду благодарен за подсказки!
1 PR
 
14.08.14
12:35
Возможно.
2 PR
 
14.08.14
12:36
3 ДенисЧ
 
14.08.14
12:36
Нет. Нельзя.
Можно использовать ИсточникДанных
4 Gattuso
 
14.08.14
12:37
(2) Я этот текст уже вдоль и поперек прочел-но на нужный мне вопрос ответ там не нашел
5 Gattuso
 
14.08.14
12:38
(3) Не подскажешь где можно почитать каким образом реализовать это через источник данных?
6 Wobland
 
14.08.14
12:39
(5) он тебе даже продаст это
7 Gattuso
 
14.08.14
12:40
(6) :)
Если ьез шуток-меня уже тошнит от этого построителя-нелепая вещь какая-то имхо..
8 Gattuso
 
14.08.14
12:41
мне нужно хотя бы в выводящийся построителем результат добавить в колонку например к строке еще символ. неужели даже это сделать нельзя?
9 ДенисЧ
 
14.08.14
12:42
(7) Переходи на СКД. Тебя не только тошнить начнёт. Но и рвать на родину, в смысле на нормальные запросы с ручным выводом.
10 Wobland
 
14.08.14
12:42
спаразитирую на чужой ветке. как поиметь результат построителя в виде выборки или ТЗ? Построитель.Результат не содержит ресурсов
11 Gattuso
 
14.08.14
12:43
(9) как раз с Скд у меня проблем нет)))
Это старый отчет просто сделанный на построителе и мне его надо изменить немного
12 DrZombi
 
гуру
14.08.14
12:43
(0) Да бросьте, СКД на тонком клиенте просто чудо :)
13 DrZombi
 
гуру
14.08.14
12:44
(10) Вот на этом сайте есть неплохие примерчики, как да куда заполнять, что бы использовать со внешними данными :)

http://1cskd.ru/2010/07/primery-otchetov-na-skd/
14 ДенисЧ
 
14.08.14
12:47
(12) Ага. Чудо. Я такое чудо в субботу с утра в зеркале видел. Как в анекдоте "Спрашивается, зачем им нужны были ещё 2 бутылки водки?"
15 chelentano
 
14.08.14
12:54
(10) не понял...

ТЗ = ПостроительОтчета.Результат.Выгрузить();
Выборка = ПостроительОтчета.Результат.Выбрать();

вроде ничего сложного
16 Wobland
 
14.08.14
12:57
(15) там ресурсов нет, одни измерения. в Построитель.ПолучитьЗапрос().Текст тоже одни измерения. кто мне числа в ТабДокументе показывает?
17 chelentano
 
14.08.14
13:00
(16) всё равно нифига не понял, давай конкретнее, на примере каком-нибудь
18 chelentano
 
14.08.14
13:01
(16) на кой тебе измерения без ресурсов?
19 Gattuso
 
14.08.14
13:06
Народ! Я реально в шоке.. попробовал через источник данных-тоже гемор-выводится все криов(тк у меня в запросе куча группировок и тд).

Неужели нельзя никак более менее просто добавить к какой нибудь колонке в результате через построитель отчета например символ "а"? Ну это же бред полный
20 Wobland
 
14.08.14
13:07
http://i.imgur.com/n9fCch4.png
где остаток?

УниверсальныйОтчет.ПостроительОтчета.ПолучитьЗапрос().Текст=
ВЫБРАТЬ
    ЕСТЬNULL(ТоварыНаСкладахОстатки.Склад, ПартииГТДОстатки.Склад) КАК Склад,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.Номенклатура, ПартииГТДОстатки.Номенклатура) КАК Номенклатура,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.СерияНоменклатуры, ПартииГТДОстатки.ГТД) КАК ГТД,
    ПартииГТДОстатки.ДокументОприходования КАК ДокументОприходования
ИЗ
21 Gattuso
 
14.08.14
13:08
(20) а подменить текст этого запроса нельзя никак?
22 Gattuso
 
14.08.14
13:08
через стрзаменить() например
23 Wobland
 
14.08.14
13:08
(21) ПолучитьЗапрос()видишь?
24 Gattuso
 
14.08.14
13:09
(23) вижу. Получить то его не проблема. А как его обратно запихнуть?
25 Gattuso
 
14.08.14
13:10
тк если использовать получитьзапрос() и потом менять текст, то выполняется то все равно старый
26 Gattuso
 
14.08.14
13:10
не измененный
27 chelentano
 
14.08.14
13:12
(24) ПостроительОтчета.Текст = "Твой текст"
28 Gattuso
 
14.08.14
13:13
(27) это другой текст же.
ПостроительОтчета.Текст это не тоже самое, что ПостроительОтчета.ПолучитьЗапрос().Текст
29 chelentano
 
14.08.14
13:14
(20) так когда выбираешь ПоГруппировкам, то первая строка - это общие итоги у тебя, тебе надо до номенклатуры добраться
30 Gattuso
 
14.08.14
13:14
(27) выводится же в итоге результат запроса ПостроительОтчета.ПолучитьЗапрос().Текст и я не могу понять как его программно изменить
31 chelentano
 
14.08.14
13:15
(30) я вот не могу понять, зачем тебе вообще программно менять текст запроса, ты сразу нужный написать не можешь?
32 Gattuso
 
14.08.14
13:18
(31) не могу. Т.к. у меня выбираются всегда разные доп поля в режиме пользователя.
Короче, у меня если выбрано поле адрес, то мне его надо "дописатЬ" в поле Заявка. И как это сделать вообще непонятно
33 Wobland
 
14.08.14
13:21
(29) думаешь, в выборке полей прибавится?
http://i.imgur.com/mFccCWn.png
34 Wobland
 
14.08.14
13:23
(32) выбрать заявка+выбор когда &надоадрес тогда адрес иначе "" конец
35 Wobland
 
14.08.14
13:23
(34) авотфих ;)
36 Wobland
 
14.08.14
13:24
(32) пускай юзер сам настраивает отчёт. нужен ему адрес - его личное дело
37 Gattuso
 
14.08.14
13:30
(36) юзер сам и решает. Но у адреса неограниченная длина, именно поэтому его и не дает спокойно добаить отдельным полем и вылетает ошибка
38 Wobland
 
14.08.14
13:33
(37) ну ограничь длину
39 Gattuso
 
14.08.14
13:34
(38) в этом и суть вопросам и всей этой темы. КАК мне это сделать. Где можно в запросе добавить ВЫРАЗИТЬ()? Если это вообще возможно.
Ограничить длину реквизита сейчас в базе не представляестя возможным
40 chelentano
 
14.08.14
13:34
(33) ну как там? разобрался?
(37) так и пиши ВЫРАЗИТЬ(СтрокаАдреса КАК СТРОКА(150))
41 Gattuso
 
14.08.14
13:35
(40) где писать-то?)
42 Gattuso
 
14.08.14
13:35
где я могу получить итоговый текст запроса и отредактировать его?
43 Wobland
 
14.08.14
13:37
(40) неа, мрак
(42) редактируй исходный
44 Gattuso
 
14.08.14
13:39
(43)аа....начну по новой-может я не все понимаю в этом построителе.

Исходный текст запроса это Построитель.Текст верно?
Идем дальше, выводится в итоге (с учетом выбранных доп полей) результирующий запрос - его текст не равен Построитель.Текст. А его текст это Построитель.ПолучитьЗапрос().Текст. Но его отредактировать я не понимаю как хоть убей.

Может я что то не допонимаю, тогда просветите меня
45 Wobland
 
14.08.14
13:40
не надо его редактировать, у тебя исходный текст есть для своих хотелок
46 chelentano
 
14.08.14
13:41
(44) а чем тебе поле неограниченной длины в качестве доп. поля помешало?
(43) стучись 242037509
47 Gattuso
 
14.08.14
13:43
(46) тем что построительотчета сделан так, что такие поля не выводит и выдает ошибку
48 Gattuso
 
14.08.14
13:44
(45) что за исходный текст? где его найти?
49 chelentano
 
14.08.14
13:45
(47) по-моему, это если ты его в качестве измерения хочешь использовать, а как доп. поле - без проблем вроде бы
50 Wobland
 
14.08.14
13:46
(48) Построитель.Текст
51 Gattuso
 
14.08.14
13:46
я когда в отладчике пробую
Построитель.ПолучитьЗапрос(), то когда выбрано доп поле "Адрес",то запрос вообще не получает-ошибка.
Как только программно удалю Адрес из выбранных полей, тогда и получитьзапрос() отрабатывает.
Т.е. как я понимаю именно резальтат этого запроса и выводится в конечном счете на экран
52 Gattuso
 
14.08.14
13:47
(49) нет/, как доп поле тоже не отрабатывает. кучу уже информации прочитал на эту тему
53 Gattuso
 
14.08.14
13:48
(50) я могу туда написать все что угодно в Построитель.Текст-это никакого влияния на конечный результат на экране не оказывает
54 Wobland
 
14.08.14
13:49
(53) в универсальном отчёте, к примеру, есть туева гора танцев вокруг построителя
55 chelentano
 
14.08.14
13:51
(51) если ты можешь программно удалить Адрес из выбранных полей, значит, ты можешь и написать вместо Адрес - ВЫРАЗИТЬ(Адрес КАК СТРОКА(150))
56 Gattuso
 
14.08.14
13:57
(55) не могу))))
Выбранные поля это таблица, в ней Имя,Представление и ПутьКДанным.
ПутьКДанным мб и помог бы(да и то не факт), но оне недостпупен для записи
57 Wobland
 
14.08.14
14:02
получается, иногда надо добавлять дополнительное поле?
58 Gattuso
 
14.08.14
14:07
(57) да, именно
59 Wobland
 
14.08.14
14:10
(58) сходи в универсальный. добавляется одной строкой
60 Wobland
 
14.08.14
14:11
// Добавление дополнительных полей
    // Необходимо вызывать для каждого добавляемого дополнительного поля.
    // УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>);
61 Gattuso
 
14.08.14
14:16
(60) я просто редко с этим всем работал.
Сложно отчет переделать чтобы воспользоваться этим универсальныйотчет?
И в путь данных так и пишется "Выразить как строка..." да?
62 Wobland
 
14.08.14
14:17
(61) если УО есть в конфигурации, забудь свой. там мощные комментарии, разберёшься
63 Wobland
 
14.08.14
14:18
+(62) мощные комментарии в другом типовом на основе универсального
64 Gattuso
 
14.08.14
14:27
(63) боюсь не прокатит.
Сейчас удалось программно попробовать добавить новое выбранное поле. Путь к данным указал "выразить(Заявка.Адрес КАК СТРОКА.." выдал ошибку
Поле не найдено. "ВЫРАЗИТЬ(Заявка"
Видимо в ПутьКДанным выразить нельзя использовать.
В универсальном отчете наверное тоже самое
65 Wobland
 
14.08.14
14:27
путь к данным - это путь к данным, пусть через точку
66 Gattuso
 
14.08.14
14:30
(65) ну там точно так же будет путь к реквизиту строковому с неограниченной длиной и не будет выводиться . вангую
67 chelentano
 
14.08.14
14:30
(64) блин, приведи тест запроса уже и как ты адрес в запрос добавляешь
68 Wobland
 
14.08.14
14:31
(66) если у тебя в запросе будет неограниченная строка, то и путь будет к неограниченной строке. ваш К.О.
69 Gattuso
 
14.08.14
14:32
(67) текста запроса НЕТ, тк если в доп полях выбран адрес, то текст запроса не получается в отладчике-ошибка. Как только удалить это поле,то все норм.
В этом и трудность. Да и в любом случае как программно отредактировать текст неясно.
70 Gattuso
 
14.08.14
14:32
(68) и ?
71 Wobland
 
14.08.14
14:34
(70) и если у тебя в запросе будет ограниченная строка, то и путь будет к ограниченной строке. ваш К.О.
72 chelentano
 
14.08.14
14:34
(69) да блин... СЮДА напиши текст запроса свой
73 Wobland
 
14.08.14
14:35
может, присоветовать автору присвоить что-нибудь в Построитель.Текст?
74 chelentano
 
14.08.14
14:43
не знаю... у меня никаких проблем с дополнительным полем неограниченной длины не возникает
75 chelentano
 
14.08.14
14:44
кода так и не дождёмся походу
76 Операция 1Ы
 
14.08.14
14:46
(73) ага, например Построитель.Текст = ""; тогда ошибка пропадет)
77 Wobland
 
14.08.14
14:46
(76) выбрать будет ожидать, думаю