Имя: Пароль:
1C
1С v8
Пользовательское представление ссылки в запросе. Доколе?
0 fisher
 
03.07.15
14:50
Много воды утекло. Уже 8.3.7 на горизонте. А сабж до сих пор нормально не решается, как и преобразование типов в запросе? Или я пропустил что?
Вот есть у меня запрос динамического списка. Хочу, чтобы ссылка на документ в одном из полей представлялась особым образом (отличным от общего). Например, не "Расходный ордер на товары А25435235 от 03.07.2015 14:48:23", а "Отгрузка 25435235 от 03.07.2015". Но только в этом списке. То есть ОбработкаПолученияПредставления() не предлагать. Какие у меня есть варианты? А то я ни одного не вижу.
1 Господин ПЖ
 
03.07.15
14:52
не держи его так
2 fisher
 
03.07.15
14:54
Думаешь, стоит перевернуть?
3 DmitrO
 
03.07.15
14:55
Ну, на самом деле, можно даже без изменения конфигурации сделать чтобы в списке в одной ячейке таблицы оно отображалось вот так: "25435235, 03.07.2015".

Но в целом, проблема конечно существует.
4 DmitrO
 
03.07.15
14:56
(3)+ что конечно я готов признать прогрессом
5 fisher
 
03.07.15
14:58
(3) Поподробней, плиз. С номером проблем нет, он текстовый.
Т.е. "Отгрузка 25435235 от " я могу сформировать. А как дату без секунд присобачить?
6 Гёдза
 
03.07.15
14:59
зачем запрос? скд есть
7 DmitrO
 
03.07.15
15:00
"присобачить" можно создав группу колонок в видом группирования "В ячейке", и засунув туда два поля: Номер и Дата.
Попробуй.
8 Гёдза
 
03.07.15
15:00
Держи

Функция ТекстЗапросаДатаВСтроку(Знач ИмяПараметра, Знач РазделительДаты = "", Знач РазделительДатыИВремени = "", Знач РазделительВремени = "", Знач СжиматьТекст = Истина) Экспорт
   Текст =
       "ПОДСТРОКА(""0123456789"", ГОД(&Дата) / 1000 + 1, 1)
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * ГОД(&Дата) / 100)) / 6 + 1, 1)
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * ГОД(&Дата) / 10)) / 6 + 1, 1)
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * ГОД(&Дата))) / 6 + 1, 1)
       |+ ""{DAD542E3B92E4DA59E5F9CC1532FAF21}""
       |+ ПОДСТРОКА(""0123456789"", МЕСЯЦ(&Дата) / 10 + 1, 1)
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * МЕСЯЦ(&Дата))) / 6 + 1, 1)
       |+ ""{DAD542E3B92E4DA59E5F9CC1532FAF21}""
       |+ ПОДСТРОКА(""0123456789"", ДЕНЬ(&Дата) / 10 + 1, 1)
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * ДЕНЬ(&Дата))) / 6 + 1, 1)
       |+ ""{0395B12F47654CBB9F756F704A444E57}""
       |+ ПОДСТРОКА(""0123456789"", ЧАС(&Дата) / 10 + 1, 1)
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * ЧАС(&Дата))) / 6 + 1, 1)
       |+ ""{3FF7EA92485F4775843B9769A2D43992}""
       |+ ПОДСТРОКА(""0123456789"", МИНУТА(&Дата) / 10 + 1, 1)
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * МИНУТА(&Дата))) / 6 + 1, 1)
       |+ ""{3FF7EA92485F4775843B9769A2D43992}""
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(&Дата) / 10 + 1, 1)
       |+ ПОДСТРОКА(""0123456789"", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, 6 * СЕКУНДА(&Дата))) / 6 + 1, 1)";
   Если СжиматьТекст Тогда
       Текст = СтрЗаменить(Текст, " ", "");
       Текст = СтрЗаменить(Текст, Символы.ПС, "");
   КонецЕсли;
   Текст = СтрЗаменить(Текст, "&Дата", ИмяПараметра);
   Текст = СтрЗаменить(Текст, "{DAD542E3B92E4DA59E5F9CC1532FAF21}", РазделительДаты);
   Текст = СтрЗаменить(Текст, "{0395B12F47654CBB9F756F704A444E57}", РазделительДатыИВремени);
   Текст = СтрЗаменить(Текст, "{3FF7EA92485F4775843B9769A2D43992}", РазделительВремени);
  
   Возврат Текст;
КонецФункции
9 fisher
 
03.07.15
15:02
(6) Ну-ка ну-ка. Продолжи свою мысль. С вот этого момента: "Вот есть у меня запрос динамического списка..."
(7) Гм... Вообще-то я собирался это всё гиперссылкой представить...
10 Лефмихалыч
 
03.07.15
15:06
(9) это все куйня, расслабься. Задача (0) в динамическом списке решения на текущий момент не имеет
11 fisher
 
03.07.15
15:13
(7) Думаю над этим вариантом... Это же пользовательские настройки списка? В конфигураторе я их не смогу задать параметрически? Это программно настройками управлять придется или я туплю?
12 ВРедная
 
03.07.15
15:17
(7) И перед ними еще одно текстовое поле "Отгрузка", которое предварительно добавить в запрос динамического списка

http://imglink.ru/show-image.php?id=167dad88f3329cf404128cd7762c6278
13 fisher
 
03.07.15
15:20
(12) Из конфигуратора такая настройка делается как дефолтовая для пользователя? Что-то я навскидку никак не натыкаю...
14 ВРедная
 
03.07.15
15:23
(13) Да, настраивается в конфигураторе, как обычно, как и сам состав колонок. Просто добавь группу колонок
15 fisher
 
03.07.15
15:25
Всё, нашел наконец. Я пятничный дибилоид.
Спасибо всем за подсказки. Не знал про эту фишку.
16 fisher
 
03.07.15
15:38
17 DmitrO
 
03.07.15
15:52
отходил на совещание..
На самом деле, проблема бы имела кардинальное решение, если бы в динамических списках позволили бы делать пользовательские поля, т.е. собственно формирование текстового представления шло бы уже не на сервере БД, а на сервере 1С (за счет возможного использования функций общих модулей то и в модулях), как это делается в полной СКД.
18 DmitrO
 
03.07.15
15:55
ну, в конфигураторе в редакторе схемы они названы "Вычисляемые поля", в предприятии в настройках скд пользовательские поля, но суть у них одна. И вот этой сущности не хватает динамическому списку.
19 fisher
 
03.07.15
16:31
(18) Вот-вот. При том, что частично СКД они уже туда прикрутили. Но CAST() тоже очень не помешал бы.
20 rs_trade
 
03.07.15
16:37
1C давала какие нить комментарии по поводу развития языка запросов? Или они считают что у них там все круто?
21 Господин ПЖ
 
03.07.15
16:38
(20) гы... ты еще с них roadmap по развитию на 5 лет запроси
22 rs_trade
 
03.07.15
16:39
(21) Ну было же что отвечал дядя Боря на вопросы сообщества. Может что то посвежее происходило.
23 Serg_1960
 
03.07.15
16:42
(8) Всякий раз, когда вижу такие этажерки в запросе, вспоминаю свою шутку в v8: Дата в строку в запросе.. :)
24 blopp
 
04.07.15
17:21
(17) В пользовательских полях нельзя функции общих модулей вызывать. Только в вычисляемых.
А на языке выражений компоновки данных, то что в (0) спрашивали наверное сложно/невозможно сделать.
25 Marine Band
 
04.07.15
17:47
(18) ПОтому что такая функциональность не требуется
26 Злопчинский
 
05.07.15
00:46
давно хочу, чтобы везде где используется номенклатура отображалась с артикулом в начале наименования.
27 Escander
 
05.07.15
06:02
(0)Заведи ещё 1 реквизит для своего представления
28 tridog
 
05.07.15
20:38
(26) Если прямо везде - то ОбработкаПолученияПредставления
29 Злопчинский
 
05.07.15
20:57
(28) нафиг,  хочув пофигураторе настроит пользовательское представление и все
30 ДенисЧ
 
05.07.15
20:59
(29) А что, ОбработкаПолученияПредставления настраивается не в конфигураторе? О_о
31 Индиго
 
05.07.15
21:08
(30)Похоже у тебя в мозгах, а не  в конфигураторе.
32 Лефмихалыч
 
05.07.15
21:49
(28) (30) это маненько не совсем то, чего автор хочет. Автор хочет в одном дин.списке представление свое всунуть. ОбработкаПолученияПредставления поменяет представление совсем везде
33 Drac0
 
05.07.15
23:35
(32) Это все ответ на (26) :)
Программист всегда исправляет последнюю ошибку.