Как вывести 0 в отчете 1с

Обновлено: 04.07.2024

если там не ноль, то что? и как это что-то поменять на ноль?

"если там не ноль, то что?" - это у тебя надо спросить что там

поле - реквизит ТЧ документа типа число - слева в соединении - ничего другого там быть не может кроме числа

Запрос положи в консоль запросов и проверь, что у тебя там. Скорее всего NULL.

держи: <?xml version="1.0" encoding="UTF-8"?> <DataCompositionSchema xmlns="; xmlns:dcscom="; xmlns:dcscor="; xmlns:dcsset="; xmlns:v8="; xmlns:v8ui="; xmlns:xs="; xmlns:xsi=";

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

еще раз - запрос - левое соединение двух таблиц "Количество" в левой таблице оно никак не может быть NULL, согласитесь ВЫБРАТЬ РАЗРЕШЕННЫЕ . Состав.СуммаРуб КАК СуммаРуб ИЗ Документ.ПрогнозПродаж.Состав КАК Состав ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. ГДЕ Состав.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

возможно пустые значения появляются уже внутри таблицы, хотя как это возможно - не догоняю

блин я тебе схему СКД дал. сохрани в ХМЛ, загрузи в СКД и посмотри

. миста, а может и не она по своему интерпритирует xml - простой копипастой не выйдет схему сюда скопировать

ну так - это отсутсвующие значения в колонках периода (который типа с дополнением) в них только условным оформлением?

а без условного оформления никак? ибо у пользователей уже настроены варианты отчетов - для того что бы добавить туда еще строку . даже не представляю как такое провернуть

т.е. в итоге вопрос такой - как выводить "0,00" для ресурсов таблицы если на пересечении колонки и строки этого ресурса нет например таблица остатков по датам и подразделениям в подразделении на 01.02 остатков нет - как туда "0,00" вывести? а без условного оформления?

уже три раз написали, мог бы и попробовать естьNull(Состав.СуммаРуб,0) КАК СуммаРуб

+ в ЛЕВОЕ СОЕДИНЕНИЕ ЛЕВОЕ СОЕДИНЕНИЕ ЛЕВОЕ СОЕДИНЕНИЕ

пробовал уже суть не в этом - пустые значения получаются на пересечении строк и колонок см

О чем эта статья

В статье рассмотрен пример доработки типового отчета «Расчетный листок» в конфигурации «Зарплату и Управление Персоналом 3.0». На данном примере показываются общие шаги разработчика, в случае если он слабо знаком с конкретной реализацией конкретного типового отчета на базе СКД.

Применимость

В материалах статьи в качестве примера используется конфигурация, «Зарплата и Управление Персоналом», редакции 3 3.0.25.122. Но от этого примеры доработки, продемонстрированные в видео, не стали устаревшими, т.к. акцент сделал именно на логике рассуждений разработчика перед которым поставлена подобного рода задача. Смело смотрите видео, это must have!


Что конкретно мы будем делать

Очень простая задача :)

А параллельно мы разберем и приемы работы с СКД:

Итак, поехали! 21 минута видео :)

Видео 1: Как за 10 минут понять логику формирования типового отчета

В этом уроке приступаем к решению задачи по модификации Расчетного листка в ЗУП 3.0.

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

Видео 2: Как с помощью 2 строк кода изменить заполнение отчета

В итоге задача решается с минимальными изменениями:

  • Новая строка в макете
  • Левое соединение в запросе
  • Две строки в программном коде.

Эта тема детально раскрыта в курсе:

Не откладывайте свое обучение!

Комментарии / обсуждение (65):

Добрый день! Вопрос по УТ 11. В типовых отчётах добавляются доп. реквизиты. Вопрос: как их исключить из отчетов?
Подробнее.
Существует, примерно, 100 видов номенклатуры, к каждому из которых привязан свой набор доп. реквизитов от 5 до 10).
При изменении варианта отчета, где используется номенклатура, при раскрытии её, вываливается список всех доп. реквизитов. Жуткий тормоз. Можно ли сделать так, чтобы при отборе или добавлении поля, не выводились эти доп. реквизиты?

Характеристики

В УТ 11 не требуется заполнять закладку Характеристики в тексте запроса набора данных.
Дело в том, что в этой конфигурации настроены характеристики на уровне объектов метаданных. Например, можно в конфигураторе обратиться к справочнику Номенклатура, в контекстном меню выбрать пункт Характеристики:

Здесь указано, откуда система будет получать перечень характеристик и их значения.
СКД учитывает эту настройку, поэтому дополнительно прописывать характеристики в запросе не нужно.

По поводу переноса в обычне реквизиты. Дело в том, что у каждого вида номенклатуры свои доп. реквизиты и они не пересекаются. Это сколько же их будет?!

Можно на копии базы сделать тестовый пример, проверить производительность и все остальные аспекты, принять решение, стоит ли выполнять такие действия на рабочей базе.

>> Также из видео Вы узнаете, для чего в запросе может использоваться конструкция “Выбрать Первые 0”
А я так и не понял для чего используется такая конструкция?
Ведь на выходе такой запрос будет возвращать пустую таблицу с колонками.
А как тогда выбираются данные для этой таблицы?

Да, конечно, не изменится. Но можно выделить 2 способа использования именно такой конструкции:
1. Она обеспечивает формирование пустого результата запроса с набором колонок нужного типа. Если использовать просто ВЫБРАТЬ, то в результате будут данные (одна строка с пустыми значениями).
2. Это может быть удобным маркером, признаком, что именно этот запрос нужно подменить. Потому что в обычном запросе для получения данных из базы такая конструкция точно не будет применяться.

Пожалуйста. Обращайтесь:)
И приходите к нам на курс по СКД. В Мастер-группе отвечаем на Ваши вопросы по СКД.

РезультатЗапроса = Запрос.ВыполнитьПакет();
Выборка = РезультатЗапроса[0].Выбрать();

ОбластьИнформацияСтудента.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьИнформацияСтудента, Выборка.Уровень());

ТабДок.Вывести(ОбластьРезультат);
ТабДок.Вывести(ОбластьРезультатыСдачиШапка);
//Выборка = Выборка.РезультатыСдачи.Выбрать();

//Каждому студенту свои предметы
Выборка2.Следующий();

ОбластьРезультатыСдачи.Параметры.Заполнить(Выборка2);
ТабДок.Вывести(ОбластьРезультатыСдачи, Выборка2.Уровень());

Читайте также: