helpf.pro
Регистрация

Сформировать отчет с вычисляемым полем

demonzvl
24.01.2011 18:04Прочитано: 3955
Я новичок. Сильно не критиковать.
У меня в отчете поля формируются на сервере, а затем заливаются в макет появилась необходимость расчитать поле, где это нужно делать???
Yandex
Возможно, вас также заинтересует
Реклама на портале
alina
24.01.2011 18:44Ответ № 1
Используйте схему компоновки данных.
В схеме компоновки данных на закладке вычисляемые поля.
Или прямо в списке выборки полей, если нужно.
demonzvl
24.01.2011 21:05Ответ № 2
А если без СКД, тогда где процедура обсчета должна быть описана?
E_Migachev
24.01.2011 22:30Ответ № 3
(2) demonzvl, смотря каким кодом ты выводишь данные! Покажи код
demonzvl
24.01.2011 22:48Ответ № 4
Код 1C v 8.2 УП
 &НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()

Макет = Отчеты.ОстаткиМеталла2.ПолучитьМакет("Макет");
ОблШапка = Макет.ПолучитьОбласть("Шапка");
ОблЭлемент = Макет.ПолучитьОбласть("Элемент");

ТабДок.Очистить();

ТабДок.Вывести(ОблШапка);

Запрос = Новый Запрос;
Запрос.Текст = " ВЫБРАТЬ
|Металл,
|КоличествоОстаток как ОстатокНаСкладе,
|Деталь,
|КоличествоОстаток1 как Зарезервированно
|из
|
|
|(ВЫБРАТЬ
|*
|ИЗ
| РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки
|
| ЛЕВОЕ СОЕДИНЕНИЕ
|
| РегистрНакопления.РезервМеталла.Остатки КАК РезервМеталлаОстатки
| ПО
| ОстаткиНаСкладахОстатки.Металл = РезервМеталлаОстатки.Металл) как ВложенныйЗапрос
| Где Склад = &Склад
|
| ";

Запрос.УстановитьПараметр("Склад",Справочники.Склады.НайтиПоНаименованию("Cклад металла и заготовки"));

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

ОблЭлемент.Параметры.Заполнить(Выборка);

ТабДок.Вывести(ОблЭлемент);
КонецЦикла;

КонецПроцедуры
E_Migachev
24.01.2011 23:29Ответ № 5
вот в этом цикле и добавляй поля
Код 1C v 8.х
 Пока Выборка.Следующий() Цикл 
ОблЭлемент.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОблЭлемент);
КонецЦикла;
demonzvl
24.01.2011 23:47Ответ № 6
Как в Выборке поля просуммировать и вывести в отчет?(поле в которое хочу писать сумму в макете существует)
demonzvl
24.01.2011 23:48Ответ № 7
title
E_Migachev
25.01.2011 10:02Ответ № 8
Например так:
Код 1C v 8.х
  Пока Выборка.Следующий() Цикл 
// Заполним данными из выборки
ОблЭлемент.Параметры.Заполнить(Выборка);
// Вычисляемое поле - Получим разницу
ОблЭлемент.Параметры.РазницаОР = Выборка.ОстатокНаСкладе - Выборка.Зарезервированно;
//Выводим в ТабДок
ТабДок.Вывести(ОблЭлемент);
КонецЦикла;

В макете в строке вывода добавь РазницаОР типа Параметр
demonzvl
25.01.2011 12:38Ответ № 9
Преобразование Значение к типу число не может быть выполнено. Тип параметр указал.
demonzvl
25.01.2011 12:41Ответ № 10
Может он спотыкается на первой строчке, где в рознице нет числового значения.???
E_Migachev
25.01.2011 13:21Ответ № 11
(9) demonzvl, покажи свой код - в котором вылетает ошибка
demonzvl
25.01.2011 13:28Ответ № 12
Скачивать файлы может только зарегистрированный пользователь!
demonzvl
25.01.2011 13:28Ответ № 13
title
demonzvl
25.01.2011 13:29Ответ № 14
{Отчет.ОстаткиМеталла2.Форма.ФормаОтчета.Форма(57)}: Преобразование значения к типу Число не может быть выполнено
ОблЭлемент.Параметры.РазницаОР = Выборка.ОстатокНаСкладе - Выборка.Зарезервированно;
demonzvl
25.01.2011 13:36Ответ № 15
Через запрос значение ячеек null может из за этого?
E_Migachev
25.01.2011 14:21Ответ № 16
(15) demonzvl, да именно из-за этого, нужно в запросе
Код 1C v 8.х
 |КоличествоОстаток как ОстатокНаСкладе   

описать как условие типа:
Код 1C v 8.х
 ВЫБОР 
КОГДА КоличествоОстаток ЕСТЬ NULL ТОГДА 0
ИНАЧЕ КоличествоОстаток
КОНЕЦ как ОстатокНаСкладе

тогда будет работать
demonzvl
25.01.2011 15:15Ответ № 17
Выдавал синтаксическую ошибку постоянно, на это код сделал вот так объясните пожалуйста что описано в вашем коде, но смысл отсеить при NULL мне понятен. Сделал вот так :

Если Выборка.Зарезервированно <> NuLL Тогда
ОблЭлемент.Параметры.РазницаОР = Выборка.ОстатокНаСкладе - Выборка.Зарезервированно;
КонецЕсли;
ТабДок.Вывести(ОблЭлемент);

Это правильно?
demonzvl
25.01.2011 15:18Ответ № 18
РазницаОР не считается если Зарезервированно NULL

Как можно в ячеки добавить кг и шт что бы выводились?
E_Migachev
25.01.2011 15:24Ответ № 19
(17) demonzvl, так можно конечно, но все же правильнее сразу в запросе исправить
(18) demonzvl, так же добавляй еще параметр ЕдиницаИзмерения и пиши код типа:
Код 1C v 8.х
 ОблЭлемент.Параметры.ЕдиницаИзмерения = Выборка.Деталь.ЕдиницаИзмерения;   
demonzvl
25.01.2011 15:38Ответ № 20
Запрос = Новый Запрос;
Запрос.Текст = " ВЫБРАТЬ
|Металл,
|КоличествоОстаток как ОстатокНаСкладе,
|Деталь,
|КоличествоОстаток1 как Зарезервированно
|из
|
|
|(ВЫБРАТЬ
|*
|ИЗ
| РегистрНакопления.ОстаткиНаСкладах.Остатки КАК ОстаткиНаСкладахОстатки
|
| ЛЕВОЕ СОЕДИНЕНИЕ
|
| РегистрНакопления.РезервМеталла.Остатки КАК РезервМеталлаОстатки
| ПО
| ОстаткиНаСкладахОстатки.Металл = РезервМеталлаОстатки.Металл) как ВложенныйЗапрос
| Где Склад = &Склад
|
| ";


В этом запросе? Ели в нем напиши плиз как он должен Выглядеть.

ОблЭлемент.Параметры.ЕдиницаИзмерения = Выборка.Деталь.ЕдиницаИзмерения;
Что нужно сделать что бы этот код срабатывал?
Я должен где то описать эти переменные и в ячейке будет склеивать или как?
E_Migachev
25.01.2011 15:40Ответ № 21
(20) demonzvl, единицу ты от куда хочешь брать?
в запросе у тебя Металл и Деталь в них есть этот реквизит?
demonzvl
25.01.2011 15:46Ответ № 22
Скачивать файлы может только зарегистрированный пользователь!

И вот еще не задачка.
demonzvl
25.01.2011 15:46Ответ № 23
title
demonzvl
25.01.2011 15:48Ответ № 24
Труба должна быть как бы одна а масса с учетом резерва должна быть 80 как бы получше сделать. Повторюсь я новечек в 1с.
demonzvl
25.01.2011 15:49Ответ № 25
единицу ты от куда хочешь брать?
в запросе у тебя Металл и Деталь в них есть этот реквизит?

нет реквизитов там нет.
demonzvl
25.01.2011 15:52Ответ № 26
Справочник Металл и там просто труба это не реквизит справочника, реквизитов у справочника металл вообще нет. Не правильно наверное сделал?
E_Migachev
25.01.2011 16:26Ответ № 27
(26) demonzvl, а где же тогда есть единицы?
(24) demonzvl, тогда тебе нужно добавить в запрос Группировку по материалу, но придется удалить деталь *11
demonzvl
25.01.2011 16:42Ответ № 28
А в форме нельзя сделать выпадающий список ?
demonzvl
25.01.2011 16:44Ответ № 29
а с единицами есть тонкость на определенном этапе кг переходят в шт по спецификации и я решил идти по простому пути у меня просто цифры и с ними делаю что хочу
E_Migachev
25.01.2011 16:55Ответ № 30
(29) demonzvl, тогда пиши в цикле вывод того что тебе нужно
demonzvl
27.01.2011 17:08Ответ № 31
Вопрос закрыт!
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.