8.х Формулы в печатной форме

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Sonya, 7 сен 2009.

  1. TopicStarter Overlay
    Sonya
    Offline

    Sonya Опытный в 1С

    Регистрация:
    16 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, в 1с 7.7 можно было сделать в выражение <начисление-выплачено> для колонки сальдо. Как задать формулу чтобы выводилась разница в таблице. В макете написала не выводит в запросе до и после ругается. Что делать?

    Вложения:

  2. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!

    Вы писали

    Вариантов много, ниже представлена ссылка для скачивания примера.

    Пожалуйста
  3. TopicStarter Overlay
    Sonya
    Offline

    Sonya Опытный в 1С

    Регистрация:
    16 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Баллы:
    26
    Я бы хотела просто задать формулу, без использования внешних обработок.
    Код:
    Процедура ДействияФормыНачислениеСформировать(Кнопка)
    //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Начисление)
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
    Начисление(ТабДок);
    
    //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
    КонецПроцедуры
    
    Процедура Начисление(ТабДок) Экспорт
    //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Начисление)
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Макет = ОтчетОбъект.ПолучитьМакет("Начисление");
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.Физлицо КАК Физлицо,
    |	ПРЕДСТАВЛЕНИЕ(ВзаиморасчетыСРаботникамиОрганизацийОбороты.Физлицо),
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.Подразделение КАК Подразделение,
    |	ПРЕДСТАВЛЕНИЕ(ВзаиморасчетыСРаботникамиОрганизацийОбороты.Подразделение),
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.ВидУслуг,
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.Месяц,
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.НомерДокумента,
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход,
    |	РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
    |	ПРЕДСТАВЛЕНИЕ(РаботникиОрганизацийСрезПоследних.Должность),
    |	РаботникиОрганизацийСрезПоследних.Прописанных КАК Прописанных,
    |	РаботникиОрганизацийСрезПоследних.Адрес КАК Адрес
    |ИЗ
    |	РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Обороты КАК ВзаиморасчетыСРаботникамиОрганизацийОбороты
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
    |		ПО ВзаиморасчетыСРаботникамиОрганизацийОбороты.Физлицо = РаботникиОрганизацийСрезПоследних.Физлицо
    |ИТОГИ
    |	СУММА(СуммаВзаиморасчетовПриход),
    |	СУММА(СуммаВзаиморасчетовРасход)
    |ПО
    |	Физлицо,
    |	Адрес,
    |	Должность,
    |	Подразделение,
    |	Прописанных";
    
    Результат = Запрос.Выполнить();
    //Проблема с выводом Сальдо
    //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    //Сальдо = СуммаВзаиморасчетовПриход-СуммаВзаиморасчетовРасход;
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьФизлицо = Макет.ПолучитьОбласть("Физлицо");
    ОбластьАдрес = Макет.ПолучитьОбласть("Адрес");
    ОбластьДолжность = Макет.ПолучитьОбласть("Должность");
    ОбластьПодразделение = Макет.ПолучитьОбласть("Подразделение");
    ОбластьПрописанных = Макет.ПолучитьОбласть("Прописанных");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    ВыборкаФизлицо = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаФизлицо.Следующий() Цикл
    КонецЦикла;
    //
    ...
    //
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    
    //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
    КонецПроцедуры
    

    Вложения:

  4. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Если надо рассчитать сальдо, то лучше тогда рассчитывайте в запросе, т.к. запрос выполняется на сервере.

    Код:
    ВЫБРАТЬ
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.Физлицо КАК Физлицо,
    |	ПРЕДСТАВЛЕНИЕ(ВзаиморасчетыСРаботникамиОрганизацийОбороты.Физлицо),
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.Подразделение КАК Подразделение,
    |	ПРЕДСТАВЛЕНИЕ(ВзаиморасчетыСРаботникамиОрганизацийОбороты.Подразделение),
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.ВидУслуг,
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.Месяц,
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.НомерДокумента,
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
    |	ВзаиморасчетыСРаботникамиОрганизацийОбороты.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход,
    |	РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
    |	ПРЕДСТАВЛЕНИЕ(РаботникиОрганизацийСрезПоследних.Должность),
    |	РаботникиОрганизацийСрезПоследних.Прописанных КАК Прописанных,
    |	РаботникиОрганизацийСрезПоследних.Адрес КАК Адрес,
    |	(ВзаиморасчетыСРаботникамиОрганизацийОбороты.СуммаВзаиморасчетовПриход - ВзаиморасчетыСРаботникамиОрганизацийОбороты.СуммаВзаиморасчетовРасход) КАК Сальдо
    |ИЗ
    |	РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Обороты КАК ВзаиморасчетыСРаботникамиОрганизацийОбороты
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
    |		ПО ВзаиморасчетыСРаботникамиОрганизацийОбороты.Физлицо = РаботникиОрганизацийСрезПоследних.Физлицо
    |ИТОГИ
    |	СУММА(СуммаВзаиморасчетовПриход),
    |	СУММА(СуммаВзаиморасчетовРасход),
    |	СУММА(Сальдо)
    |ПО
    |	Физлицо,
    |	Адрес,
    |	Должность,
    |	Подразделение,
    |	Прописанных
    
Похожие темы
  1. saman
    Ответов:
    2
    Просмотров:
    720
Загрузка...

Поделиться этой страницей