Имя: Пароль:
1C
1С v8
Поиск справочника по коду в запросе
0 Zlatusya
 
18.09.18
13:24
Здравствуйте! В запросе выбирается элемент справочника. Например, получается три строки выборки  с кодами справочника : 02001,02051,02061. Мне нужно сделать так чтобы при выборке элементы подменялись по шаблону: 02 +000 +1, т.е. первый элемент так же и был бы выбран, второй заменился на первый, третий заменился на первый. и результатом стали бы три строчки с одинаковым элементом. сделать нужно в запросе, так как типовой отчет СКД и нужно таким способом подменить коды со многих на один
1 Zlatusya
 
18.09.18
13:25
шаблон вместо трех нулей два, ошиблась. Т.е. по идее мне нужно в скд воткнуть функцию поиска справочника по коду и задать шаблон кода. а какую функцию поиска возможно использовать?
2 Cyberhawk
 
18.09.18
13:27
ЯННП
3 Zlatusya
 
18.09.18
13:31
пример таблица выборки

Организация   Товары       количество
ООО "МОлоко"   Молоко         5
ООО "МОлоко"   Молоко 2,5     4
ООО "МОлоко"   Молоко 3,2     3


после выборки товаров по шаблону таблица будет выглядеть так:

Организация   Товары       количество
ООО "МОлоко"   Молоко         5
ООО "МОлоко"   Молоко         4
ООО "МОлоко"   Молоко         3

Т.е. итоговая цифра молока будет 12
Так понятней?
4 Optan
 
18.09.18
13:33
(1) "функцию поиска справочника по коду" - чем левое соединение со справочником по преобразованному коду не подойдет?
5 Михаил Козлов
 
18.09.18
13:35
Припишите товарам, например, "номенклатурную" группу и выводите (группируйте/фильтруйте) по ней.
Или организуйте справочник (иерархию) должным образом и группируйте только по иерархии.
6 Optan
 
18.09.18
13:35
(4) Или даже лучше все элементы справочника, которые подходят под шаблон сразу в ВТ и с ней соединяться.
7 Zlatusya
 
18.09.18
13:35
элемент в соединении не один получается. а зависит от названия правого элемента.

Организация   Товары       количество
ООО "МОлоко"   Молоко         5
ООО "МОлоко"   Молоко 2,5        4
ООО "МОлоко"   Молоко 3,2        3
ООО "МОлоко"   кефир         5
ООО "МОлоко"   кефир 2,5        4
ООО "МОлоко"   кефир 3,2        3
8 Zlatusya
 
18.09.18
13:37
осложняется тем что типовой запрос по проводкам на скд. уже все выбрано. нужно встроится и поменять аккуратно.
9 Ненавижу 1С
 
гуру
18.09.18
13:40
а вы уверены, что у вас единый шаблон на все товары?
что именно 3 и 4 только надо "обнулить"?
10 Zlatusya
 
18.09.18
13:40
т.е. по идее вместо выбранного элемента мне нужно подставить друго йэлемент но который зависит от выбранного по  шаблону. если бы писала например просто через обычную выборку то потом в результат сбросила бы и поменяла по циклу. а здесь сразу макет в скд сделан и группировки. не знаю как найти элемент по коду в запросе. условие ГДЕ не подходит
11 Optan
 
18.09.18
13:40
(7)
ООО "МОлоко" Молоко     (02001)->(02001)-->ИщемВСправочнике
ООО "МОлоко" Молоко 2,5 (02051)->(02001)-->ИщемВСправочнике
ООО "МОлоко" Молоко 3,2 (02061)->(02001)-->ИщемВСправочнике

Не так?
12 Zlatusya
 
18.09.18
13:41
уверена в том что шаблон стандартный - это не товары, это кпс. товары для примера привела чтобы понятно было
13 Zlatusya
 
18.09.18
13:41
(11) да
14 Zlatusya
 
18.09.18
13:41
(11) как найти в справочнике сразу в скд при выборе поля?
15 Ненавижу 1С
 
гуру
18.09.18
13:44
надо соединиться еще раз со справочником по условию примерно такому

ПОДСТРОКА(ИсходныеДанные.Номенклатура.Код,1,2)+"00"+ПОДСТРОКА(ИсходныеДанные.Номенклатура.Код,5,1) = Справочник.Код
16 Zlatusya
 
18.09.18
13:44
я нашла в нете такой пример: ЗНАЧЕНИЕ(справочники.товары.найтипокоду("02"))

но при внесении ошибка и не созраняет поле
17 Zlatusya
 
18.09.18
13:46
(15) в смысле сделать соединение и новое поле получить? с подстрокой я как раз и пыталась сейчас, только командой найти по по коду. сейчас попробую.
18 palsergeich
 
18.09.18
13:53
(16) Функция значение работает только с предопределенными данными в языке запросов.
(15) Для разовой обработки сойдет, но для боевого отчета - это очень плохо.
Я бы сделал так:
Регистр сведений с измерениями ссылка на справочник и преобразованная строка + подписка на событие при записи, для заполнения значений. + разовая обработка по его заполнению.
Или аналогичный реквизит в справочнике. Но РС подходит больше. И соединялся бы уже с ним, это будет оптимальнее.
19 Ненавижу 1С
 
гуру
18.09.18
13:56
(18) это понятно, что или РС связи или номенклатурные группы
20 Zlatusya
 
18.09.18
15:45
(18) ого. ну менять-то конфу тоже из-за одного отчета неохота. тем более что типовой отчет как работает так и будет. а этот так сказать в довесок нужен. вынесен как внешний
21 defini
 
18.09.18
16:17
А если без СКД выполнить запрос, его выгрузить в ТЗ, обработать ТЗ как нужно, а потом скормить результат СКД?
22 Rovan
 
гуру
18.09.18
16:25
(3) а в чем глобальный замысел сей подмены ?
23 palsergeich
 
18.09.18
17:46
(20) Дело хозяйское, я как раз на хлеб зарабатываю тем что исправляю аналогичный код после того как работа в базе встает колом.
24 Zlatusya
 
18.09.18
18:48
Глобальный смысл в том что выводятся данные в разрезе кпс. но кпс разбит на более мелкие составляющие. и и буху нужны как бы сводные данные в разрезе более крупной составляющей (нулевой, я бы так сказала) для внутренних нужд и обычный разрез который ведется сейчас.
25 Zlatusya
 
18.09.18
18:48
(23) что может случиться?
26 Zlatusya
 
18.09.18
18:50
у меня другая проблема возникла. я типовой отчет сохранила как внешний. он работает. но стоит мне в запросе просто что-то поменять (даже поле добавить) он перестает работать , выдает ошибку - не найдено поле.
По коду в проц. "ПередКомпоновкойМакета"  вдруг резко теряется запрос из набора данных и становится вместо большой запроса одной строчкой. не пойму почему?
27 Zlatusya
 
18.09.18
18:53
я так понимаю скд перед выполнение пытается оптимизировать запрос. но раньше на такую проблему не нападала. что делать-ТО? пока не меняю - выводит отлично, только что-то добавила - пересатет формировать
28 Zlatusya
 
18.09.18
18:55
(21) а пример маленький кода можно? как скормить обратно особенно......
29 Sapiens_bru
 
18.09.18
19:24
(28) Маленького не нашел.
https://yadi.sk/d/sTqzHvpg2LF4Ug
По ссылке внешний отчет для примитивной конфигурации (типа Каркасной).
Суть отчёта - получение АБЦ анализа. Это сейчас я умный и знаю, что АБЦ встроен в СКД. А тогда решил задачу так:
1)Сделал запрос к двум наборам данных, один из которых это мой полезный запрос, второй - пустая таблица значений.
2)В модуле поймал все настройки и результат запроса, скомкал обработкой как мне надо и положил в таблицу.
3)Подал таблицу на вход второй компоновке, а чтобы не дублировать результаты - удалил из неё запрос.
4)Скомпоновал вторую компоновку и выдал в форму.

там в коде есть несного комментов
30 Zlatusya
 
18.09.18
19:58
(29) спасибо
31 timurhv
 
18.09.18
22:19
(0) Используйте вычисляемые поля, делал подобное преобразование номеров с/ф для корректной сортировки.
Надо было:
10/1
10/2
...
10/10

а не как стандартный:
10/1
10/10
10/2
32 timurhv
 
18.09.18
22:30
(24) Если вы реально для БГУ это пишете, то я бы не к коду/наименованию привязывался, а к заполненным реквизитам КПС без вида расхода, а сам вид расхода в соединении указал жестко нулевой.
33 Zlatusya
 
19.09.18
07:35
(32) ну там же все равно нужно этот  кпс найти, хоть по наименованию, хоть по частям из которых он состоит(то же такая мысль была, но я пока вообще с этим отчетом в дебрях сижу - не думала что так сложно окажется). как это сделать в запросе? пример можно? и еще - у меня слетает текст запроса как только я туда лезу что-то переделывать. вчера пыталась изменить по отчету который скинул  Sapiens_bru, не трогая запрос, вытащить вытащила, изменила, а обратно засунуть пока не смогла - так как в ту процедуру, которая указана в его отчет (предопределяемая) исполн. код просто не заходит, а  в другой не могу отловить документрезультат.
Никто не знает почему текст запроса слетает? я нашла по коду - там маркированные поля  в запросе есть с "//". по ним при компоновке убирается часть текста запроса. но проблема в том что в самом тексте  я не вижу этих маркир. полей, как будто их нет и как-то потом добавляются. как только я меняю запрос - марк. поля уходят и текст выдает ошибку при компановке.
34 Zlatusya
 
19.09.18
07:37
(32) для бгу. если вам не сложно не могли бы вы посмотреть отчет журнал операций 0504... Его надо сохранить как внешний, добавить любое поле в запросе и отсмотреть строчку  502 в модуле "ТекстСубконтоПоСубконто = СтандартныеОтчеты.По....". в этом месте видно что как только запрос изменен текст теряется.
35 Zlatusya
 
19.09.18
07:39
(31) пример код в полях можно как переделали?
36 Zlatusya
 
19.09.18
07:39
спасибо всем кто помогает. что-то у меня мало практики в скд выходит раз ничего не получается с такой фигней.
37 catena
 
19.09.18
07:41
(33)При открытии конструктора все закомментированные строки удаляются.
38 Zlatusya
 
19.09.18
08:23
(37) как тогда вносили комментарии? там же не запрос а компоновка идет. как внести изменения чтобы остались?
39 timurhv
 
19.09.18
08:58
(34) а вы уверены, что вам нужен элемент справочника КПС, его же может не быть. Не проще выводить в виде строки? Или расшифровка тоже нужна?
40 Zlatusya
 
19.09.18
10:48
(39) ну если смотреть результир. таблицу то там в части нет данных. да это не вопрос на самом деле, отладить не проблема.  у меня уже просто у самой интерес как выправлять запрос в компоновке если потом отчет накладывает результирующие изменения в запрос? и ориентируется он на коммент. строки с //, которые пропадают при изменении запроса пользователем.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.