Имя: Пароль:
1C
1С v8
Как вытащить данные из документов
0 pin4er
 
04.04.13
09:41
Всем доброго утра!
пока только учусь и вникаю в программирование, так что сильно не ругайте и громко не кричите=)))

Дело вот какое:
мне требуется выбрать поле с суммой из документов "Поступление на расчетный счет" и "Поступление в кассу", а вывести это это требуется в документе "Заявка" в печатную форму.

т.е. в документах поступления указывается к какой заявке та или иная оплата поступила, ну а в "заявке" ничего такого не фигурирует про оплаты. В итоге должно получиться что в печатную форму я вывожу сумму по "Заявкам", а ниже будут выводиться оплаты, чтобы знать сколько клиент оплатил или переплатил

как лучше и с помощью чего обратиться к полям этих документов?
1 Godofsin
 
04.04.13
09:45
запросом выбери док-ты, где сделкой указана данная заявка, там реквизиты и смотри. Конфа какая?
2 pin4er
 
04.04.13
09:49
(1) а блин, забываю все время писать: 8.2 УП, доработка конфигурации Турагенство  

Хорошо буду пробывать
3 tdm
 
04.04.13
09:50
(1) +1, в 8-ке только запросом
4 tdm
 
04.04.13
09:51
(2) смотрите движения документа - в 1С правильнее использовать именно регистры а даже не сами документы
5 pin4er
 
04.04.13
10:11
(4) с начала то как лучше запросом через документы или с движениями как то делать?
6 pin4er
 
04.04.13
14:00
Что то не совсем до понимаю как сделать....

а если у меня оплату сделали и наРС и вКассу, то запрос надо объединять в один?
7 pin4er
 
08.04.13
10:27
День добрый!
Сделал отчетом, он мне суммы выводит как надо.
а вот как мне сделать без таблицы и вывести сумму единожды в документ на печать в определенное поле

вот код:
   ТаблицаПриход = Новый ТаблицаЗначений;
   ТаблицаПриход.Колонки.Добавить("Содержание");
   ТаблицаПриход.Колонки.Добавить("Сумма");
   
   ТаблицаРасход = ТаблицаПриход.СкопироватьКолонки();
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    навВзаиморасчетыСКонтрагентами.СодержаниеОперации,
                  |    СУММА(навВзаиморасчетыСКонтрагентами.Сумма) КАК Сумма,
                  |    навВзаиморасчетыСКонтрагентами.Регистратор
                  |ИЗ
                  |    РегистрНакопления.навВзаиморасчетыСКонтрагентами КАК навВзаиморасчетыСКонтрагентами
                  |ГДЕ
                  |    навВзаиморасчетыСКонтрагентами.Документ = &Документ
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    навВзаиморасчетыСКонтрагентами.СодержаниеОперации,
                  |    навВзаиморасчетыСКонтрагентами.Регистратор";
   Запрос.УстановитьПараметр("Документ", Отчет.Заявка);
   Результат = Запрос.Выполнить().Выбрать();
   Пока Результат.Следующий() Цикл
       Если ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.ПоступлениеВКассу") Или ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.ПоступлениеНаСчет") Тогда
           НоваяСтрока = ТаблицаПриход.Добавить();
       ИначеЕсли ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.РасходИзКассы") Или ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.РасходСоСчета") Тогда
           НоваяСтрока = ТаблицаРасход.Добавить();
       Иначе
           Продолжить;
       КонецЕсли;
       НоваяСтрока.Содержание = Результат.СодержаниеОперации;
       НоваяСтрока.Сумма = Результат.Сумма;            
   КонецЦикла;
   
   ТабДок.Очистить();
   Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
   ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
   ТабДок.Вывести(ОбластьШапка);
   наибКоличествоСтрок = ?(ТаблицаПриход.Количество()>ТаблицаРасход.Количество(), ТаблицаПриход.Количество(), ТаблицаРасход.Количество());
   ИтогоПриход = 0;
   ИтогоРасход = 0;
   Для Шаг = 0 По наибКоличествоСтрок - 1 Цикл
       ОбластьСтрока = макет.ПолучитьОбласть("Строка");
       ОбластьСтрока.Параметры.Приход = ?(Шаг<ТаблицаПриход.Количество(), ТаблицаПриход[Шаг].Содержание, "");
       ПриходСумма = ?(Шаг<ТаблицаПриход.Количество(), ТаблицаПриход[Шаг].Сумма, "");
       ОбластьСтрока.Параметры.ПриходСумма = ПриходСумма;
       ОбластьСтрока.Параметры.Расход = ?(Шаг<ТаблицаРасход.Количество(), ТаблицаРасход[Шаг].Содержание, "");
       РасходСумма = ?(Шаг<ТаблицаРасход.Количество(), -ТаблицаРасход[Шаг].Сумма, "");
       ОбластьСтрока.Параметры.РасходСумма = РасходСумма;
       ИтогоПриход = ИтогоПриход + ?(ПриходСумма="", 0, ПриходСумма);
       ИтогоРасход = ИтогоРасход + ?(РасходСумма = "", 0, РасходСумма);
       ТабДок.Вывести(ОбластьСтрока);
   КонецЦикла;
8 pin4er
 
08.04.13
11:07
т.е. как сделать чтобы при открытой заявке: выбираем на печать и он делает поиск сумм из документов по текущей открытой заявке.

а то получается в отчете я сам выбираю по какой заявке мне отобразить информацию:
Запрос.УстановитьПараметр("Документ", Отчет.Заявка);
Закон Брукера: Даже маленькая практика стоит большой теории.