Имя: Пароль:
1C
1С v8
Вывод результатов запроса в макет
0 Татьяна211287
 
30.05.12
11:26
Добрый день!

Есть вот такой запрос
Запрос.УстановитьПараметр("СсылкаНаЗаказ",ССылкаНаОбъект);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ЗаказПокупателя.АдресДоставки,
   |    ЗаказПокупателя.СуммаДокумента,
   |    ЗаказПокупателя.Ответственный.Наименование,
   |    ВложенныйЗапрос.СуммаАванса КАК СуммаАванса
   |ИЗ
   |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход) КАК СуммаАванса,
   |            ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Сделка
   |        ИЗ
   |            РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, , Регистратор, Сделка = &СсылкаНаЗаказ) КАК ВзаиморасчетыСКонтрагентамиОбороты
   |        ГДЕ
   |            ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
   |        
   |        СГРУППИРОВАТЬ ПО
   |            ВзаиморасчетыСКонтрагентамиОбороты.Сделка) КАК ВложенныйЗапрос
   |        ПО ЗаказПокупателя.Ссылка = ВложенныйЗапрос.Сделка";
      // Запрос.УстановитьПараметр("ТекущийДокумент",СсылкаНаОбъект);
       Результат = Запрос.Выполнить();
       Выборка = Запрос.Выполнить().Выбрать();
       //Выборка = Выборка.СуммаАванса;
       //Пока Выборка.Следующий() Цикл
       Пока Выборка.Следующий()Цикл    
       Если Выборка.СуммаАванса = СсылкаНаОбъект.СуммаДокумента
           ТОГДА
           СтрокаСуммаАванса = "        3.2. «Заказчик» обязуется оплатить Исполнителю в порядке предварительной оплаты всю сумму, обозначенную в п. 3.1. Договора в день его подписания. Оплата производится путём внесения денежных средств представителю Исполнителя.";
       Иначе
           СтрокаСуммаАванса = "        3.2. «Заказчик» обязуется оплатить Исполнителю в порядке предварительной оплаты сумму (аванс) в размере" + " " + Выборка.СуммаАванса + "руб. в день подписания настоящего Договора. Оставшаяся часть денежных средств за оказание услуг, выполнение работ оплачивается Заказчиком в течение 30 дней с момента подписания настоящего Договора. Оплата производится путём внесения денежных средств представителю Исполнителя.";
       КонецЕсли;
       КонецЦикла;

Суть в том, что если сумма аванса (Приходный кассовый ордер) = сумме документа "Заказ покупателя", то выводить в макет пункт в первой интерпретации, иначе в другой, если ПКО отсутствует, то выводить вторую интерпретацию с незаполненным значением аванса.
Нужна помощь!!!!
1 asady
 
30.05.12
11:29
(0) в чём проблема?
2 Татьяна211287
 
30.05.12
11:31
выводит всегда вторую интерпретацию и сумму аванса не заполняет вообще
3 asady
 
30.05.12
11:35
выведи сюда из регистра по взаморасчетам строки которые сделал конкретный ПКО
4 Татьяна211287
 
30.05.12
11:36
а как это сделать?
5 asady
 
30.05.12
11:38
(4) открой ПКО - перейти - движения по регистру взаиморасчеты - правая кнопка мыши (ПКМ) - вывести список - на полученном списке ПКМ - копировать - сюда вставить
6 Татьяна211287
 
30.05.12
11:43
Период    Регистратор    Номер строки    Активность    Договор контрагента    Сделка    Организация    Контрагент    Сумма взаиморасчетов    Сумма упр. учета
   20.08.2007 12:00:00    Приходный кассовый ордер 00000123 от 20.08.2007 12:00:00    1    Да    Основной договор        НЗФ    Ремеслова Надежда Валерьевна    72 246,95    72 246,95
7 asady
 
30.05.12
11:44
(6) так поле "сделка" у тебя в движениях не заполняется ....
8 Татьяна211287
 
30.05.12
11:48
я посмотрела сейчас по другому документу, но итог тот же хоть и сделка заполнена
   Период    Регистратор    Номер строки    Активность    Договор контрагента    Сделка    Организация    Контрагент    Сумма взаиморасчетов    Сумма упр. учета
   17.05.2012 16:17:14    Приходный кассовый ордер O0000000306 от 17.05.2012 16:17:14    1    Да    Основной договор    Заказ покупателя 1652-КЕМ от 17.05.2012 16:15:49    ККК    Иовлева Ирина Георгиевна    9 100,00    9 100,00
9 asady
 
30.05.12
11:51
(8) а вид движения какой в этой записи приход или расход (плюсик или минус)
10 Татьяна211287
 
30.05.12
11:52
расход - минус
11 asady
 
30.05.12
11:55
(10) у тебя запрос из (0) выводит все заказы что-ли?
12 Татьяна211287
 
30.05.12
11:57
нет, мне нужен только текущий заказ
13 asady
 
30.05.12
12:02
"ВЫБРАТЬ
   |    ВзаиморасчетыСКонтрагентамиОбороты.СуммаАванса КАК СуммаАванса, ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Сделка ПОМЕСТИТЬ ВТ_Аванс
   |ИЗ
 |            РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, , регистратор, Сделка = &СсылкаНаЗаказ) КАК ВзаиморасчетыСКонтрагентамиОбороты
   |        ГДЕ
   |            ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер    |    
   |        СГРУППИРОВАТЬ ПО
   |            ВзаиморасчетыСКонтрагентамиОбороты.Сделка;
   |ВЫБРАТЬ
   |    ЗаказПокупателя.АдресДоставки,
   |    ЗаказПокупателя.СуммаДокумента,
   |    ЗаказПокупателя.Ответственный.Наименование,
   |    ВТ_Аванс.СуммаАванса КАК СуммаАванса
   |ИЗ
   |    ВТ_Аванс КАК ВТ_Аванс
   |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя ПО ЗаказПокупателя.Ссылка = ВТ_Аванс.Сделка";
14 asady
 
30.05.12
12:03
(13)+
Вместо
ВзаиморасчетыСКонтрагентамиОбороты.СуммаАванса КАК СуммаАванса
надо
СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход) КАК СуммаАванса,
15 Татьяна211287
 
30.05.12
12:18
Спасибо большое!Все работает!Гений просто!!!
16 Татьяна211287
 
30.05.12
12:20
А можно еще вопрос-необходимо в макет вывести номенклатуру из заказа покупатеся (это ТЧ документа)
У меня вот такая конструкция:
Запрос.Текст =
"ВЫБРАТЬ
|    ЗаказПокупателяТовары.Номенклатура.Наименование КАК Номенклатура,
|    ЗаказПокупателяТовары.Количество,
|    ЗаказПокупателяТовары.ЕдиницаИзмерения
|ИЗ
|    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары" ;
//|ОБЪЕДИНИТЬ ВСЕ
Товары = Запрос.Выполнить();
Выборка  = Товары.Выбрать();
 Пока Выборка.Следующий () Цикл
    ОбластьМакета =  Макет.ПолучитьОбласть("ВидыРабот");
    ОбластьМакета.Параметры.Номенклатура = Выборка.Номенклатура;
    ОбластьМакета.Параметры.Заполнить(Выборка);
        Таб.Вывести(ОбластьМакета);  
    КонецЦикла;
Но она не работает, просто ничего не выводит
17 asady
 
30.05.12
12:23
(15) просто ты правильно подошла к делу - без лишних напоминаний разместила фотку в личке.
(16) у тебя в макет должны попасть товары по всем заказам что-ли?
18 Татьяна211287
 
30.05.12
12:24
нет, тоже по текущему.Я делаю печатную форму договора для заказа покупателя
19 asady
 
30.05.12
12:35
(18) тогда
"ВЫБРАТЬ
|    ЗаказПокупателяТовары.Номенклатура.Наименование КАК Номенклатура,
|    ЗаказПокупателяТовары.Количество,
|    ЗаказПокупателяТовары.ЕдиницаИзмерения
|ИЗ
|    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ГДЕ ЗаказПокупателяТовары.ссылка = &СсылкаНаОбъект";
и установить параметр запроса