СКД в ERP

1. AlexeyIsip 25 21.04.21 09:47 Сейчас в теме
При использовании "Правил обмена с подключаемым оборудование" в ERP возникла необходимость задать шаблон который выводил бы номенклатуры с наименованиями Велосипеды или самокаты
в форме задал на форме обмена строку Номенклатура.Наименование Соответсвует шаблону [ВвСс][еа][лм][о][ск][иа][пт]%

Простенький запрос работает отлично:
ВЫБРАТЬ
	Номенклатура.Ссылка КАК Ссылка
ИЗ
	Справочник.Номенклатура КАК Номенклатура
ГДЕ
	Номенклатура.Наименование ПОДОБНО &П СПЕЦСИМВОЛ "/"


НО
Проблема в том, что до запроса параметр доходит вот в таком виде: /[ВвСс]/[еа]/[лм]/[о]/[ск]/[иа]/[пт]%


Те выполняется команда:
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Компоновщик.ПолучитьНастройки(), , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

После этого
МакетКомпоновки.ЗначенияПараметров.П.Значение= "/[ВвСс]/[еа]/[лм]/[о]/[ск]/[иа]/[пт]%"
Как убрать / из значения параметра
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 21.04.21 10:19 Сейчас в теме
а зачем все это?
в СКД отлично работают отборы, задаете группу ИЛИ в ней

Номенклатура.Наименование Содержит "Велосипед"
или
Номенклатура.Наименование Содержит "Самокат"
3. AlexeyIsip 25 21.04.21 11:37 Сейчас в теме
нет отборов на форме с возможностью прописать условие или...
4. user1079872 21.04.21 12:17 Сейчас в теме
Два условия разными строками в отборе задать надо
5. user1079872 21.04.21 12:20 Сейчас в теме
На закладке отбор выделить ваших 2 условия и в контекстном меню "Сгруппировать условия", создастся группа условий, в ней увидите можно выбрать условие ИЛИ
6. AlexeyIsip 25 21.04.21 12:20 Сейчас в теме
Тогда по условию "И" произойдет соединение
7. user1079872 21.04.21 12:21 Сейчас в теме
то же самое действует на любые условия в СКД и все что с ним связано (настройки УФ), например в условном оформлении формы (отчета) часто приходится задавать довольно сложные условия оформления элементов или колонок, группы условий выручают. благо их можно создавать сколько угодно, да еще и вложенные друг в друга
8. user1079872 21.04.21 12:23 Сейчас в теме
в СКД на отборах - добавить отбор - группа
Все получится.
9. AlexeyIsip 25 21.04.21 12:29 Сейчас в теме
Прикладываю скрины формы. Добавить условие ИЛИ не вижу возможности.
Прикрепленные файлы:
10. user1079872 21.04.21 12:32 Сейчас в теме
Для того чтобы ввести в отбор логическое «ИЛИ» необходимо добавить группу «Или». В панели отбора вызовем контекстное меню и выберем пункт Новая группа.
В новом поле выберем значение Группа Или. Выделив эту группу и используя контекстное меню, добавим в эту группу условия Номенклатура.Наименование Содержит "Велосипед" и номенклатуры с наименованиями самокаты . Далее в корень отбора добавим условие . Панель отбора в результате будет выглядеть примерно так:
Прикрепленные файлы:
11. AlexeyIsip 25 21.04.21 12:34 Сейчас в теме
У меня это выглядит вот так
Прикрепленные файлы:
12. AlexeyIsip 25 21.04.21 12:43 Сейчас в теме
Вот в отладке не понятное на мой взгляд преобразование [ в /[
Прикрепленные файлы:
13. user1079872 21.04.21 12:53 Сейчас в теме
Создай в СКД параметр Группа, и включи в пользовательские настройки. Это, кстати, будет работать быстрее, чем отбор. Если групп может быть несколько, то поставь параметру галочку "Доступен список значений".

Если не нравятся параметры (на обычных формах они не слишком красивые), то реквизит на форму, но тогда формировать отчет придется программно (см. ниже)
Для нескольких групп добавить придется таблицу значений, в которой будет выбираться список этих групп. Тогда

МассивГрупп = ТЗГруппы.ВыгрузитьКолонку("Группа");


Сам отчет на СКД с установкой произвольных параметров программно формируется так:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    ТабДок = СформироватьДокумент();
КонецПроцедуры


Функция СформироватьДокумент()
        
    //ОсновнаяСхемаКомпоновкиДанных - макет схемы компоновки данных

    Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    Настройки = Схема.НастройкиПоУмолчанию;
    
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
    
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
        
    //Тут устанавливаешь свой параметр    

    ПараметрГруппы = Новый ПараметрКомпоновкиДанных("Группы");// Имя параметра в СКД    

    ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрГруппы);    
    ЗначениеПараметра.Значение = МассивГрупп;// Или Группа    

    ЗначениеПараметра.Использование = Истина;
    
        
    Настройки = КомпоновщикНастроек.Настройки;
        
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;    
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , , Истина);
    
    ДокументРезультат = Новый ТабличныйДокумент;
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;    
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
            
    Возврат ДокументРезультат;

КонецФункции
Показать
14. AlexeyIsip 25 21.04.21 13:08 Сейчас в теме
Я все понимаю, что написать программное использование "или" можно, но я не хочу глобально менять штатные процедуры ERP, максимум могу что-нибудь точечно через расширение добавить.
Хочется вообще ничего не дорабатывать, а в ставить что-нибудь в пользовательский интерфейс, какое-нибудь регулярное выражение.
Например, в Oracle можно в операторе like использовать || как условие или...
15. user1079872 21.04.21 13:11 Сейчас в теме
Тогда На закладке отбор выделить ваших 2 условия и в контекстном меню "Сгруппировать условия",
Создавайте 2 условия и выделяете два условия и жду скан с вызванным контекстным меню так чтобы были видны условия и контекст меню
16. user1079872 21.04.21 13:33 Сейчас в теме
Пример
Прикрепленные файлы:
21. user1079872 21.04.21 15:22 Сейчас в теме
(16) Примерно так должны получить
Прикрепленные файлы:
17. user1079872 21.04.21 13:35 Сейчас в теме
Вы в своих скринах не стоите на условиях
18. user1079872 21.04.21 13:38 Сейчас в теме
Попробуйте еще раз. У Вас не выделены названия номенклатуры на данном скрине, отсюда и в контексте не сгруппировать. Стать на название номенклатуры, а не на отбор серия номенклатуры
Прикрепленные файлы:
19. AlexeyIsip 25 21.04.21 14:02 Сейчас в теме
Так
Прикрепленные файлы:
20. user1135816 4 21.04.21 15:06 Сейчас в теме
(19) Как аналог из другого отчета и другой базы. Попробовал создать "группу или" в отборе - собственно работает
Прикрепленные файлы:
22. user1079872 21.04.21 15:24 Сейчас в теме
(19) Примерно так должны получить. Это все работает
Прикрепленные файлы:
23. user1079872 21.04.21 15:38 Сейчас в теме
очень просто: добавить в отбор группу типа "ИЛИ". Через кнопку "Добавить", подменю "группу" или выделить условия, нажать правую кнопку мыши и выбрать "Сгруппировать". Группы между собой также можно группировать, формируя сложные комбинации условий отбора.
24. AlexeyIsip 25 21.04.21 15:56 Сейчас в теме
Нету подменю "Группа". Переписывать штатную программную компоновку тоже желания нет.
Максимум на что может хватить моего желания - это на вставку пару в строк в расширение на по процедуру ПриСозданииНаСервере.
Неужели в штатном механизме "Соответствует шаблону" нет возможности прописать условие ИЛИ???
25. user1079872 21.04.21 15:59 Сейчас в теме
в подменю Еще есть пункт «Сгруппировать отборы». Он позволяет объединять отдельные отборы по условиям «И» (группа срабатывает, если срабатывают все отборы вместе), «ИЛИ» (группа срабатывает, если срабатывает один из отборов), «НЕ» (обращает действие отборов). Для группировки необходимо выделить несколько нужных отборов и нажать «Сгруппировать отборы». Для отмены группировки необходимо выбрать группу и нажать «Разгруппировать» (Рисунок 1).
Группировка отборов

Рисунок 1. Группировка отборов.
Прикрепленные файлы:
26. AlexeyIsip 25 21.04.21 16:13 Сейчас в теме
на форме нету подменю с возможностью настроить. Я прикладывал скрины формы выше
27. starik-2005 3031 21.04.21 16:24 Сейчас в теме
(26)
на форме нету
Видимо у Вас там на форме действительно нету группировки. Скорее всего про нее забыли разработчики типовой, поэтому и нет.

П - это параметр, который схема компоновки сама генерит на основании пользовательских отборов. Т.е. это не кодом 1С прописывается.

Лично я бы просто добавил команду на форму настроек обмена (это должна быть какая-то кастомная форма) команду добавления группы. Думаю, что просто вытащить соответствующую команду из команд компоновщика настроек или что там за объект притянут на форму. Это будет минимальное изменение.
29. user1079872 22.04.21 08:15 Сейчас в теме
(26) Вервия ERP , релиз программы и релиз платформы на которой работаете укажите пожалуйста?
и на пункте есть кнопка ответить. Тогда приходит и сообщение на личную электронную почту создателю пункта на который отвечаете. Нет необходимости постоянно находиться на форуме. А ответ который создается будет находиться под пунктом на который делается ответ. Что позволяет ускорить время решения задачи
33. AlexeyIsip 25 24.04.21 13:58 Сейчас в теме
(29) 1С:ERP Управление предприятием 2 (2.4.13.111)
платформа 8.3.18.1289
28. SlavaKron 21.04.21 17:01 Сейчас в теме
Видимо, у вас какая-то совсем древняя ерп. В УТ образца конца 2019 года такие кнопки есть.
Прикрепленные файлы:
30. AlexeyIsip 25 22.04.21 11:24 Сейчас в теме
Специально развернул УТ. Нет кнопки группировать условия
Либо платформа корявая, либо что-то другое.
Прикрепленные файлы:
31. SlavaKron 22.04.21 11:52 Сейчас в теме
(30) Похоже на то. Конфигурация тут вроде бы не при чем. На форме справочника используется платформенный элемент для отображения Отбора. Проверьте прикрепленную обработку, отображаются ли кнопки группировки условий.
Прикрепленные файлы:
ВнешняяОбработка1.epf
32. AlexeyIsip 25 22.04.21 12:59 Сейчас в теме
(31) Пункт "Сгруппировать условия" в твоей обработке есть!
Прикрепленные файлы:
34. AlexeyIsip 25 27.04.21 19:13 Сейчас в теме
Похоже в новых релизах зачем-то разработчики отключили группировку условий...
В Релизе 11.4.9.70 есть возможность сгруппировать, а в релизе 11.4.12.91 уже нет возможности сгруппировать
Прикрепленные файлы:
35. user1079872 29.04.21 15:17 Сейчас в теме
11.4.13.178 27.04.21 - Актуальная
И на платформах других попробуйте
36. AlexeyIsip 25 29.04.21 15:37 Сейчас в теме
(35) Мне вообще в ERP нужно. В ERP я в актуальной демке проверил. Сгруппировать там нет. УТ я попробовал, тк знаю, что из ERP потом в УТ все мигрирует связанное с торговлей + у меня старая база на УТ была.
Думаю, что есть команда, которая может удалить из диалога СКД команду "Сгруппировать"... Найти бы ее...
37. AlexeyIsip 25 28.05.21 09:52 Сейчас в теме +1 $m
К сожалению, прошел месяц и рабочего решения нет (
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день