Имя: Пароль:
1C
1С v8
Получить на дату документ остатка
0 tertva_1C
 
27.09.11
14:33
Всем привет!
Народ а подскажите как запросом получить документ от которго на определенную дату сформировался ДТ или КТ остаток...
1 butterbean
 
27.09.11
14:34
это последний по очереди документ к этому моменту
2 Wobland
 
27.09.11
14:35
ВЫБРАТЬ ПЕРВЫЕ 1 ... УПОРЯДОЧИТЬ ПО Дата Убыв
3 tertva_1C
 
27.09.11
14:36
далеко не факт.. поступило 100р по контрагенту, списали 50 висит Кт остаток сформированный документом поступления
4 DrShad
 
27.09.11
14:37
(3) телепаты в отпуске, так что сорри
пиши нормально что нужно
5 tertva_1C
 
27.09.11
14:37
хотя ... надо попробовать...
6 butterbean
 
27.09.11
14:38
(5) можешь добавить условие на Приход > 0
7 tertva_1C
 
27.09.11
14:38
хорошо например 60 счет суммы могут быть по ДТ и КТ и надо выяснить по каким регистраторам образовалась та или другая задолжность..
8 DrShad
 
27.09.11
14:39
(6) в регистрах бухгалтерии нет Приход
9 DrShad
 
27.09.11
14:40
(7) теперь вопрос у тебя ведутся расчеты по расчетным документам или по договору в целом?
10 tertva_1C
 
27.09.11
14:41
и так и так к сожалению....
11 DrShad
 
27.09.11
14:42
(10) ну и как же ты собираешься получать документ?
12 tertva_1C
 
27.09.11
14:43
(11)по контрагенту
13 DrShad
 
27.09.11
14:44
(12) у тебя выходит минимум два алгоритма
14 unregistered
 
27.09.11
14:45
Текущий остаток может формироваться не одним конкретным документом, а довольно длинной цепочкой последовательных движений как в Дт так и с Кт счета, сделанных самыми различными документами (в том числе Корректировка долга, Операция Бух, Корректировка записей регистров и т.п.).

Сформулируй задачу.
15 DrShad
 
27.09.11
14:45
(11) и наконец-то прочитай правила форума!
16 Ненавижу 1С
 
гуру
27.09.11
14:46
17 tertva_1C
 
27.09.11
14:49
(14) вот мне и надо получить именно такой документ, не какой нибудь конкретного типа а тот который образовывает остаток
18 DrShad
 
27.09.11
14:52
(17) ты не понял, ну к примеру ты получишь бух справку, но она не служит документом расчетов
19 tertva_1C
 
27.09.11
14:54
почему, может, АВИЗО например
20 DrShad
 
27.09.11
15:05
(19) может
21 tertva_1C
 
28.09.11
08:07
В общем решение у меня такое делаем первый запрос    Запрос.Текст = "ВЫБРАТЬ
                  |    ДанныеПоОстаткам.Организация,
                  |    ДанныеПоОстаткам.Счет,
                  |    ДанныеПоОстаткам.Субконто1 КАК Субконто1,
                  |    СУММА(ДанныеПоОстаткам.СуммаКонечныйОстатокДт) КАК СуммаКонечныйОстатокДт,
                  |    СУММА(ДанныеПоОстаткам.СуммаКонечныйОстатокКт) КАК СуммаКонечныйОстатокКт
                  |ИЗ ";  
                      если НЕ ЗначениеЗаполнено(Подразделение) тогда
                      Запрос.Текст = Запрос.Текст + " РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(,&ДатаОстатков,,, Счет = &СчетаКД, , ) КАК ДанныеПоОстаткам "
                  иначе Запрос.Текст = Запрос.текст  + " РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(,&ДатаОстатков,,, Счет = &СчетаКД, , Подразделение = &Подразделение) КАК ДанныеПоОстаткам";
                   КонецЕсли;
                   Запрос.Текст = Запрос.Текст +"                                        
                  |СГРУППИРОВАТЬ ПО
                  |    ДанныеПоОстаткам.Организация,
                  |    ДанныеПоОстаткам.Счет,
                  |    ДанныеПоОстаткам.Субконто1
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Субконто1";
                       
                     Запрос.УстановитьПараметр("СчетаКД", СчетаКД);
                   Запрос.УстановитьПараметр("ДатаОстатков", КонецДня(ДатаОстатков));
                     Запрос.УстановитьПараметр("Подразделение",Подразделение);
                   ТаблицаСДанными = Запрос.Выполнить().Выгрузить();



затем второй
запрос = новый запрос;
      Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                     |    ОстаткиИОбороты.Субконто1 КАК Контрагент,
                     |    ОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйДт,
                     |    ОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйКт,
                     |    ОстаткиИОбороты.Субконто2 КАК Регистратор
                     |ИЗ
                     |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, &ДатаК, , , Счет В (&МассивСчетов), &ВидыСубконто, Организация = &Организация) КАК ОстаткиИОбороты
                     |ГДЕ
                     |    (ОстаткиИОбороты.СуммаКонечныйОстатокДт > 0
                     |            ИЛИ ОстаткиИОбороты.СуммаКонечныйОстатокКт > 0)
                     |    И ОстаткиИОбороты.Субконто1 В(&Контрагенты)
                     |ИТОГИ
                     |    СУММА(СуммаКонечныйДт),
                     |    СУММА(СуммаКонечныйКт)
                     |ПО
                     |    Контрагент
                     |АВТОУПОРЯДОЧИВАНИЕ"  ;
                     
                     
       МассивСчетов = ТаблицаСДанными.ВыгрузитьКолонку("Счет");
       МассивСчетов = ОбщегоНазначения.УдалитьПовторяющиесяЭлементыМассива(МассивСчетов);
       МассивКонтрагентов = ТаблицаСДанными.ВыгрузитьКолонку("Субконто1");
       
       ВидыСубконто = Новый Массив();
       ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);
       ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ДокументыРасчетовСКонтрагентами);
       
       Запрос.Параметры.Вставить("ВидыСубконто",    ВидыСубконто);
   
       Запрос.Параметры.Вставить("МассивСчетов",    МассивСчетов);
       Запрос.Параметры.Вставить("Организация",    ЭтаФорма.ЭлементыФормы.Организация.Значение);
       Запрос.Параметры.Вставить("Контрагенты",    МассивКонтрагентов);
           
                         
       Запрос.УстановитьПараметр("ДатаК",КонецДня(ДатаОстатков));
       
       ТаблицаСДанными = Запрос.Выполнить().Выгрузить();
и дальше выборкой с обходом ...
Основная теорема систематики: Новые системы плодят новые проблемы.