![]() |
![]() |
|
Как в запросе ввести отбор по счету v8.1 | ☑ | ||
---|---|---|---|---|
0
Yoshi
08.09.11
✎
11:20
|
Задача состояла в том, чтобы создать документ списания, который бы списывал все материалы с сотрудника при его увольнении.
Создала документ, в котором предусмотрела поля ввода сотрудника и вот сейчас подумала, что и поля ввода счета учета тоже не помешало бы. Так вот, по кнопочке заполнить хочу, чтобы заполнялась табличная часть документа, у которой есть реквизиты, наименование которых совпадает с теми, что я получаю в запросе (вроде бы =)). Используя консоль, добилась того, что получаю всю номенклатуру по всем счетам (. понимаю, что нужен отбор, но знания мои в программировании стремятся к нулю, потому делаю все на ощупь. Есть такой текст запроса Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ХозрасчетныйОстатки.КоличествоОстаток КАК Количество, | ХозрасчетныйОстатки.СуммаОстаток КАК Сумма, | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1.Ссылка КАК Номенклатура |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХозрасчетныйОстатки.КоличествоОстаток, | ХозрасчетныйОстатки.СуммаОстаток, | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1.Ссылка |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХозрасчетныйОстатки.КоличествоОстаток, | ХозрасчетныйОстатки.СуммаОстаток, | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1.Ссылка |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ХозрасчетныйОстатки.КоличествоОстаток, | ХозрасчетныйОстатки.СуммаОстаток, | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1.Ссылка |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки |ИТОГИ ПО | ОБЩИЕ, | Сумма, | Количество"; Как мне в этот запрос внести отбор по конкретному счету (счет забалансовый, впоследствии необходимо будет еще и проводки формировать). Или мыслю я совершенно не в том направлении? |
|||
1
Grusswelle
08.09.11
✎
11:21
|
В параметрах виртуальной таблицы остатков: Счет В ИЕРАРХИИ(&Счет).
|
|||
2
Wobland
08.09.11
✎
11:22
|
пол мужской, зарегистрирован вчера. создала, добилась... чего-то не хватает в карточке ;)
|
|||
3
Yoshi
08.09.11
✎
11:23
|
о простите ) не заметила пола)
|
|||
4
Wobland
08.09.11
✎
11:24
|
(3) мы тоже не всё видим
|
|||
5
Yoshi
08.09.11
✎
11:25
|
значит мне нужно создать виртуальную таблицу, ибо ее у меня нет ( или я чего-то опять не поняла?
|
|||
6
Wobland
08.09.11
✎
11:26
|
ответ на вопрос "Как мне в этот запрос внести отбор по конкретному счету" полностью раскрыт в (1)
|
|||
7
Yoshi
08.09.11
✎
11:28
|
(6) жаль, ясности это не добавило ( значит придется справляться самой
в любом случае спасибо |
|||
8
Wobland
08.09.11
✎
11:30
|
(7) для примера:
|ИЗ | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Начало, &Конец, Регистратор, СчетДт = &СчетДТ, , СчетКт = &СчетКТ, , СубконтоКт1 = &СубконтоКт1) КАК ХозрасчетныйОборотыДтКт |
|||
9
Yoshi
08.09.11
✎
11:33
|
(8) простите студента за возможно глупый вопрос, но
значит ли это, что мысль "надо добавить поле ввода счета" было верным ? Иначе как запрос поймет какой именно счет имеется в виду ? или не так? |
|||
10
Wobland
08.09.11
✎
11:35
|
(9) Запрос.УстановитьПараметр() - вот так он поймёт. а что ты туда будешь передавать неизвестно. хочешь - с поля ввода на форме читай, хочешь - пиши в коде..
|
|||
11
Wobland
08.09.11
✎
11:36
|
Тематическая ветка форума подобна нераспустившейся розе, которую нужно осветить солнцем, помочь ей подняться. Только когда вопрос уже решён, девушке можно намекнуть про фотку... И тогда распустившаяся роза будет прекрасна!
|
|||
12
AndreYAN
08.09.11
✎
11:37
|
(7)(8) можно еще так
|ИЗ | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Начало, &Конец, Регистратор, СчетДт.Код = "60.02", , СчетКт.Код = "60.01", , СубконтоКт1 = &СубконтоКт1) КАК ХозрасчетныйОборотыДтКт |
|||
13
Yoshi
08.09.11
✎
11:38
|
оу...а это обязательно? нет, я не отказываюсь, просто любопытно...к своему стыду не читала правила форума (если они вообще есть=))
|
|||
14
Wobland
08.09.11
✎
11:39
|
(13) это такая традиция, и нарушить её мы не в силах
|
|||
15
Yoshi
08.09.11
✎
11:49
|
(14) ох, не будем нарушать традиции )
|
|||
16
Wobland
08.09.11
✎
11:54
|
(15) ээм... там на фото человек?
|
|||
17
AdaRogers
08.09.11
✎
12:02
|
а зачем объединять 4 одинаковых запроса?
|
|||
18
Wobland
08.09.11
✎
12:05
|
(17) вот это фокус, действительно! ;)
видимо для надёжности. вдруг с первого раза данные не вытянутся |
|||
19
Yoshi
08.09.11
✎
12:24
|
(17)ойей, это переделанный запрос, изначально собирались данные из 4х разных таблиц, потому и 4 запроса, вчера поздно вечером (или уже утром, не помню) решила, что достаточно из одной взять все данные, и вконец запуталась, что делаю (((
|
|||
20
Yoshi
08.09.11
✎
12:25
|
(16) на фото человек ), пока так, позже поменяю, это так, для подтверждения принадлежности к полу )
|
|||
21
Yoshi
08.09.11
✎
12:29
|
дело в том, что по счету, с которого нужно списать материалы, ведется партионный учет. списывается все с конкретного человека, потому думала, что лучше сделать отбор по сотруднику, потом решила, что по счету, сейчас вообще не знаю что думать
|
|||
22
Yoshi
08.09.11
✎
12:36
|
а не могли бы вы мне объяснить как именно работает оператор В ИЕРАРХИИ
|
|||
23
Wobland
08.09.11
✎
12:38
|
Результатом оператора В ИЕРАРХИИ будет ИСТИНА, если значение выражения слева является ссылкой на элемент справочника и входит во множество значений справа или иерархически принадлежит какой-нибудь группе, содержащейся в этом множестве.
грубо говоря, отбирает всё, что в группе |
|||
24
Yoshi
08.09.11
✎
12:41
|
Спасибо ;)
|
|||
25
Yoshi
16.09.11
✎
11:06
|
на случай, если кому пригодится:
в модуле формы документа Процедура КоманднаяПанельЗаполнить(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.СуммаОстаток КАК Сумма, | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Субконто1.Ссылка КАК Номенклатура, | ХозрасчетныйОстатки.КоличествоОстаток КАК Количество, | ХозрасчетныйОстатки.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | , | Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный) | ИЛИ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации), | , | Субконто3 = &Сотрудник) КАК ХозрасчетныйОстатки"; Запрос.УстановитьПараметр("Сотрудник",Сотрудник); Выборка = Запрос.Выполнить().Выбрать(); МатериалыВЭксплуатации.Очистить(); Пока Выборка.Следующий() Цикл // МатериалыВЭксплуатации - Табличная часть на форме, создаем в ней новую строку НовСтр=МатериалыВЭксплуатации.Добавить(); // Заполняем значения новой строки значениями результат запроса: НовСтр.Номенклатура =Выборка.Номенклатура; НовСтр.Количество = Выборка.Количество; НовСтр.Сумма = Выборка.Сумма; НовСтр.Счет = Выборка.Счет; КонецЦикла; КонецПроцедуры в модуле самого документа Процедура ОбработкаПроведения(Отказ, Режим) Движения.Хозрасчетный.Записывать = Истина; Движения.Хозрасчетный.Очистить(); Для Каждого ТекСтрокаМатериалыВЭксплуатации Из МатериалыВЭксплуатации Цикл Движение = Движения.Хозрасчетный.Добавить(); Движение.Период = Дата; Движение.СчетКт = ТекСтрокаМатериалыВЭксплуатации.Счет; БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, 1, Сотрудник); БухгалтерскийУчет.УстановитьСубконто(Движение.СчетКт, Движение.СубконтоКт, 2, ТекСтрокаМатериалыВЭксплуатации.Номенклатура); Движение.КоличествоКт = ТекСтрокаМатериалыВЭксплуатации.Количество; Движение.Сумма = ТекСтрокаМатериалыВЭксплуатации.Сумма; Движение.Организация = Организация; КонецЦикла; КонецПроцедуры Правда не вижу оборотов по ОСВ по счету, пока не поняла почему ), но может и это кому-нибудь поможет ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |