Имя: Пароль:
1C
1С v8
v8: Вопрос про запрос...
0 vfif2601
 
16.04.12
20:12
Необходимо получить данные по остаткам на начало периода по 62 счету и проводки сделанные по реализации( Дт 62.01 Кт 90.01.1), хотелось бы получить данные одним запросом. Возможна и такие ситуации, что есть остатки но нет оборотов и есть обороты, но нет остатков. Каким образом можно получить такие данные в одном запросе?
1 comp2006
 
16.04.12
20:18
Запросом не получается?
2 Живой Ископаемый
 
16.04.12
20:20
http://www.forum.mista.ru/topics_by_tag.php?tag_id=950
давайте тому кто создаст уже 1000-ю ветку с этим оригинальным названием, дадим какой-нибудь приз
3 vfif2601
 
16.04.12
20:22
(2) Не получается. Если бы получалось, не спрашивала бы.
4 comp2006
 
16.04.12
20:22
ВЫБРАТЬ
   ХозрасчетныйОстаткиИОбороты.Счет,
   ХозрасчетныйОстаткиИОбороты.Субконто1,
   ХозрасчетныйОстаткиИОбороты.Субконто2,
   ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток,
   ХозрасчетныйОстаткиИОбороты.СуммаОборотДт,
   ХозрасчетныйОстаткиИОбороты.СуммаОборотКт,
   ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Д1, &Д2, , , Счет = &Сч62, , Организация = &Орг) КАК ХозрасчетныйОстаткиИОбороты
5 catena
 
16.04.12
20:23
(2)Те, у кого не получается, спрашивают про то, что не получается: соединение, параметры виртуальных таблиц и проч. Те, кто даже не пытался - создают ветки "про запрос..."
6 vfif2601
 
16.04.12
20:24
Мне надо использовать именно именно таблицу ОборотыДтКт, так как в таблице ОстаткиИОбороты нельзя наложить условие на корр счет.
7 vfif2601
 
16.04.12
20:24
(5) Не понимаю как указать связи
8 Конфигуратор1с
 
16.04.12
20:25
(7)потому что фото нет
9 comp2006
 
16.04.12
20:27
Пакетный запрос.
В первом пакете получаем остатки по сч. 62
Во втором ОборотыДтКт, где в параметрах нужная корреспонденция
В третьем соединяем две таблицы (не забываем ЕСТЬNULL)
10 catena
 
16.04.12
20:32
(7)Связи с чем?
11 catena
 
16.04.12
20:33
Вообще не так делается: показываешь, что наваял, а тебя тыкают носом в ошибки. С нуля никто писать не будет.
12 comp2006
 
16.04.12
20:34
(11)...наваяла...
13 Конфигуратор1с
 
16.04.12
20:34
(11)Вы чего такая сердитая сегодня?
14 Torquader
 
16.04.12
20:37
Откуда берётся столько лиц женского полу, которые почему-то верят, что могут научиться программировать в 1С.
15 catena
 
16.04.12
20:40
(12)Ой, пардон. Не буду тогда мешать д'артаньянам :)

(13)правда? Свекровь говорит, что это биоритмы перед днем рождения бушуют, я не при чем.

(14)А я и не верю :(
16 Живой Ископаемый
 
16.04.12
20:40
2(12) как тебе родовое окончание поможет в написании запроса?
17 Конфигуратор1с
 
16.04.12
20:40
(14)а количество мужского полу лиц вас не смущает? )))
18 Конфигуратор1с
 
16.04.12
20:41
(15)А когда день рождения?
19 Живой Ископаемый
 
16.04.12
20:41
(17) +100500
20 comp2006
 
16.04.12
20:41
catena, не обижайся! Реплика в (14), думаю, к тебе не относилась!
21 Torquader
 
16.04.12
20:43
(15) Я говорил не о вас, а о том "чуде", которое открыло тему.
(17) Как-то они меньше напрягают, потому как или стараются думать, или вообще идут пить пиво, забыв про 1С.
22 Зеленый Кот
 
16.04.12
20:45
все норм - 1989
23 Конфигуратор1с
 
16.04.12
20:45
(21)шовинист?))) По моим наблюдениям, пол на интеллект никак не влияет. Как пример - v8: Запрос в 1с торговля 11
24 catena
 
16.04.12
20:45
(18)В следующую рабочую, блин, субботу.
(20)Я не обижаюсь. У меня тут функция оракловая не хочет параметр возвращать, так что, видимо, все-таки ко мне.
25 Torquader
 
16.04.12
20:49
(23) ВСЁ убедил! Они все одинаковые!

(24) А чего там с функцией-то не получается ?
26 catena
 
16.04.12
20:55
(25)Да зараза, если через ADODB.Command с коммандтайп = 4, говорит, что функция должна быть декларирована, а если через комманд, но с бегин-енд - не знаю, как ретурн значение...
27 Torquader
 
16.04.12
20:58
(26) Функция, это хранимая процедура - насколько я понимаю.
Тогда или Execute procedure или select [функция] from system;
28 catena
 
16.04.12
21:03
(27)хм... селект фром систем не пробовала еще. Попробую.
А екзекьют по имени функции не хочет. Завтра еще попытаю наших ораклистов на предмет области доступности...
29 Torquader
 
16.04.12
21:05
(28) Если EXECUTE не работает, то есть подозрение, что или функция не до конца определена, или нет прав у данной учётной записи.
30 Конфигуратор1с
 
16.04.12
21:07
(24)это какая рабочая суббота????
31 catena
 
16.04.12
21:13
(29)Если я делаю EXECUTE('declare dd varchar(256); begin dd:=[функция]; end") - отрабатывает без ошибок. А если делаю  CommandText=[функция];CommandType = 4;EXECUTE() - говорит что функция не declare или не адентифай.

(30)28-же!
32 comp2006
 
16.04.12
21:17
vfif2601, попробуй так. У тебя всё получится!

ВЫБРАТЬ
   ХозрасчетныйОстаткиИОбороты.Счет,
   ХозрасчетныйОстаткиИОбороты.Субконто1,
   ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт
ПОМЕСТИТЬ НачальныеОстатки62
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Д1, , , , Счет = &Сч62_1, , Организация = &Орг) КАК ХозрасчетныйОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ХозрасчетныйОборотыДтКт.СчетДт,
   ХозрасчетныйОборотыДтКт.СубконтоДт1,
   ХозрасчетныйОборотыДтКт.СчетКт,
   ХозрасчетныйОборотыДтКт.СуммаОборот
ПОМЕСТИТЬ ОборотДт62_1_Кт90_01_1
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Д1, &Д2, , СчетДт = &Сч62_1, , СчетКт = &Сч90_01_1, , Организация = &Орг) КАК ХозрасчетныйОборотыДтКт
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЕСТЬNULL(НачальныеОстатки62.Субконто1, ОборотДт62_1_Кт90_01_1.СубконтоДт1) КАК Контрагент,
   ЕСТЬNULL(НачальныеОстатки62.СуммаНачальныйОстатокДт, 0) КАК НачальныйОстатокДт62_01,
   ЕСТЬNULL(ОборотДт62_1_Кт90_01_1.СуммаОборот, 0) КАК СуммаОборотДт62_1_Кт90_01_1
ИЗ
   НачальныеОстатки62 КАК НачальныеОстатки62
       ПОЛНОЕ СОЕДИНЕНИЕ ОборотДт62_1_Кт90_01_1 КАК ОборотДт62_1_Кт90_01_1
       ПО НачальныеОстатки62.Субконто1 = ОборотДт62_1_Кт90_01_1.СубконтоДт1
33 Torquader
 
16.04.12
21:22
(31) А SELECT [функция] FROM SYSTEM; что даёт ?
Просто в описании ADO сказано, что
Set r=CommandObject.Execute(StoredProcedureName,Empty,4)
должно выполнять процедуру, возвращающую только одну строку
34 catena
 
16.04.12
21:31
(33)Завтра попробую, отпишусь. На работе мисту закрыли :(
Я просто до этого только процедуры выполняла, меня не очень интересовали аут-параметры :)
35 Torquader
 
16.04.12
21:36
(34) А без них тоже самое.
Но, насколько я знаю, oracle вообще select любит.
P.S. у меня, например, с FireBird не сложилось - ну не захотел он выдавать результаты выполнения не-SELECT процедуры наружу, как я его не мучал - то есть или SELECT или RESULT а оба вместе - шиш - а очень хотелось.
36 catena
 
17.04.12
18:03
Torquader , спасибо за помощь!
from system не прокатило, но натолкнуло меня на from dual.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший