Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 02:58

8.2 Бух. Запрос с условием "комментарий содержит текст"

Автор bolobol, 26 авг 2011, 14:34

0 Пользователей и 1 гость просматривают эту тему.

bolobol

Приветствую

Задумался над тем, что должна быть возможность написать запросом решение имеющейся задачи, но не догоняю как. Задача:

Есть документы, в комментарии которых указаны значения недостающих реквизитов, пример:

ПКО1, комментарий: раб. время с 12 до 15 (зал3). Инкассации не было.
ПКО2, комментарий: Сдано за раб. время с 14 до 18 (зал3). Инкассация.
ПКО3, комментарий: Инкассация. раб. с 10 до 16 (зал1).
ПКО4, комментарий: раб. время с 10 до 12 (зал новый). Не инкассация.

Нужно вывести сумму ПКО-шек, сгруппировав их по залам.

Есть справочник Склады, в котором элементы имеют наименования, которые буква в букву (за исключением регистра) совпадают с текстом комментария:
Склад1, наименование: Зал1
Склад2, наименование: зал2
Склад3, наименование: зал3
Склад4, наименование: Зал Новый
Склад5, наименование: левый приход

Но если в комментарии не указан склад - группировать по складу - "левый приход"

-----

Сейчас всё делаю построчной проверкой "Найти(Комментарий, Склад.Наименование)", но чё-то долго как-то. А тут же эскуэль есть!! Одно не въехать - как? А вдруг в комментарии попадётся _два_ склада?? Есть мысли - напишите пожалуйста.

has

ЦитироватьА вдруг в комментарии попадётся _два_ склада??
А 3 может быть? Тут только мысль это находить в строке наименование склада, добавлять допустим это наименование в таблицу значений, потом убирать из строки это наименование и опять искать наименование какого-нибудь склада. Вобще может сделать реквизит склад в документе? Чтоб не морочиться со строками, в строке же и ошибка может быть.

sergeevds

Действительно лучше добавить реквизит в ПКО, но если тебе очень уж хочется именно так, то етсь в запросах такой оператор ПОДОБНО - почитай про него, он сравнивает строки, там можешь сравнить название своего склада с комментарием, только от случая, если в комментарии два склада это не спасет, тогда надо еще до выполнения запроса отдельно обрабатывать эту строку: по длине еще может контролировать сначала, а если превышает, то искать там ";" и отделять в две переменные, и в запрос тогда ронять параметр списком значений. Но это реально забивание гвоздей микроскопом - делай реквизит в ПКО.

bolobol

Цитата: sergeevds от 26 авг 2011, 16:45
добавить реквизит в ПКО
Ну, так-то оно так, но тогда с поддержки... обновления и все дела...

Цитата: sergeevds от 26 авг 2011, 16:45
в запросах такой оператор ПОДОБНО
Это понятно, как использовать в связке с наименованием склада из справочника складов?

Цитата: sergeevds от 26 авг 2011, 16:45
если в комментарии два склада это не спасет, тогда надо еще до выполнения запроса отдельно обрабатывать эту строку
Скорее - после, когда уже известны склады для каждого ПКО, если один и тот же ПКО в запросе два и более раз...

Вот только как будет запрос...

sergeevds

Т.е. запрос без поддержки ты менять можешь, а реквизит добавить - нет? Наименование - строка (можно сделать из ссылки через ВЫРАЗИТЬ, а можно сразу Склад.Наименование), комментарий - строка между ними подобно и левое соединение между документом и справочником. А можно, например, попробовать еще через список значений:
Список = Новый СпсокЗначений;
Список.Добавить(Справочники.Склады.НайтиПоНаименованию("Склад1").Наименование);
//Так в этот список все склады 
Запрос.УстановитьПараметр("Склады",Список);
Запрос.Текст = "ВЫБРАТЬ
...
ИЗ
РегистрНакопления...(..., ПКО.Комментарий В(&Склад))"



bolobol

Цитата: sergeevds от 29 авг 2011, 09:33
Т.е. запрос без поддержки ты менять можешь, а реквизит добавить - нет?
Да, запрос ведь внешний, а реквизит - это вмешательство, которое при переносе данных от 1С (для примера) учтено не будет

Цитата: sergeevds от 29 авг 2011, 09:33
РегистрНакопления...(..., ПКО.Комментарий В(&Склад))"
А вот и та самая конструкция! Спасибо, буду юзать!

sergeevds

Только это на один склад тебя спасет, если два, то не вкатит.

AntonB

Есть еще такая штука полезная... Свойства документа
Можно задать свойство Склад со значениями Зал1, Зал2...
и пользоваться стандартными отчетами.
Единственная сложность - юзеров заставить его заполнять...
но это не намного сложнее, чем заставить писать комментарии, да еще и без опечаток
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Андрей Федотов

Через ПОДОБНО будет работать не многим быстрее Найти()
Замучаетесь ждать.

Если не хотите делать реквизит - быть может 1 раз ночью запускать регламентное задание?

bolobol

Да, "Комментарий В(&Склад)" - не работает, там только строгое РАВНО проверяется, так и в конструкторе сообщает, что неограниченная длина не поддерживается. В результате сделал очень много "ИЛИ Комментарий ПОДОБНО &СкладN", отчёт формируется в 4 раза быстрее, но вопросы только начались ))

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск