При использовании "Правил обмена с подключаемым оборудование" в ERP возникла необходимость задать шаблон который выводил бы номенклатуры с наименованиями Велосипеды или самокаты
в форме задал на форме обмена строку Номенклатура.Наименование Соответсвует шаблону [ВвСс][еа][лм][о][ск][иа][пт]%
Простенький запрос работает отлично:
НО
Проблема в том, что до запроса параметр доходит вот в таком виде: /[ВвСс]/[еа]/[лм]/[о]/[ск]/[иа]/[пт]%
Те выполняется команда:
После этого
МакетКомпоновки.ЗначенияПараметров.П.Значение= "/[ВвСс]/[еа]/[лм]/[о]/[ск]/[иа]/[пт]%"
Как убрать / из значения параметра
в форме задал на форме обмена строку Номенклатура.Наименование Соответсвует шаблону [ВвСс][еа][лм][о][ск][иа][пт]%
Простенький запрос работает отлично:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование ПОДОБНО &П СПЕЦСИМВОЛ "/"
НО
Проблема в том, что до запроса параметр доходит вот в таком виде: /[ВвСс]/[еа]/[лм]/[о]/[ск]/[иа]/[пт]%
Те выполняется команда:
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Компоновщик.ПолучитьНастройки(), , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
После этого
МакетКомпоновки.ЗначенияПараметров.П.Значение= "/[ВвСс]/[еа]/[лм]/[о]/[ск]/[иа]/[пт]%"
Как убрать / из значения параметра
По теме из базы знаний
- Т-1, Т-2, Т-5, Т-5а, Т-6, Т-7, Т-8, Т-9,Т-10, Т-11, Т-13, Т-53, Приказы о приеме на работу, о расторжении трудового договора. КА 2, ERP 2
- Т-1, Т-1а, Т-2, Т-3, Т-4, Т-5, Т-5а, Т-6, Т-6а, Т-7, Т-8, Т-8а, Т-9, Т-9а, Т-10, Т-10а, Т-11, Т-11а, Т-13, Личная карточка работника, Приказ о предоставлении отпуска работнику. ЗУП 3.1, ЗиКГУ, ERP
- Подсистема штрихкодирования серий номенклатуры для 1С:УТ 11.4/11.5 КА, ERP 2.4/2.5
- Пример программной работы с отчетом на основе СКД. Запуск типового перестроенного программно отчета по событию формы
- Дерево ресурсных спецификаций для ERP 2.5
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
то же самое действует на любые условия в СКД и все что с ним связано (настройки УФ), например в условном оформлении формы (отчета) часто приходится задавать довольно сложные условия оформления элементов или колонок, группы условий выручают. благо их можно создавать сколько угодно, да еще и вложенные друг в друга
Для того чтобы ввести в отбор логическое «ИЛИ» необходимо добавить группу «Или». В панели отбора вызовем контекстное меню и выберем пункт Новая группа.
В новом поле выберем значение Группа Или. Выделив эту группу и используя контекстное меню, добавим в эту группу условия Номенклатура.Наименование Содержит "Велосипед" и номенклатуры с наименованиями самокаты . Далее в корень отбора добавим условие . Панель отбора в результате будет выглядеть примерно так:
В новом поле выберем значение Группа Или. Выделив эту группу и используя контекстное меню, добавим в эту группу условия Номенклатура.Наименование Содержит "Велосипед" и номенклатуры с наименованиями самокаты . Далее в корень отбора добавим условие . Панель отбора в результате будет выглядеть примерно так:
Прикрепленные файлы:


Создай в СКД параметр Группа, и включи в пользовательские настройки. Это, кстати, будет работать быстрее, чем отбор. Если групп может быть несколько, то поставь параметру галочку "Доступен список значений".
Если не нравятся параметры (на обычных формах они не слишком красивые), то реквизит на форму, но тогда формировать отчет придется программно (см. ниже)
Для нескольких групп добавить придется таблицу значений, в которой будет выбираться список этих групп. Тогда
Сам отчет на СКД с установкой произвольных параметров программно формируется так:
Если не нравятся параметры (на обычных формах они не слишком красивые), то реквизит на форму, но тогда формировать отчет придется программно (см. ниже)
Для нескольких групп добавить придется таблицу значений, в которой будет выбираться список этих групп. Тогда
МассивГрупп = ТЗГруппы.ВыгрузитьКолонку("Группа");
Сам отчет на СКД с установкой произвольных параметров программно формируется так:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ТабДок = СформироватьДокумент();
КонецПроцедуры
Функция СформироватьДокумент()
//ОсновнаяСхемаКомпоновкиДанных - макет схемы компоновки данных
Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = Схема.НастройкиПоУмолчанию;
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
//Тут устанавливаешь свой параметр
ПараметрГруппы = Новый ПараметрКомпоновкиДанных("Группы");// Имя параметра в СКД
ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрГруппы);
ЗначениеПараметра.Значение = МассивГрупп;// Или Группа
ЗначениеПараметра.Использование = Истина;
Настройки = КомпоновщикНастроек.Настройки;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , , Истина);
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Возврат ДокументРезультат;
КонецФункции
Показать
Я все понимаю, что написать программное использование "или" можно, но я не хочу глобально менять штатные процедуры ERP, максимум могу что-нибудь точечно через расширение добавить.
Хочется вообще ничего не дорабатывать, а в ставить что-нибудь в пользовательский интерфейс, какое-нибудь регулярное выражение.
Например, в Oracle можно в операторе like использовать || как условие или...
Хочется вообще ничего не дорабатывать, а в ставить что-нибудь в пользовательский интерфейс, какое-нибудь регулярное выражение.
Например, в Oracle можно в операторе like использовать || как условие или...
Тогда На закладке отбор выделить ваших 2 условия и в контекстном меню "Сгруппировать условия",
Создавайте 2 условия и выделяете два условия и жду скан с вызванным контекстным меню так чтобы были видны условия и контекст меню
Создавайте 2 условия и выделяете два условия и жду скан с вызванным контекстным меню так чтобы были видны условия и контекст меню
очень просто: добавить в отбор группу типа "ИЛИ". Через кнопку "Добавить", подменю "группу" или выделить условия, нажать правую кнопку мыши и выбрать "Сгруппировать". Группы между собой также можно группировать, формируя сложные комбинации условий отбора.
Нету подменю "Группа". Переписывать штатную программную компоновку тоже желания нет.
Максимум на что может хватить моего желания - это на вставку пару в строк в расширение на по процедуру ПриСозданииНаСервере.
Неужели в штатном механизме "Соответствует шаблону" нет возможности прописать условие ИЛИ???
Максимум на что может хватить моего желания - это на вставку пару в строк в расширение на по процедуру ПриСозданииНаСервере.
Неужели в штатном механизме "Соответствует шаблону" нет возможности прописать условие ИЛИ???
в подменю Еще есть пункт «Сгруппировать отборы». Он позволяет объединять отдельные отборы по условиям «И» (группа срабатывает, если срабатывают все отборы вместе), «ИЛИ» (группа срабатывает, если срабатывает один из отборов), «НЕ» (обращает действие отборов). Для группировки необходимо выделить несколько нужных отборов и нажать «Сгруппировать отборы». Для отмены группировки необходимо выбрать группу и нажать «Разгруппировать» (Рисунок 1).
Группировка отборов
Рисунок 1. Группировка отборов.
Группировка отборов
Рисунок 1. Группировка отборов.
Прикрепленные файлы:

(26)
П - это параметр, который схема компоновки сама генерит на основании пользовательских отборов. Т.е. это не кодом 1С прописывается.
Лично я бы просто добавил команду на форму настроек обмена (это должна быть какая-то кастомная форма) команду добавления группы. Думаю, что просто вытащить соответствующую команду из команд компоновщика настроек или что там за объект притянут на форму. Это будет минимальное изменение.
на форме нету
Видимо у Вас там на форме действительно нету группировки. Скорее всего про нее забыли разработчики типовой, поэтому и нет.
П - это параметр, который схема компоновки сама генерит на основании пользовательских отборов. Т.е. это не кодом 1С прописывается.
Лично я бы просто добавил команду на форму настроек обмена (это должна быть какая-то кастомная форма) команду добавления группы. Думаю, что просто вытащить соответствующую команду из команд компоновщика настроек или что там за объект притянут на форму. Это будет минимальное изменение.
(26) Вервия ERP , релиз программы и релиз платформы на которой работаете укажите пожалуйста?
и на пункте есть кнопка ответить. Тогда приходит и сообщение на личную электронную почту создателю пункта на который отвечаете. Нет необходимости постоянно находиться на форуме. А ответ который создается будет находиться под пунктом на который делается ответ. Что позволяет ускорить время решения задачи
и на пункте есть кнопка ответить. Тогда приходит и сообщение на личную электронную почту создателю пункта на который отвечаете. Нет необходимости постоянно находиться на форуме. А ответ который создается будет находиться под пунктом на который делается ответ. Что позволяет ускорить время решения задачи
(30) Похоже на то. Конфигурация тут вроде бы не при чем. На форме справочника используется платформенный элемент для отображения Отбора. Проверьте прикрепленную обработку, отображаются ли кнопки группировки условий.
Прикрепленные файлы:

(35) Мне вообще в ERP нужно. В ERP я в актуальной демке проверил. Сгруппировать там нет. УТ я попробовал, тк знаю, что из ERP потом в УТ все мигрирует связанное с торговлей + у меня старая база на УТ была.
Думаю, что есть команда, которая может удалить из диалога СКД команду "Сгруппировать"... Найти бы ее...
Думаю, что есть команда, которая может удалить из диалога СКД команду "Сгруппировать"... Найти бы ее...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот