Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 16:59
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: 8.2 Бух. Запрос с условием "комментарий содержит текст"  (Прочитано 16549 раз)

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

Оффлайн bolobol

  • *
  • Сообщений: 41
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-26
  • Сайт: 
  • Профессия: Программист 1С
Приветствую

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

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

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

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

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

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

-----

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


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Цитировать
А вдруг в комментарии попадётся _два_ склада??
А 3 может быть? Тут только мысль это находить в строке наименование склада, добавлять допустим это наименование в таблицу значений, потом убирать из строки это наименование и опять искать наименование какого-нибудь склада. Вобще может сделать реквизит склад в документе? Чтоб не морочиться со строками, в строке же и ошибка может быть.

Оффлайн sergeevds

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 38
  • КПД: 19%
  • Регистрация: 2011-08-18
  • Сайт: 
  • Профессия: Программист 8.1
Действительно лучше добавить реквизит в ПКО, но если тебе очень уж хочется именно так, то етсь в запросах такой оператор ПОДОБНО - почитай про него, он сравнивает строки, там можешь сравнить название своего склада с комментарием, только от случая, если в комментарии два склада это не спасет, тогда надо еще до выполнения запроса отдельно обрабатывать эту строку: по длине еще может контролировать сначала, а если превышает, то искать там ";" и отделять в две переменные, и в запрос тогда ронять параметр списком значений. Но это реально забивание гвоздей микроскопом - делай реквизит в ПКО.

Оффлайн bolobol

  • *
  • Сообщений: 41
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-26
  • Сайт: 
  • Профессия: Программист 1С
добавить реквизит в ПКО
Ну, так-то оно так, но тогда с поддержки... обновления и все дела...

в запросах такой оператор ПОДОБНО
Это понятно, как использовать в связке с наименованием склада из справочника складов?

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

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

Оффлайн sergeevds

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 38
  • КПД: 19%
  • Регистрация: 2011-08-18
  • Сайт: 
  • Профессия: Программист 8.1
Т.е. запрос без поддержки ты менять можешь, а реквизит добавить - нет? Наименование - строка (можно сделать из ссылки через ВЫРАЗИТЬ, а можно сразу Склад.Наименование), комментарий - строка между ними подобно и левое соединение между документом и справочником. А можно, например, попробовать еще через список значений:
Список = Новый СпсокЗначений;
Список.Добавить(Справочники.Склады.НайтиПоНаименованию("Склад1").Наименование);
//Так в этот список все склады 
Запрос.УстановитьПараметр("Склады",Список);
Запрос.Текст = "ВЫБРАТЬ
...
ИЗ
РегистрНакопления...(..., ПКО.Комментарий В(&Склад))"



Оффлайн bolobol

  • *
  • Сообщений: 41
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-26
  • Сайт: 
  • Профессия: Программист 1С
Т.е. запрос без поддержки ты менять можешь, а реквизит добавить - нет?
Да, запрос ведь внешний, а реквизит - это вмешательство, которое при переносе данных от 1С (для примера) учтено не будет

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

Оффлайн sergeevds

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 38
  • КПД: 19%
  • Регистрация: 2011-08-18
  • Сайт: 
  • Профессия: Программист 8.1
Только это на один склад тебя спасет, если два, то не вкатит.

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
Есть еще такая штука полезная... Свойства документа
Можно задать свойство Склад со значениями Зал1, Зал2...
и пользоваться стандартными отчетами.
Единственная сложность - юзеров заставить его заполнять...
но это не намного сложнее, чем заставить писать комментарии, да еще и без опечаток
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн Андрей Федотов

  • ***
  • Сообщений: 212
  • РЕПУТАЦИЯ: 36
  • КПД: 17%
  • Регистрация: 2011-07-07
  • Компания: Future IT Solutions
  • Профессия: Разработчик 1С
Через ПОДОБНО будет работать не многим быстрее Найти()
Замучаетесь ждать.

Если не хотите делать реквизит - быть может 1 раз ночью запускать регламентное задание?
С уважением,
Андрей Федотов
Future IT Solutions

Оффлайн bolobol

  • *
  • Сообщений: 41
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-26
  • Сайт: 
  • Профессия: Программист 1С
Да, "Комментарий В(&Склад)" - не работает, там только строгое РАВНО проверяется, так и в конструкторе сообщает, что неограниченная длина не поддерживается. В результате сделал очень много "ИЛИ Комментарий ПОДОБНО &СкладN", отчёт формируется в 4 раза быстрее, но вопросы только начались ))


Теги:
 

Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 985
Последний ответ 11 Июл 2016, 09:00
от vitasw
Запрос на перенос срока задачи НЕ автору задачи, а другому пользователю. Помогите с конфигурированием!

Автор juli777Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1838
Последний ответ 18 Ноя 2014, 21:14
от sertak
Запрос COMMIT TRANSACTION не имеет соответствующей инструкции BEGIN TRANSACTION

Автор MuI_I_IkaРаздел Ошибки 1С:Предприятия

Ответов: 0
Просмотров: 3949
Последний ответ 24 Ноя 2016, 11:13
от MuI_I_Ika
Получить значение непериодического регистра сведений можно только через запрос?

Автор DirecTwiXРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 4219
Последний ответ 26 Апр 2012, 01:42
от DirecTwiX
невозможно выполнить статистическую функцию для выражения, содержащего выражение или вложенный запрос

Автор Marta_LiРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2597
Последний ответ 23 Фев 2014, 23:27
от Marta_Li

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
179 Сообщений
ilyay ilyay
69 Сообщений
alex0402
54 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 599
  • Точка Скрытых: 1
  • Точка Пользователей: 12
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal