Имя: Пароль:
1C
1С v8
Пересчет ОСВ в валюту
,
0 N-S-B
 
24.03.16
23:03
Привет! Необходимо сформировать ОСВ по счету в пересчете на валюту. Но не просто остатки по счету умножить на текущий курс, а брать каждый оборот, умножать его на курс на дату оборота, все это просумировать и уже сумму оборотов выводить как остаток по счету.
В карточке счета я вижу все регистраторы и сумму каждого документа, могу все умножить на курс на дату регистратора и просуммировать.
Но как в ОСВ по счету это сделать? Подскажите, в какую сторону копать?
Спасибо.
1 Записьдампа
 
24.03.16
23:09
(0) Ты понимаешь, как формируется карточка счета и не понимаешь, как формируется оборотно-сальдовая ведомость, или тебе лень?
2 zak555
 
24.03.16
23:09
умножить или разделить ?
3 Записьдампа
 
24.03.16
23:17
(2) это обратные операции, не смущай ТС. Хотя контроль на нулевую кратность нужен, да.
4 RomanYS
 
24.03.16
23:29
(0) ну выбирай обороты по дням, дели на курс.

Только хрень получится полная: для нормальной ОСВ выполняется КонОстаток = НачОстаток+Приход-Расход. В твоей такого не будет. Объясни это заказчику и делать не придётся)
5 John83
 
24.03.16
23:32
если очень хочется, то ищи "остатки на каждый день"
6 ВРедная
 
24.03.16
23:35
(0) Интересно, что ты будешь делать, когда дойдешь до остатков на начало и конец.
7 ВРедная
 
24.03.16
23:36
(4) При похожей задаче мы вводили доп ресурс в регистр бухгалтерии.
8 N-S-B
 
29.03.16
16:10
Начал разбираться с ОСВ по счету, в принципе обороты то действительно можно поделить на курс, конец периода посчитать как сумму начального остатка и оборотов. А вот с начальным остатком как быть? Не могу ничего придумать.
9 N-S-B
 
29.03.16
16:25
Хм, а что, если начальный остаток высчитывать во временной таблице как сумму оборотов с самого начала по начало периода ОСВ?
10 RomanYS
 
29.03.16
16:28
(8) Это называется валютный учет, и написанием отчет он точно не решается. Кроме добавления полей для учета, например как (7), понадобятся некие процедуры/документ для учета курсовых разниц.

(9) Костыли здесь не помогут. Поймешь достаточно быстро, когда валютные остатки станут отрицательными при положительных рублевых.
11 N-S-B
 
31.03.16
12:36
Решил все таки попробовать. Но как-то странно себя СКД ведет, никак не разберусь в чем дело.

Вот ОСВ по счету: https://www.dropbox.com/s/x4jcj97prpowtnf/Скриншот%202016-03-29%2016.03.19.png?dl=0

Я сделал временную таблицу, где хранится курс доллара. Еще ничего не делю, никакие новые поля не добавил, никаких связей не сделал, только добавил таблицу: https://www.dropbox.com/s/kubm96n3m8ifigk/Скриншот%202016-03-29%2016.01.10.png?dl=0

И уже ОСВ становится какой-то кривой: https://www.dropbox.com/s/9r5exv623bvusla/Скриншот%202016-03-29%2016.00.39.png?dl=0

Если я уберу таблицу из средней колонки таблицы, но саму временную таблицу в запросе оставлю, ОСВ снова становится нормальной. В чем дело, где косяк?
12 N-S-B
 
31.03.16
17:04
(11) На результат ОСВ влияет любая таблица добавленная в запрос в СКД, но из которой даже не берем никакие поля. Как так?
13 Джинн
 
31.03.16
17:13
(0) Не взлетит.
14 RomanYS
 
31.03.16
23:55
(12) Всё так. У тебя запрос, где записи виртуальной таблицы регистра соединяется с 100500 записей курсов, каждая с каждой. СКД лишь свернула (просуммировала) результат по указанным группировкам и ресурсам.
15 N-S-B
 
04.04.16
11:32
(14) Так соединений тоже никаких нету.
16 los_hooliganos
 
04.04.16
11:37
Наверное задача посчитать курсовые разницы для рублевого банковского счета?
17 los_hooliganos
 
04.04.16
11:38
Самый быстрый вариант - пересчитывать все на MS SQL хранимой процедурой.
Делать это с помощью 1С не очень приятная задача.
18 N-S-B
 
04.04.16
18:54
(14) Подскажите, пожалуйста, где и каким образом соединяются таблицы, если я просто добавляю в запрос таблицу и никакие поля из нее не вытягиваю, никакие соединения не добавляю.
Я скопировать запрос ОСВ в консоль запросов, естественно от добавления таблицы результат никак не меняется, в СКД же каким-то образом меняется.
Добавил в запрос в СКД пустую таблицу регистра курса валют. Формирую ОСВ - значения верные. Добавляю одну запись в регистр - значения верные. Далее же после каждой добавленной записи значения всех полей в ОСВ увеличиваются непонятным образом. Значение добавленных записей в регистр на результат не влияют.
Подскажите, пожалуйста, куда копать?
19 Джинн
 
04.04.16
18:58
Пытка апельсинами длилась третий час... (с)

Говорю же - не взлетит. Даже если удастся пересчитать - баланс не сойдется. Задача бестолковая с момента постановки.
20 HeKrendel
 
04.04.16
19:02
(19) Баланс же должен сойтись, ведь проводка делает 2 записи, какая фиг разница по какому курсу?
21 HeKrendel
 
04.04.16
19:03
Вернее так, обороты должны сойтись
22 Джинн
 
04.04.16
19:03
(20) "На фиг разница" называется курсовой.
23 PR третий
 
04.04.16
19:06
Что самое интересное, за 22 поста никто не спросил, а нахрена автору запизхивать курсовые разницы в отчет да еще через анальное отверстие o_O
Только что (16) робко предположил и то в (17) тут же какую-то хрень предложил :))
24 HeKrendel
 
04.04.16
19:07
(23) Потому что спросившие за свою карьеру, какую-только хрень не реализовывали, а убеждать ТС за свою личное время я не намерен
25 PR третий
 
04.04.16
19:09
(24) Ну да, зачем писать короткое и правильное "Нахрена?", если можно написать пару — тройку развернутых предложений, как сделать полную куйню :))
26 HeKrendel
 
04.04.16
19:10
(25) Джинн диагноз дал еще в (13)
27 PR третий
 
04.04.16
19:11
(26) Джинн как всегда сказал как в армии, типа вот таблетка, половина от головы, половина от живота, не перепутай.
28 N-S-B
 
04.04.16
19:12
Ок, если баланс и обороты не сойдутся, мне теперь интересно почему так странно СКД себя ведет - (18) ? Каждое поле отчета ОСВ умножается на кол-во записей в таблице, которую я добавляю в запрос.
29 PR третий
 
04.04.16
19:14
(28) В (18) копать в сторону гугления "Левое соединение", потому что ты написал настолько детский вопрос, что даже непонятно, как тебе объяснить, что тебе нужно соединение по условию, а не тупое декартово произведение.
30 N-S-B
 
04.04.16
19:17
(29) Да причем тут левое соединение. Я ничего не соединяю, просто добавил таблицу в запрос, никакие поля из нее не вытягиваю. Через консоль запросов результат не меняется же.
31 PR третий
 
04.04.16
19:35
(30) Слушай, чувак, если ты никаких полей не вытягиваешь, то нахрена ты добавляешь таблицу?
Я тебе еще раз настоятельно советую погуглить или устроиться во франч, если возьмут, там из тебя быстро эту труху выбьют из головы.
32 N-S-B
 
04.04.16
20:32
(31) Я же выше описал. Я создал временную таблицу с курсами, соединяю её по периоду с таблицой оборотов, но получилась какая-то ерунда, даже в тех полях, которые я не трогаю. Начал разбираться и обнаружил, что результат отчета ОСВ меняется даже, если я просто добавляю таблицу и не вытягиваю никакие поля и ни с чем не соединяю её.
33 PR третий
 
04.04.16
20:43
(32) Причем здесь период? Соединять надо не по периоду, а по максисмальному периоду и валюте.
Вытягиваешь ли какие-либо поля, запрос не волнует.
Короче, читай про левое соединение.
34 N-S-B
 
04.04.16
20:49
(33) Ок, возможно я неправильно делал соединение, но проблема не в этом! Даже, если я добавлю таблицу без каких-либо соединений, просто в запросе добавлю таблицу вот так - https://www.dropbox.com/s/kubm96n3m8ifigk/Скриншот%202016-03-29%2016.01.10.png?dl=0
То уже все значения ОСВ меняются, а именно умножаются на кол-во записей в этом самой таблице.
35 PR третий
 
04.04.16
20:53
(34) Рукалицо

Это и есть соединение, блеать.

Иди читай основы.
36 hhhh
 
04.04.16
21:55
(34) если ты просто пишешь две таблицы - это называется полное декартово произведение, это совершенно дикий результат получится, всё умножается на всё, миллион строчек, другими словами грязная бомба.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.