Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 23:52

Как в печатной форме вывести 2 столбца?

Автор sapravka, 25 ноя 2012, 13:53

0 Пользователей и 1 гость просматривают эту тему.

sapravka

Здравствуйте!
Собственно все по порядку:
Имеем Бухгалтерия предприятия, редакция 2.0 (2.0.40.11)
В табличной части счет на оплату, я добавил: Скидки и СуммаСкидок
И это реализовано таким образом, что итоговая сумма автоматически уменьшается на сумму скидок.

Тут все меня устраивает, но вот решил сделать отдельную печатную форму (Счет со скидкой)и тут возник вопрос:
Как в печатной формы реализовать заполнение этих двух столбцов?
А то получается:

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

ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя");

Запрос.Текст =
"ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.СуммаНДС,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
| 1 КАК ID
|ИЗ
| (ВЫБРАТЬ
|  ЗаказПокупателя.Номенклатура КАК Номенклатура,
|  ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
|  ЗаказПокупателя.Цена КАК Цена,
|  СУММА(ЗаказПокупателя.Количество) КАК Количество,
|  СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
|  СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
|  МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
| ИЗ
|  Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя
|
| ГДЕ
|  ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
|  ЗаказПокупателя.Номенклатура,
|  ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
|  ЗаказПокупателя.Цена) КАК ВложенныйЗапрос
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| ЗаказПокупателя.Номенклатура.Код КАК Код,
| ЗаказПокупателя.Номенклатура.Артикул КАК Артикул,
| ЗаказПокупателя.Количество,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
| ЗаказПокупателя.Цена,
| ЗаказПокупателя.Сумма,
| ЗаказПокупателя.СуммаНДС,
| ЗаказПокупателя.НомерСтроки,
| 2
|ИЗ
| Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя
|
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
|УПОРЯДОЧИТЬ ПО
| ID,
| НомерСтроки";
ЗапросТовары = Запрос.Выполнить().Выгрузить();
Макет = ПолучитьМакет("СчетЗаказСкидки");
// Выводим шапку накладной
СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
Если Тип = "СчетСкидка" Тогда
  ОбластьМакета    = Макет.ПолучитьОбласть("ЗаголовокСчета");
  ОбластьМакета.Параметры.Заполнить(Шапка);
  ОбластьМакета.Параметры.ИННПолучателя = СведенияОПолучателе.ИНН;
  ОбластьМакета.Параметры.КПППолучателя = СведенияОПолучателе.КПП;
  Если ТипЗнч(СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда
Банк = ?(НЕ ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов), СтруктурнаяЕдиница.Банк, СтруктурнаяЕдиница.БанкДляРасчетов);
   БИК = Банк.Код;
   КоррСчет   = Банк.КоррСчет;
   ГородБанка = Банк.Город;
   НомерСчета = ВернутьРасчетныйСчет(СтруктурнаяЕдиница);
   ОбластьМакета.Параметры.БИКБанкаПолучателя    = БИК;
   ОбластьМакета.Параметры.БанкПолучателя    = Банк;
   ОбластьМакета.Параметры.БанкПолучателяПредставление   = СокрЛП(Банк) + " " + ГородБанка;
   ОбластьМакета.Параметры.СчетБанкаПолучателя   = КоррСчет;
   ОбластьМакета.Параметры.СчетБанкаПолучателяПредставление = КоррСчет;
   ОбластьМакета.Параметры.СчетПолучателяПредставление   = НомерСчета;
   ОбластьМакета.Параметры.СчетПолучателя    = НомерСчета;
  КонецЕсли;

  Если ПустаяСтрока(СтруктурнаяЕдиница.ТекстКорреспондента) Тогда
   ТекстКорреспондента = СведенияОПолучателе.НаименованиеДляПечатныхФорм;
   Если ЗначениеЗаполнено(СтруктурнаяЕдиница.БанкДляРасчетов) Тогда
ТекстКорреспондента = ТекстКорреспондента + " р/с " + СтруктурнаяЕдиница.НомерСчета
+ " в " + СтруктурнаяЕдиница.Банк + " " + СтруктурнаяЕдиница.Банк.Город;
   КонецЕсли;
  Иначе
   ТекстКорреспондента = СтруктурнаяЕдиница.ТекстКорреспондента;
  КонецЕсли;
  ОбластьМакета.Параметры.ПредставлениеПолучателя = ТекстКорреспондента;

  ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Счет на оплату");

ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ОбластьМакета.Параметры.Заполнить(Шапка);
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(
  СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
ОбластьМакета.Параметры.Заполнить(Шапка);
СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата);
ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(
  СведенияОПокупателе, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
ТабДокумент.Вывести(ОбластьМакета);

ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
  ВыводитьКоды = Истина;
  Колонка = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
  ВыводитьКоды = Истина;
  Колонка = "Код";
Иначе
  ВыводитьКоды = Ложь;
КонецЕсли;
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
  ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
  ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ТабДокумент.Присоединить(ОбластьСуммы);
ОбластьКолонкаТовар = Макет.Область("Товар");

Если Не ВыводитьКоды Тогда
  ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
   Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;
ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
ОбластьКодов  = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
ОбластьСуммы  = Макет.ПолучитьОбласть("Строка|Сумма");
Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
ВсегоБезСкидок = 0;
Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл
  ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
  ТабДокумент.Вывести(ОбластьНомера);

  Если ВыводитьКоды Тогда
   Если Колонка = "Артикул" Тогда
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
   Иначе
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
   КонецЕсли;
   ТабДокумент.Присоединить(ОбластьКодов);
  КонецЕсли;
  ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
  ОбластьДанных.Параметры.Товар    = СокрЛП(ВыборкаСтрокТовары.Товар);
  ТабДокумент.Присоединить(ОбластьДанных);
  ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
  ТабДокумент.Присоединить(ОбластьСуммы);
  Сумма   = Сумма    + ВыборкаСтрокТовары.Сумма;
  СуммаНДС    = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
КонецЦикла;
// Вывести Итого
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ОбластьКодов  = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
ОбластьСуммы  = Макет.ПолучитьОбласть("Итого|Сумма");
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
  ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Присоединить(ОбластьСуммы);
// Вывести ИтогоНДС
ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
ОбластьКодов  = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
  ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
Если СуммаНДС <> 0 Тогда
  ОбластьДанных.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
  ОбластьСуммы.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
Иначе
  ОбластьДанных.Параметры.НДС = "Без налога (НДС)";
  ОбластьСуммы.Параметры.ВсегоНДС = "-";
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);

ТабДокумент.Присоединить(ОбластьСуммы);

// Вывести ИтогоКОплате
ОбластьНомера = Макет.ПолучитьОбласть("ИтогоКОплате|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ИтогоКОплате|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("ИтогоКОплате|Данные");
ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоКОплате|Сумма");
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
  ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
СуммаКОплате = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ОбластьСуммы.Параметры.ИтогоКОплате = ОбщегоНазначения.ФорматСумм(СуммаКОплате);
ТабДокумент.Присоединить(ОбластьСуммы);

// Вывести Сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество()
+ ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
ТабДокумент.Вывести(ОбластьМакета);
// Вывести подписи
Если Тип = "Счет" Тогда

  Если Шапка.Получатель.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
   ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");
 
   Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Руководители, Шапка.Дата, ПодразделениеОтветственныхЛиц);
   Руководитель = Руководители.РуководительПредставление;
   Бухгалтер = Руководители.ГлавныйБухгалтерПредставление;
 
   ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;
   ОбластьМакета.Параметры.ФИОБухгалтера   = Бухгалтер;
 
  Иначе
   ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчетаПредприниматель");
 
   ФЛ = Шапка.Получатель.ИндивидуальныйПредприниматель;
   ДанныеФЛ = РегистрыСведений.ФИОФизЛиц.СрезПоследних(Дата, Новый Структура("ФизЛицо",ФЛ));
   Если ДанныеФЛ.Количество() > 0 Тогда
Предприниматель = СокрЛП(ДанныеФЛ[0].Фамилия) + " " + Лев(СокрЛП(ДанныеФЛ[0].Имя),1) + ". " + Лев(СокрЛП(ДанныеФЛ[0].Отчество),1) + ".";
   Иначе
Предприниматель = "";
   КонецЕсли;
 
   ОбластьМакета.Параметры.ФИОПредпринимателя = Предприниматель;
 
  КонецЕсли;

Иначе
  ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(Шапка);
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции // ПечатьСчетаЗаказа()
//****************************************************************************

Пытаюсь зайти в запрос (заметьте, запрос который сделан в 1с), а там выдается ошибка:

Вот этот запрос:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);

ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя");

Запрос.Текст =
"ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| ВложенныйЗапрос.Количество,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Сумма,
| ВложенныйЗапрос.СуммаНДС,
| ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
| 1 КАК ID
|ИЗ
| (ВЫБРАТЬ
|  ЗаказПокупателя.Номенклатура КАК Номенклатура,
|  ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
|  ЗаказПокупателя.Цена КАК Цена,
|  СУММА(ЗаказПокупателя.Количество) КАК Количество,
|  СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
|  СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
|  МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
| ИЗ
|  Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя
|
| ГДЕ
|  ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
|  ЗаказПокупателя.Номенклатура,
|  ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
|  ЗаказПокупателя.Цена) КАК ВложенныйЗапрос
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
| ЗаказПокупателя.Номенклатура.Код КАК Код,
| ЗаказПокупателя.Номенклатура.Артикул КАК Артикул,
| ЗаказПокупателя.Количество,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
| ЗаказПокупателя.Цена,
| ЗаказПокупателя.Сумма,
| ЗаказПокупателя.СуммаНДС,
| ЗаказПокупателя.НомерСтроки,
| 2
|ИЗ
| Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя
|
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
|УПОРЯДОЧИТЬ ПО
| ID,
| НомерСтроки";
ЗапросТовары = Запрос.Выполнить().Выгрузить();



Подскажите, пожалуйста, как сделать заполнение этих двух  ячеек?
Что бы в печатной форме заполнялась данные ячейки?

mixqn

очевидно, ошибка у вас в 37-ой строке запроса.
Зачем ЧастьЗапросаДляВыбораСодержанияУслуг добавляется в запрос 2 раза? Уберите - должно помочь.

Dethmontt

Я так понимаю в запрос нужно добавить две колонки... что бы открыть конструктором запрос нужно, поставить точку останова на строке: ЗапросТовары = Запрос.Выполнить().Выгрузить();
Нажать Shift+F9 в окне написать Запрос.Текст нажать Enter(или рассчитать) Жмем F2 - копируем текст запроса в консоль, изменяем запрос на как нам нужно! Вставляем добавленные поля в текущий запрос... РАДУЕМСЯ

P.S. Если имена колонок в запросе будут совпадать с именами параметров в макете, то кроме изменения запроса больше ничего делать не придется...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

sapravka

Цитата: Dethmontt от 25 ноя 2012, 22:07Я так понимаю в запрос нужно добавить две колонки... что бы открыть конструктором запрос нужно, поставить точку останова на строке: ЗапросТовары = Запрос.Выполнить().Выгрузить();Нажать Shift+F9 в окне написать Запрос.Текст нажать Enter(или рассчитать) Жмем F2 - копируем текст запроса в консоль, изменяем запрос на как нам нужно! Вставляем добавленные поля в текущий запрос... РАДУЕМСЯP.S. Если имена колонок в запросе будут совпадать с именами параметров в макете, то кроме изменения запроса больше ничего делать не придется...

Вот пробую:

Нажимаю f2 но что то ничего не копируется...
Подскажите пожалуйста, что не так я делаю?

Dethmontt

Встаешь на свойство Запрос.Текст жмешь F2
Открывается окно копируешь текст запроса вставляешь в консоль - правишь!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

sapravka

Цитата: Dethmontt от 26 ноя 2012, 13:06
Встаешь на свойство Запрос.Текст жмешь F2
Открывается окно копируешь текст запроса вставляешь в консоль - правишь!
Вот написал запрос и в цикле выборку:

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


Но при вычислении выражения:


Переберая цикл ставит в самом конце нужные мне результаты...
Соответственно ноль и получает - наверное с первой строчки и берет, а там НОЛЬ!!!
Зачемто 1773 раза перебрала, хотя в табличной части всего 4 строки...
Подскажите пожалуйста - как правильно выбрать, что бы взять исходный результат, который почемуто находится в самом конце при переборе циклом?

Dethmontt

Наверное вам необходимо почитать книжки про запросы (Вы выбираете все документы из системы, а вам нужно в запросе сделать фильтр - например только текущего документа)


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

sapravka

Цитата: Dethmontt от 27 ноя 2012, 23:25
Наверное вам необходимо почитать книжки про запросы (Вы выбираете все документы из системы, а вам нужно в запросе сделать фильтр - например только текущего документа)


"ВЫБРАТЬ
| СчетНаОплатуПокупателюТовары.Скидка,
| СчетНаОплатуПокупателюТовары.СуммаСкидки
|ИЗ
| Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары
|ГДЕ СчетНаОплатуПокупателюТовары.Ссылка = &ТекущийДокумент";


Спасибо!
Через отладчик посмотрел -  ВЫБИРАЕТ, НО
в Макет почему то не подставляется...
Подскажите, пожалуйста, почему?
В Макете прописал параметр:

Но он почему то не выводит при просмотре...
Подскажите пожалуйста, что я забыл?

P.S. Насчет почитать книгу - как Вы считаете - такая подойдет:
Разработка сложных отчетов в "1С:Предприятии 8.2". Система компоновки данных". Издание 2

Dethmontt

Параметр в макете это вот это:

Добавлено: 28 ноя 2012, 00:37


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

Посмотрите для начала видео уроки от Чистова
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

sapravka

Цитата: Dethmontt от 28 ноя 2012, 00:33
Параметр в макете это вот это:

Добавлено: 28 ноя 2012, 00:37


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

Посмотрите для начала видео уроки от Чистова

Обязательно посмотрю и почитаю...
Ну а все таки, можно спросить, почему у меня не выводить в печатную форму?
(я указал в макете параметр Скидка, так же в модуле выбрал данный данный реквизит  табличной части, а вот почему то он все равно не выводится)



Похожие темы (5)

Рейтинг@Mail.ru

Поиск