Имя: Пароль:
1C
 
Как получить регистратора регистра накопления?
,
0 pro3ri
 
28.08.15
13:18
ДОбрый день!
есть тз:
Создайте документ «Акт сверки взаиморасчетов». В шапке указывается контрагент и
период, за который нужно сформировать акт (дата начала и дата окончания). Табличная часть при
нажатии на кнопку «Заполнить» должна содержать данные по изменению взаиморасчетов с
данным контрагентом за указанный период.
В табличной части должны быть следующие реквизиты:
•  Документ: оплата или отгрузка, либо «Операция»;
•  Сумма увеличения долга: для покупателя – сумма отгрузки, для поставщика – сумма
оплаты;
•  Сумма уменьшения долга: для покупателя – сумма оплаты, для поставщика – сумма
отгрузки.

создал &НаСервере
Процедура ЗаполнитьНаСервере()
    
    Если Не ЗначениеЗаполнено(Объект.Контрагент) Тогда
        
        ОбъектДок = РеквизитФормыВЗначение("Объект",Тип("ДокументОбъект.АктСверкиВзаиморасчетов"));
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Нужно указать Контрагента!";
        Сообщение.Поле = "Контрагент";
        Сообщение.УстановитьДанные(ОбъектДок);
        Сообщение.Сообщить();    
        ЗначениеВРеквизитФормы(ОбъектДок,"Объект");
        
        Возврат;
        
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ВзаиморасчетыОстаткиИОбороты.Контрагент,
        |    ВзаиморасчетыОстаткиИОбороты.СуммаПриход,
        |    ВзаиморасчетыОстаткиИОбороты.СуммаРасход
        |ИЗ
        |    РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Контрагент = &Контрагент) КАК ВзаиморасчетыОстаткиИОбороты";
    
        
    Если Не ЗначениеЗаполнено(Объект.ДатаНачала) Тогда
        ДатаНачала = '00010101';
    Иначе
        ДатаНачала = Объект.ДатаНачала;
    КонецЕсли;
    
    Если Не ЗначениеЗаполнено(Объект.ДатаОкончания) Тогда
        ДатаОкончания = ТекущаяДата();
    Иначе
        ДатаОкончания = КонецДня(Объект.ДатаОкончания);
    КонецЕсли;
    
    Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
    Запрос.УстановитьПараметр("НачалоПериода", ДатаНачала);
    Запрос.УстановитьПараметр("КонецПериода", ДатаОкончания);

    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
    
КонецПроцедуры

запрос выдает
https://s.mail.ru/5fUnymokeowy/img-2015-08-28-15-23-35.png
А КАК вытащить нужные регистраторы приходов и расходов?
1 Ненавижу 1С
 
гуру
28.08.15
13:20
Периодичность Регистратор сделай
2 pro3ri
 
28.08.15
13:52
(1) благодарю, запрос такой:
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ВзаиморасчетыОстаткиИОбороты.Контрагент,
        |    ВзаиморасчетыОстаткиИОбороты.Регистратор,
        |    ВзаиморасчетыОстаткиИОбороты.СуммаОборот
        |ИЗ
        |    РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Контрагент = &Контрагент) КАК ВзаиморасчетыОстаткиИОбороты";
3 GROOVY
 
28.08.15
13:54
(2) А зачем тебе таблица ОстаткиИОбороты когда ты только оборот вытаскиваешь?
4 Альбатрос
 
28.08.15
13:54
(2) Зачем тебе остатки и обороты, если ты только обороты выбираешь?
5 GROOVY
 
28.08.15
13:54
И ты, кстати, вкурсе, что тебе эта СуммаОборот вернет?
6 GROOVY
 
28.08.15
13:55
А вот думаю, хорошо, что ТЧ не токарем работает, давно бы уже без пальце ходил.
7 ДенисЧ
 
28.08.15
13:56
(6) А может, наоборот - плохо?
8 Масянька
 
28.08.15
13:57
(6) Лучше газонокосильщиком :))))))))
9 ДенисЧ
 
28.08.15
13:59
(8) нет. Лучше всего - испытателем тарзанок.
10 Масянька
 
28.08.15
14:01
(9) Не-не... Что было с газокосильщиком? Он ушел в виртуальный мир... Красиво и без жертв. :)))))))
11 ДенисЧ
 
28.08.15
14:02
(10) тут тоже красиво будет. И всего с одной, но сакральной, жертвой!
12 pro3ri
 
28.08.15
14:02
(4) так более оптимально,     Запрос.Текст =
        "ВЫБРАТЬ
        |    ВзаиморасчетыОбороты.СуммаОборот КАК СуммаОборот,
        |    ВзаиморасчетыОбороты.Регистратор КАК Регистратор
        |ИЗ
        |    РегистрНакопления.Взаиморасчеты.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Контрагент = &Контрагент) КАК ВзаиморасчетыОбороты";
    

хотя и так все быстро работает
13 Апош
 
28.08.15
14:04
(10) (11) такое впечатление, что я что-то интересное пропустил. что за газонокосильщик?
14 ДенисЧ
 
28.08.15
14:13
15 Апош
 
28.08.15
14:15
> ставит над умственно неполноценным косильщиком лужаек Джоубом эксперименты с использованием высоких компьютерных технологий в комбинации с наркотиками
это про мисту что ли?
16 Масянька
 
28.08.15
14:16
(15) Да при чем тут миста. Про 1С :)))))))))
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан