С Новым годом! Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.51/47: Рейтинг темы: голосов - 47, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 8

Программирование. Найти Символы.ПС запросом на СКД

19.04.2022, 16:39. Показов 13011. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, прошу помощи, поскольку не могу разобраться с, казалось бы, простой вещью:
Конфигурация Розница 2.3 (УФ). У элемента справочника Номенклатура имеется многострочное текстовое поле "Описание". Требуется запросом в отчёте на СКД найти элементы Номенклатуры, у которых текст в этом поле заканчивается на сочетание символов <пробел><перевод строки>.

К консоли запросов сделал тестовый запрос:
Code
1
2
3
4
5
6
7
8
9
ВЫБРАТЬ
    Номенклатура.Код КАК Код,
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Описание КАК Описание
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ЭтоГруппа = ЛОЖЬ
    И Номенклатура.Описание ПОДОБНО "% " + &Строка
Если параметр &Строка передать в консоль в качестве выражения Результат=Символы.ПС; то запрос отрабатывается нормально. Если же в последней строке запроса указать "ПОДОБНО "% "+Символы.ПС", то в консоли вываливается ошибка "Поле не найдено".

Вопрос: можно ли как-то обойтись в запросе без дополнительного параметра &Строка?
Если это невозможно, то как передать значение этого параметра во внешнем отчёте СКД? И можно ли это сделать средствами СКД, без кода?

"Рыба" отчёта ВнешнийОтчет1.erf во вложении.
Вложения
Тип файла: zip ВнешнийОтчет1.zip (2.6 Кб, 0 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2022, 16:39
Ответы с готовыми решениями:

Проблема с запросом в СКД
Ребята, такой затык, вроде ничего сложного, но сообразить не получается. Допустим у нас есть Номенклатура (например Диван), у Дивана...

Как передать кириллические символы post запросом через HttpClient?
Привет! Есть такой код: var formVariables = new List&lt;KeyValuePair&lt;string, string&gt;&gt;(); formVariables.Add(new...

Разница между СКД и консолью СКД
Доброго дня! Есть запрос в СКД следующего вида: ВЫБРАТЬ ПродажиОбороты.Контрагент, СУММА(ПродажиОбороты.КоличествоОборот) КАК...

25
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
20.04.2022, 15:01
ПОДОБНО "% |%" не проканает?
Или в вашу строку передать сочетание пробел + черта
0
Эксперт 1С
5767 / 1725 / 628
Регистрация: 16.01.2015
Сообщений: 7,207
20.04.2022, 15:27
а если
1C
1
ПОДОБНО  " " + СПЕЦСИМВОЛ""Символы.ПС""
0
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 8
20.04.2022, 16:11  [ТС]
ПОДОБНО "% |%" не работает, поскольку "|" - это черта, а не перевод строки
ПОДОБНО " " + СПЕЦСИМВОЛ""Символы.ПС"" также не работает
0
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
21.04.2022, 08:29
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ВЫБРАТЬ
    Т.Наименование КАК Наименование
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
    &ТЗ КАК Т
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВременнаяТаблица.Наименование КАК Наименование
ИЗ
    ВременнаяТаблица КАК ВременнаяТаблица
ГДЕ
    ВременнаяТаблица.Наименование ПОДОБНО &П
Миниатюры
Программирование. Найти Символы.ПС запросом на СКД   Программирование. Найти Символы.ПС запросом на СКД  
0
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
21.04.2022, 08:43
Результат = "% ¶%";
0
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 8
21.04.2022, 08:48  [ТС]
Номенклатура.Описание ПОДОБНО "% ¶" - так не работает, пробовал ранее.
Передать параметр в консоли в виде выражения можно и так: Результат=Символы.ПС;

Однако вопрос в том и состоит: можно ли как-то обойтись в запросе без дополнительного параметра?
Если это невозможно, то как передать значение этого параметра во внешнем отчёте СКД? И можно ли это сделать средствами СКД, без кода?
0
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
22.04.2022, 06:12
Результат=Символы.ПС у меня на проканало.Может дело в консоли.
Наверное можно задать.
Объявите параметр в СКД, и в консоли СКД, на вкладке Параметры явно задайте значение этого параметра.Вот только я не в курсе Символы.Пс получится ли так объявить?
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4129 / 937 / 264
Регистрация: 22.04.2013
Сообщений: 6,539
Записей в блоге: 1
22.04.2022, 07:34
Цитата Сообщение от OverDozero Посмотреть сообщение
Символы.Пс получится ли так объявить?
я бы попробовал взять скопировать его откуда-нить и цтрл-в вставить. должно вроде заработать
0
Эксперт 1С
5767 / 1725 / 628
Регистрация: 16.01.2015
Сообщений: 7,207
22.04.2022, 13:42
дел
Миниатюры
Программирование. Найти Символы.ПС запросом на СКД  
0
Эксперт 1С
5767 / 1725 / 628
Регистрация: 16.01.2015
Сообщений: 7,207
22.04.2022, 13:48
MichaelIII,У меня получилось. В консоле отработало

1C
1
2
3
4
5
 // В запросе
ПОДОБНО "%" + &Комментарий + "%"
//////////////////////////////////////////////
Комментарий = " " + Символы.ПС;
Запрос.УстановитьПараметр("Комментарий",Комментарий);
Миниатюры
Программирование. Найти Символы.ПС запросом на СКД  
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,703
Записей в блоге: 1
22.04.2022, 14:02
1C
1
ВЫБРАТЬ Ссылка ГДЕ Наименование ПОДОБНО &Параметр
На вкладке параметры в СКД в выражении написать "%"+Символы.ПС+"%"
0
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 8
22.04.2022, 14:34  [ТС]
Цитата Сообщение от Dethmontt Посмотреть сообщение
На вкладке параметры в СКД в выражении написать "%"+Символы.ПС+"%"
К сожалению, не получается. При вставке этого выражения 1С ругается: "Поле не найдено "Символы.ПС". Пробовал и с кавычками, и без них. Пробовал создать это поле на вкладке "Вычисляемые поля" - также безрезультатно.

Добавлено через 3 минуты
Цитата Сообщение от polax Посмотреть сообщение
// В запросе
ПОДОБНО "%" + &Комментарий + "%"
//////////////////////////////////////////////
Комментарий = " " + Символы.ПС;
Запрос.УстановитьПараметр("Комментарий", Комментарий);
Так тоже не работает, поскольку в запросе 2 последние строки, разумеется, указать не получится, а в модуле объекта внешней обработки вставка этих строк ничего не даёт.

Логично, конечно, было бы указать параметр Строка = "Символы.ПС", однако это также не получается, ругается на поле "Символы.ПС".
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,703
Записей в блоге: 1
22.04.2022, 15:56
MichaelIII, ну скопируй символ перевода строки и вставь в значение параметра на той же вкладке
0
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 8
22.04.2022, 16:20  [ТС]
Цитата Сообщение от Dethmontt Посмотреть сообщение
скопируй символ перевода строки и вставь в значение параметра на той же вкладке
Не работает :-( Уже пытался вводить в значение параметра "¶" - всё равно не выдаёт в отчёт.
Попробовал в модуле внешнего отчета передать параметр кодом:
1C
1
2
3
4
5
6
7
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
     
    Параметр    = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Строка"));
    Параметр.Значение   = " " + Символы.ПС;
    Параметр.Использование = Истина;
 
КонецПроцедуры
- также безрезультатно. Всю голову сломал. Вроде бы пустячный вопрос, а решить не получается.
0
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
23.04.2022, 05:47
Да почему именно СКД?
Ну если прямо она,то
1.соберите ВСЕ ДОКУМЕНТЫ обычным запросом с условием по переносу строк.
2.Если обычное условие не канает,то обходя выборку проверяйте 2 последних символа описания.
Если там пробел+перевод, то ссылку,или что там надо, добавляете в таблицу значений.
3.Эту ТЗ передаёте в СКД.
Формально результаты достигнуты помощью СКД
0
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 8
23.04.2022, 16:53  [ТС]
В общем, получилось решить проблему следующим образом:
1. Параметр, как выяснилось, нельзя использовать в запросе в виде
Code
1
ПОДОБНО "% " + &Параметр
однако можно использовать как
Code
1
ПОДОБНО &Параметр
Об этом написано в официальном мануале: https://its.1c.ru/db/v8std/content/726/hdoc

2. Конструкцию в виде Символы.ПС нельзя использовать в поле "Выражение" на вкладке "Параметры" во внешнем отчёте СКД, поскольку 1С в этом случае почему-то думает, что "Символы.ПС" - это поле, а не спецсимвол.

3. Соответственно, значение параметра &Строка пришлось установить в Модуле объекта внешнего отчёта:
1C
1
2
3
4
5
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    ПараметрРасчета = Новый ПараметрКомпоновкиДанных("Строка");
    Строка = "% " + Символы.ПС;
    КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрРасчета, Строка);
КонецПроцедуры
и в запросе при сравнении брать значение этого параметра:
1C
1
2
3
4
5
6
7
8
9
ВЫБРАТЬ
    Номенклатура.Код КАК Код,
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Описание КАК Описание
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ЭтоГруппа = ЛОЖЬ
    И Номенклатура.Описание ПОДОБНО &Строка
Рабочий пример во вложении.
Вложения
Тип файла: zip ВнешнийОтчет1.zip (3.2 Кб, 7 просмотров)
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4129 / 937 / 264
Регистрация: 22.04.2013
Сообщений: 6,539
Записей в блоге: 1
23.04.2022, 17:06
Цитата Сообщение от MichaelIII Посмотреть сообщение
Процедура ПриКомпоновкеРезультата(ДокументРезульта т, ДанныеРасшифровки, СтандартнаяОбработка)
    ПараметрРасчета = Новый ПараметрКомпоновкиДанных("Строка");
    Строка = "% " + Символы.ПС;
    КомпоновщикНастроек.Настройки.ПараметрыД анных.УстановитьЗначениеПараметра(Параме трРасчета, Строка);
КонецПроцедуры
вот я честно хотел такой вариан7т предложить, даже код у себя нашёл такой в загашничке
но это я хотел ответить на пост
Цитата Сообщение от MichaelIII Посмотреть сообщение
И можно ли это сделать средствами СКД, без кода?
)))
и торжественно промолчал
0
Эксперт 1С
5767 / 1725 / 628
Регистрация: 16.01.2015
Сообщений: 7,207
23.04.2022, 18:45
Цитата Сообщение от MichaelIII Посмотреть сообщение
Об этом написано в официальном мануале: https://its.1c.ru/db/v8std/content/726/hdoc
Прочитал, верю. Но вот это же https://www.cyberforum.ru/post16191543.html не фотошоп, отвечаю.
0
Эксперт 1С
 Аватар для OverDozero
921 / 326 / 130
Регистрация: 07.04.2011
Сообщений: 1,733
23.04.2022, 19:32
Пруф?))
Миниатюры
Программирование. Найти Символы.ПС запросом на СКД  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2022, 19:32
Помогаю со студенческими работами здесь

Программирование: знаки, символы, значения
Читая разные учебники и статьи про программирование, я часто натыкаюсь на разные знаки и символы, которые непрозрачно намекают о том, что...

Пожалуйста нужно разобраться с запросом Mysql! Одним запросом из двух таблиц / MySQL
У меня на главной странице существует вот такой запрос (он ниже), который вытаскивает из таблицы &quot;glavnaya&quot; нужные строки. ...

Алгоритм Маркова - преобразовать слово так, чтобы сначала шли символы a, затем – символы b и в конце – символы с
Добрый день. Подскажите, как создать машины Маркова для этих задач: 1. A={a,b,c}. Преобразовать слово P так, чтобы сначала шли все...

Кнопка "Найти" с пустым запросом в поле ввода возвращает все записи
Приветствую всех на форуме и прошу помощи. Ситуация такая: есть база данных на Interbase и приложение на билдере. Если в поле ввода...

Программирование c++ не удается найти файл
Пишет не удается найти файл, может кто-нибудь подсказать? #include &lt;vector&gt; #include &lt;string&gt; #include &lt;cstdint&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru