Имя: Пароль:
1C
1С v8
Выбор остатков валют по всем счетам в активе и пассиве
0 romaku
 
18.07.11
17:51
Как выбрать остатки по всем валютным счетам до и после проводки?
в одном варианте я передаю в запрос значение регистратора, номера строки и валюты
ВЫБРАТЬ
   ОсновнойОстаткиИОбороты.Валюта КАК Валюта,
   ОсновнойОстаткиИОбороты.Счет.Вид КАК СчетВид,
   СУММА(ОсновнойОстаткиИОбороты.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
   СУММА(ОсновнойОстаткиИОбороты.Сумма2НачальныйОстаток) КАК Сумма2НачальныйОстаток,
   СУММА(ОсновнойОстаткиИОбороты.Сумма3НачальныйОстаток) КАК Сумма3НачальныйОстаток,
   СУММА(ОсновнойОстаткиИОбороты.ВалютнаяСуммаНачальныйОстаток) КАК ВалютнаяСуммаНачальныйОстаток
ИЗ
   РегистрБухгалтерии.Основной.ОстаткиИОбороты(
           ,
           ,
           Запись,
           ДвиженияИГраницыПериода,
           Счет.Валютный = ИСТИНА,
           ,
           Организация = &Организация
               И Валюта = &Валюта) КАК ОсновнойОстаткиИОбороты
ГДЕ
   ОсновнойОстаткиИОбороты.Регистратор = &Регистратор
   И ОсновнойОстаткиИОбороты.НомерСтроки = &НомерСтроки

СГРУППИРОВАТЬ ПО
   ОсновнойОстаткиИОбороты.Валюта,
   ОсновнойОстаткиИОбороты.Счет.Вид

УПОРЯДОЧИТЬ ПО
   СчетВид,
   Валюта

Во втором случае, который я осуществляю для сверки, передаю границы периода, в котором была эта единственная проводка:
ВЫБРАТЬ
   ОсновнойОстаткиИОбороты.Валюта КАК Валюта,
   ОсновнойОстаткиИОбороты.Счет.Вид КАК СчетВид,
   СУММА(ОсновнойОстаткиИОбороты.ВалютнаяСуммаНачальныйОстаток) КАК ВалютнаяСуммаНачальныйОстаток,
   СУММА(ОсновнойОстаткиИОбороты.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
   СУММА(ОсновнойОстаткиИОбороты.Сумма2НачальныйОстаток) КАК Сумма2НачальныйОстаток,
   СУММА(ОсновнойОстаткиИОбороты.Сумма3НачальныйОстаток) КАК Сумма3НачальныйОстаток
ИЗ
   РегистрБухгалтерии.Основной.ОстаткиИОбороты(&НачПериода, &КонПериода, Период, ДвиженияИГраницыПериода, Счет.Валютный = ИСТИНА, , Организация = &Организация) КАК ОсновнойОстаткиИОбороты

СГРУППИРОВАТЬ ПО
   ОсновнойОстаткиИОбороты.Валюта,
   ОсновнойОстаткиИОбороты.Счет.Вид

УПОРЯДОЧИТЬ ПО
   СчетВид,
   Валюта

И получаю разные результаты. Где у меня ошибка? Во втором случае проводка в единственном числе в заданном периоде. Во втором случае получаю значение и по активу, и по пассиву, а в первом только по той стороне баланса, где счет
1 romaku
 
19.07.11
12:29
Задача в том, что перед каждой проводкой нужно отслеживать валютный баланс. валютный баланс это остатки валют по всем валютным счетам. Актив отдельно, пассив отдельно.
2 romaku
 
19.07.11
14:23
Вообще, можно ли передавая в запрос значение регистратора и номера строки получить из виртуальной таблицы "ОстаткиИОбороты" остатки по всем счетам перед проводкой и после проводки?
3 hhhh
 
19.07.11
14:43
(2) нельзя
4 romaku
 
19.07.11
15:12
А что можно сделать? Нужно получить остатки валют и средний курс по ним по всем валютным счетам перед проводкой
5 hhhh
 
19.07.11
15:22
(4) ну разные регистраторы сделай. Новая проводка - новый регистратор.
6 romaku
 
19.07.11
15:25
не понял в чем смысл если в одной операции (регистраторе) одна проводка.
и так сделать нельзя вроде. операция (регистратор), в ней проводки (номера строк).
7 unregistered
 
19.07.11
15:40
Ни чего вообще не понял?

Зачем в запросе таблицы ОстаткиИОбороты, если нужны только остатки?


>> Как выбрать остатки по всем валютным счетам до и после проводки?

До проводки - запросом к остаткам с указанием параметра Период = МоментВремени регистратора.

После проводки - запросом к остаткам после принудительной записи движений Движения.Записать() с указанием параметра Период = Новый Граница(МоментВремени(), ВидГраницы.Включая).
8 romaku
 
19.07.11
15:49
(7) уже понятней. но если регистратор - операция, в ней проводки, и нужно выяснить остатки до и после конкретной проводки. Как получить МоментВремени  проводки?
9 unregistered
 
19.07.11
15:57
(8) Тебе нужен МоментВремени регистратора. Не имеет значения кто является регистратором - обычный документ или ОперацияБух.

Вопрос в том, где ты эти запросы вообще пишешь?

Я думал речь идет об обработке проведения. У Операции проведение запрещено и обработки проведения нет.
10 romaku
 
19.07.11
16:04
нетиповая конфигурация. Смысл такой. Операция. в ней проводки, созданные разными или одним и тем же периодом.

Запрос с таблице Движения.
Я выбираю движения (проводки) по валютным счетам
выбрал движение (проводку).
Мне нужно выбрать остатки по всем валютным счетам перед проводкой, посмотреть на средний курс по валюте по всем счетам, посмотреть на курс проводки и вынести вердикт.

То есть, у меня есть регистратор, номер строки. вот на основании знаний и регистраторе и номере строки нужно выбрать остатки перед проводкой.
11 unregistered
 
19.07.11
16:27
(10) Во-первых, что такое Двиежния? такой таблицы нет. Если конечно ваш регистр не назван "Движения".

>> на основании знаний и регистраторе и номере строки нужно выбрать остатки перед проводкой.

так и в чем проблема? после записи набора получай остатки на МоментВремени каждой записи - это будут остатки перед проводкой, а запрос к остаткам на Граница(МоментВремени, ВидГраницы.Включая) - остатки на момент после проводки.
12 romaku
 
19.07.11
16:34
(11) Имел в виду Виртуальную Таблицу Обороты.

ВЫБРАТЬ
   ОсновнойОбороты.Период КАК Период,
   ОсновнойОбороты.Регистратор,
   ОсновнойОбороты.НомерСтроки,
   ОсновнойОбороты.Счет,
   ОсновнойОбороты.Субконто1,
   ОсновнойОбороты.Субконто2,
   ОсновнойОбороты.Субконто3,
   ОсновнойОбороты.КорСчет,
   ОсновнойОбороты.КорСубконто1,
   ОсновнойОбороты.КорСубконто2,
   ОсновнойОбороты.КорСубконто3,
   ОсновнойОбороты.Валюта,
   ОсновнойОбороты.ВалютаКор,
   ОсновнойОбороты.ВалютнаяСуммаОборот,
   ОсновнойОбороты.СуммаОборот,
   ОсновнойОбороты.ВидКапитала
ИЗ
   РегистрБухгалтерии.Основной.Обороты(&НачПериода, &КонПериода, Запись, Счет.Валютный = ИСТИНА, , Организация = &Организация, , ) КАК ОсновнойОбороты
ГДЕ
   ОсновнойОбороты.ВалютнаяСуммаОборот <> 0

УПОРЯДОЧИТЬ ПО
   Период

Затем:

Таблица = Запрос.Выполнить().Выгрузить();

Затем перебираю все обороты (проводки). Вот не пойму как получить МоментВремени для каждой записи в Таблице. Чтобы на этот момент времени выбрать остатки.

Подскажите, пожалуйста. Уже второй день сижу, и только, кажется, сдвинулось с места.
13 romaku
 
19.07.11
20:33
Как получить момент времени у конкретной проводки (оборота в регистрах)?
14 romaku
 
21.07.11
15:32
вопрос остался. как выбрать МоментВремени у проводки.
И если проводки сделаны в одно и тоже время, моменты времени у них будут разные?