Вопрос № 111877: Привет всем. Не могу никак решить один вопрос. Надеюсь на вашу помощь. Мне нужно сделать запрос по всем всем документам,кроме одного вида документа в 1С, притом нужно сделать группировку по кассирам и по счету, а также по одному условию. Перечислять ...
Вопрос № 111.877
Привет всем. Не могу никак решить один вопрос. Надеюсь на вашу помощь. Мне нужно сделать запрос по всем всем документам,кроме одного вида документа в 1С, притом нужно сделать группировку по кассирам и по счету, а также по одному условию. Перечислять в запросе все виды документа(|НомерДок = Документ.ОПЛ_Телеком.НомерДок; и т.д) это сущий мазохизм. Может есть какой-либо общий документ(типа |НомерДок = Документ.НомерДок; |Сумма = Документ.Сумма;) который можно использовать? Пробовал запрос по журналам(благо там
есть общий), но нифига не вышло. Я так понял журналы вообще нельзя включать в запрос. Как ,вообще, лучше лучше сделать эту операцию? Если можно, то с примерами.
Отправлен: 01.12.2007, 16:53
Вопрос задал: Endru (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 11)
Отвечает: Besker®
Здравствуйте, Endru!
Журналы в запрос нельзя включить.
Разве что попоробуйте в одну переменную включить нужные документы, например:
|Документы = Документ.Счет.ТекущийДокумент, Документ.Опл.ТекущийДокумент, и т.д.
А дальше можно обращаться к реквизитам, например:
|Группировка Документы Упорядочить По Документы.Кассир;
Работа с запросом по документам нецелесообразна. Лучше воспользоваться запросм по регистрам.
--------- Жизнь - игра, а настоящая игра - МАНИЯ.
Ответ отправил: Besker® (статус: Студент)
Ответ отправлен: 01.12.2007, 17:45 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! С Вашей помощью я узнал много нового для себя.
Отвечает: Сергей Максименко [Elric]
Здравствуйте, Endru!
"Общего документа" для запроса нет. По журналам запрос строить тоже нельзя.
Вариант 1.
Использовать регистр или забалансовый счет для накопления нужной информации в нужных разрезах, строить запрос по ним. Самый рациональный вариант, если допустимо перепроведение (или допроведение) документов за необходимый период.
Вариант 2.
Делать просто перебор документов, записывать данные в таблицу значений, сворачивать, сортировать и анализировать результат. пример приводить не буду -- слишком много деталей.
Вариант 3.
Текст запроса писать не "ручками", а программно, используя объект Метаданные. Пример - в Приложении. Правда, может понадобится контролировать длину строк, но с этим проблем не должно возникнуть.
Приложение:
--------- В творчестве рождается истина
Ответ отправил: Сергей Максименко [Elric] (статус: Профессионал) Украина, Киев Тел.: +38(095)2873210 Организация: "МАКСЕР" - продажа и внедрение "1С:Предприятие" Адрес: г. Киев WWW:"1С:Предприятие" - продажа, внедрение, сопровождение ---- Ответ отправлен: 01.12.2007, 21:25 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! С Вашей помощью я узнал
много нового для себя.
Отвечает: Владимир Лазурко [Vladal]
Здравствуйте, Endru!
Вы пошли в правильном направлении - рациональнее использовать запрос, в котором указать условие отбора и какие документы просматривать.
Предполагаю, что вопрос по 7-й версии.
Если Вам нужно включить в запрос ВСЕ документы кроме одного, а вручную (или с помощью конструктора запросов), Вы не хотите делать, сделайте одну маленькую обработку, с помощью которой в режиме предприятия получите список документов из конфигурации. Её текст в приложении (1) и пример результата в (2). Потом готовый список скопируйте в текст запроса и подкорректируйте в соответствии c Вашими нуждами, а после последнего документа вместо запятой поставьте точку c запятой.
В моём примере вместо кассира я отбирал по товарам и контрагентам. Например, найти все документы за ноябрь, в которых клиенту Иванову выписывали кефир, и чтобы сумма накладной была больше 100 рублей. Для этого я в форму обработки поместил два реквизита ВыбКонтрагент типа Справочник.Контрагенты и ВыбТовар типа Справочник.Номенклатура. В Вашем случае это будут реквизиты типа Справочник.Сотрудники (кассир) и Справочник.РасчетныеСчета. Также поместил диалог выбора периода.
Текст модуля в приложении (3).
Готовую обработку можно скачать по адресу
http://ifolder.ru/4381492
Название: rusfaq111877.zip, Размер: 7.09 кб
Успехов!
Владимир.
Приложение:
Ответ отправил: Владимир Лазурко [Vladal] (статус: 9-ый класс)
Ответ отправлен: 01.12.2007, 23:06 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! С Вашей помощью я узнал много нового для себя. Отдельное спасибо хочу сказать за то, что не поленились сделать обработку для меня. Спасибо!
Отвечает: Астафьев Александр Николаевич
Здравствуйте, Endru!
Чтобы не перечислять все виды документа предлагаю обратиться к ним через регистр:
|Док = Регистр.ОстаткиТМЦ.ТекущийДокумент;
Если надо сделать по всем видам документов кроме одного включите в запрос условие типа:
|Условие(Док.Вид() <> "Инвентаризация");
если надо несколько разных условий задать то без проблем пишите сколько хотите
Ответ отправил: Астафьев Александр Николаевич (статус: 7-ой класс)
Ответ отправлен: 02.12.2007, 15:14 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! С Вашей помощью я узнал много нового для себя. Я обязательно попробую сделать это через регистры, чтобы разобраться как это работает.