Синтаксическая ошибка сгруппировать

Синтаксическая ошибка «СГРУППИРОВАТЬ» ☑ 0

GreenDay1986

30.08.11

14:08

Синтаксическая ошибка «СГРУППИРОВАТЬ»

<<?>>СГРУППИРОВАТЬ ПО Склады.Номенклатура,

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

Вот текст запроса «ВЫБРАТЬ

   |Склады.Номенклатура.Родитель КАК Родитель,

   |1 КАК  Поле1,

   |Склады.Номенклатура.Код КАК Код,

   |Склады.Номенклатура.Артикул КАК Артикул,

   |Склады.Номенклатура.ссылка КАК Наименование,

   |Склады.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Коэффициент,

   |Склады.КоличествоОстаток КАК Остаток,

   |ВЫРАЗИТЬ(Цен.Цена — (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2)) КАК Цена

   |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаСреза)КАК Склады

   |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза,ТипЦен = &Цена) КАК Цен

   |ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка

   |»;

   Если ЗначениеЗаполнено(Родитель) = Ложь Тогда

   Иначе Запрос.Текст = Запрос.Текст + » ГДЕ Склады.Номенклатура.Родитель = &Ном

   |СГРУППИРОВАТЬ ПО Склады.Номенклатура,

   |Склады.Номенклатура.Родитель,

   |Склады.КоличествоОстаток,

   |ВЫРАЗИТЬ(Цен.Цена — (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2))

   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ

   |»;

1

butterbean

30.08.11

14:13

хз почему ругается, но нафига группировать если нет ни одной агрегатной функции

2

GreenDay1986

30.08.11

14:20

Пишу выгрузку прайса, группировки нужны для иерархии номенклатурных групп типа

Родитель 1

— наименование 1,

— наименование 2,

……..

-наименование n

Родитель 2

— Наименование1 и т.д….

3

butterbean

30.08.11

14:25

(2) они не для этого, для этого у тебя ИТОГИ есть

4

Ёпрст

30.08.11

14:25

(0) в group by должны быть перечислено всё то же самое, что и в select листе (за исключением функций)

у тебя — и половины нет.

5

hhhh

30.08.11

14:28

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

6

Rovan

30.08.11

14:28

а зачем так делать ?

|ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка

разве не работает ?

|ПО Склады.Номенклатура = Цен.Номенклатура

7

GreenDay1986

30.08.11

14:44

Ога, итогами и обощелся, для 1 номенклатурной группы включил ростое упорядочивание с итогами

Запрос = Новый Запрос;

   Запрос.Текст = «ВЫБРАТЬ

   |Склады.Номенклатура.Родитель КАК Родитель,

   |1 КАК  Поле1,

   |Склады.Номенклатура.Код КАК Код,

   |Склады.Номенклатура.Артикул КАК Артикул,

   |Склады.Номенклатура.ссылка КАК Наименование,

   |Склады.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Коэффициент,

   |Склады.КоличествоОстаток КАК Остаток,

   |ВЫРАЗИТЬ(Цен.Цена — (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2)) КАК Цена

   |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаСреза)КАК Склады

   |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза,ТипЦен = &Цена) КАК Цен

   |ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка

   |»;

   
   Если ЗначениеЗаполнено(Родитель) = Ложь Тогда

   Запрос.Текст = Запрос.Текст + » СГРУППИРОВАТЬ ПО Склады.Номенклатура,

   |Склады.Номенклатура.Родитель,

   |Склады.КоличествоОстаток,

   |ВЫРАЗИТЬ(Цен.Цена — (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2))

   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ

   |»;

   Иначе Запрос.Текст = Запрос.Текст + «ГДЕ Склады.Номенклатура.Родитель = &Ном

   |УПОРЯДОЧИТЬ ПО Склады.Номенклатура.Ссылка

   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ

   |»;

   КонецЕсли;

Насчет упорядочивать не согласен что все нужно прописывать, для незаполненного родителя все работает и группируется, при заполненном нет

8

GreenDay1986

30.08.11

14:53

Извиняюсь. Все работает, сам балбес

«ВЫБРАТЬ

   |Склады.Номенклатура.Родитель КАК Родитель,

   |1 КАК  Поле1,

   |Склады.Номенклатура.Код КАК Код,

   |Склады.Номенклатура.Артикул КАК Артикул,

   |Склады.Номенклатура.ссылка КАК Наименование,

   |Склады.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Коэффициент,

   |Склады.КоличествоОстаток КАК Остаток,

   |ВЫРАЗИТЬ(Цен.Цена — (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2)) КАК Цена

   |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаСреза)КАК Склады

   |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза,ТипЦен = &Цена) КАК Цен

   |ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка

   |»;

   
   Если ЗначениеЗаполнено(Родитель) = Ложь Тогда

   Запрос.Текст = Запрос.Текст + «СГРУППИРОВАТЬ ПО Склады.Номенклатура,

   |Склады.Номенклатура.Родитель,

   |Склады.КоличествоОстаток,

   |ВЫРАЗИТЬ(Цен.Цена — (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2))

   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ

   |»;

Иначе Запрос.Текст = Запрос.Текст + «ГДЕ Склады.Номенклатура.Родитель = &Ном

   |СГРУППИРОВАТЬ ПО Склады.Номенклатура,

   |Склады.Номенклатура.Родитель,

   |Склады.КоличествоОстаток,

   |ВЫРАЗИТЬ(Цен.Цена — (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2))

   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ

   |»;

   КонецЕсли;

ошибка группировки, как сгруппировать?

Автор riff666, 02 авг 2016, 11:13

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

Всем добра. Делаю выборку из Регистра Бухгалтерии. Мне необходимы СчетДт , СчетКт и Сумма. Далее надо сгруппировать по счетам и посчитать сумму. Делаю запрос и получаю ошибку.

Цитировать{Отчет._123.Форма.ФормаОтчета.Форма(56)}: Ошибка при вызове метода контекста (Выполнить)
   Выборка = Запрос.Выполнить().Выгрузить();
по причине:
{(11, 1)}: Синтаксическая ошибка «СГРУППИРОВАТЬ»
<<?>>СГРУППИРОВАТЬ ПО

"ВЫБРАТЬ
|Хозрасчетный.СчетДт,
|Хозрасчетный.СчетКт,
|Хозрасчетный.Сумма,
|СУММА(Хозрасчетный.Сумма)
|ИЗ
|РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|УПОРЯДОЧИТЬ ПО                         
|СчетДт,
|СчетКт
|СГРУППИРОВАТЬ ПО
| Хозрасчетный.СчетКт";


Синтаксическая ошибка, он же пишет. Откройте, почитайте, что там дальше в ошибке.
Секция Упорядочить должна быть после Сгруппировать

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь…

Мысль — это оргазм мозга. Кто способен его испытать — получают истинное наслаждение, остальным приходится имитировать


Цитата: Klyacksa от 02 авг 2016, 11:22
Синтаксическая ошибка, он же пишет. Откройте, почитайте, что там дальше в ошибке.
Секция Упорядочить должна быть после Сгруппировать

Пробовал и так делать. Тогда ошибка меняется на

Цитировать
{Отчет._123.Форма.ФормаОтчета.Форма(56)}: Ошибка при вызове метода контекста (Выполнить)
   Выборка = Запрос.Выполнить().Выгрузить();
по причине:
{(2, 1)}: Поле не входит в группу «Хозрасчетный.СчетДт»
<<?>>Хозрасчетный.СчетДт,


И опять же, система вам подсказывает
Поле не входит в группу «Хозрасчетный.СчетДт»


"ВЫБРАТЬ
|Хозрасчетный.СчетДт,
|Хозрасчетный.СчетКт,
|СУММА(Хозрасчетный.Сумма)
|ИЗ
|РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|СГРУППИРОВАТЬ ПО
|Хозрасчетный.СчетДт,
| Хозрасчетный.СчетКт
|УПОРЯДОЧИТЬ ПО                         
|СчетДт,
|СчетКт

может так нужно?
и почему бы не использовать виртуальные таблицы и не ограничиться периодом??

Ничего не знаю, но иногда могу произнести праведную чушь)


Все, что не входит в группировки должно попасть в «Суммируемые поля».
Вы дали группировку по СчетКт. А по счетуДт кто будет делать? Папа Карло?
Кроме того 2 ресурса сумма — нафига?
Откройте через конструктор запросов, а не руками пишите. Не получается у вас пока руками.


Цитата: SGIRG от 02 авг 2016, 11:41и почему бы не использовать виртуальные таблицы и не ограничиться периодом??

Пока не особо владею всеми тонкостями. Буду вникать может что и будет лучше получаться.

Цитата: Kironten от 02 авг 2016, 11:43Все, что не входит в группировки должно попасть в «Суммируемые поля».
Вы дали группировку по СчетКт. А по счетуДт кто будет делать? Папа Карло?
Кроме того 2 ресурса сумма — нафига?
Откройте через конструктор запросов, а не руками пишите. Не получается у вас пока руками.

Убрал одну сумму оставил |СУММА(Хозрасчетный.Сумма), добавил вторую группировку.
Теперь выглядит как то так.
«ВЫБРАТЬ
|Хозрасчетный.СчетДт,
|Хозрасчетный.СчетКт,
|СУММА(Хозрасчетный.Сумма)
|ИЗ
|РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|СГРУППИРОВАТЬ ПО
|Хозрасчетный.СчетДт,
|Хозрасчетный.СчетКт
|УПОРЯДОЧИТЬ ПО                         
|СчетДт,
|СчетКт»;
Такой запрос работает как мне необходимо.


Пользуйтесь конструктором запроса


<<?>>СГРУППИРОВАТЬ ПО Склады.Номенклатура,    Иначе Запрос.Текст = Запрос.Текст + » ГДЕ Склады.Номенклатура.Родитель = &Ном

хз почему ругается, но нафига группировать если нет ни одной агрегатной функции

Пишу выгрузку прайса, группировки нужны для иерархии номенклатурных групп типа …….. — Наименование1 и т.д….

они не для этого, для этого у тебя ИТОГИ есть

в group by должны быть перечислено всё то же самое, что и в select листе (за исключением функций) у тебя — и половины нет.

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

а зачем так делать ? |ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка разве не работает ? |ПО Склады.Номенклатура = Цен.Номенклатура

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

Извиняюсь. Все работает, сам балбес «ВЫБРАТЬ    Запрос.Текст = Запрос.Текст + «СГРУППИРОВАТЬ ПО Склады.Номенклатура,    |Склады.Номенклатура.Родитель, Иначе Запрос.Текст = Запрос.Текст + «ГДЕ Склады.Номенклатура.Родитель = &Ном

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

I got this error when i was executing this query on PostgreSQL:

SQLSTATE[42803]: Grouping error: 7 ERROR:  column "posts.title" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT DISTINCT posts.id, posts.* FROM "posts" GROUP BY "pos..

and this is my query:

SELECT DISTINCT posts.id, posts.* 
FROM "posts" 
GROUP BY "posts"."id" 
ORDER BY "posts"."id" DESC 
LIMIT 20 OFFSET 0

although it did worked when I was executing it with mysql, so how can i fix this?

Clodoaldo Neto's user avatar

asked Apr 15, 2013 at 10:21

user2277033's user avatar

3

The problem is, that in PostgreSQL you need to add all the columns you want to have in your select to your group by.

so your statement should be like

SELECT * FROM table GROUP BY column1, column2...

answered Apr 15, 2013 at 10:23

ArchiFloyd's user avatar

ArchiFloydArchiFloyd

1,27413 silver badges20 bronze badges

9

Try this.

SELECT DISTINCT * FROM 
(SELECT ROW_NUMBER() OVER(PARTITION BY  "posts"."id" ORDER BY   "posts"."id") No, posts.*
 FROM "posts"  ) AS T1 WHERE T1.NO = 1
 ORDER BY "id" DESC LIMIT 20 OFFSET 0

answered Apr 15, 2013 at 10:27

Harshil's user avatar

HarshilHarshil

4032 silver badges7 bronze badges

0

Синтаксическая ошибка в запросе

Я

  

pnamik

01.03.15 — 10:40

Добрый день

1С 8.0.18.2. самописная конфа.

При сформировании отчета валовая прибыль выдает ошибку:

{Форма.Форма(107)}: Ошибка при вызове метода контекста (Выполнить): {(29, 8)}: Синтаксическая ошибка «КАК»

КОНЕЦ <<?>>КАК Рентабельность

        РезультатЗапроса = Запрос.Выполнить();

Не понимаю, как исправить. Помогите, пожалуйста

Часть текста запроса:

        Запрос = Новый Запрос(«ВЫБРАТЬ

                              |    ДвиженияПоПартиям.Период,

                              |    ДвиженияПоПартиям.Регистратор,

                              |    ДвиженияПоПартиям.КодОперации,

                              |    ДвиженияПоПартиям.Номенклатура КАК Номенклатура,

                              |    ДвиженияПоПартиям.Склад КАК Склад,

                              |    ДвиженияПоПартиям.Партия КАК Партия,

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | -1*0 ИНАЧЕ 1 КОНЕЦ * ДвиженияПоПартиям.Количество КАК Количество,

                              | ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА -Чеки.СуммаВсего*0 ИНАЧЕ

                              |    ДвиженияПоПартиям.СуммаПрод КОНЕЦ  КАК Выручка,

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | -1 ИНАЧЕ 0 КОНЕЦ * ДвиженияПоПартиям.Количество КАК КоличествоВозврат,

                              | ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА -Чеки.СуммаВсего ИНАЧЕ

                              |    0 КОНЕЦ  КАК ВыручкаВозврат,

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | -1 ИНАЧЕ 1 КОНЕЦ *    ДвиженияПоПартиям.Сумма КАК Себестоимость,

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              |    (Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1 ИНАЧЕ ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма КОНЕЦ  КАК ВаловаяПрибыль,

                              |    ВЫБОР

                              |        КОГДА ЕСТЬNULL(ДвиженияПоПартиям.Сумма, 0) = 0

                              |            ТОГДА 0

                              |        ИНАЧЕ

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | (Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1 ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) КОНЕЦ / ДвиженияПоПартиям.Сумма * 100

                              |    КОНЕЦ КАК Наценка,

                              |     ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ  ТОГДА

                              | (Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1 ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) КОНЕЦ / ДвиженияПоПартиям.СуммаПрод * 100

                              |    КОНЕЦ КАК Рентабельность

                              |ИЗ

                              |    РегистрНакопления.ДвиженияПоПартиям КАК ДвиженияПоПартиям

                              | ЛЕВОЕ СОЕДИНЕНИЕ Документ.КассовыйЧек.Покупки КАК Чеки

                              | ПО Чеки.Ссылка = ДвиженияПоПартиям.Регистратор

                              | И Чеки.НомерСтроки = ДвиженияПоПартиям.НомерСтроки

                              |ГДЕ

                              |    ДвиженияПоПартиям.Период МЕЖДУ &НачалоПериода И &КонецПериода

                              |    И ДвиженияПоПартиям.Регистратор ССЫЛКА Документ.КассовыйЧек» +

                              ?(МассивНоменклатуры.Количество() > 0, » И ДвиженияПоПартиям.Номенклатура В ИЕРАРХИИ(&МассивНоменклатуры)», «») +

                              ?(СкладЗаполнен = Истина, » И ДвиженияПоПартиям.Склад В ИЕРАРХИИ(&Склад)», «») +

                              ?(ПартияЗаполнен = Истина, » И ДвиженияПоПартиям.Партия В ИЕРАРХИИ(&Партия)», «») + »

                              |ИТОГИ

                              |    СУММА(КоличествоВозврат),

                              |    СУММА(ВыручкаВозврат),

                              |    СУММА(Количество),

                              |    СУММА(Выручка),

                              |    СУММА(Себестоимость),

                              |    СУММА(ВаловаяПрибыль),

                              |    СУММА(Наценка),

                              |    СУММА(Рентабельность)

                              |ПО

                              |    ОБЩИЕ,

                              |    Номенклатура ИЕРАРХИЯ»);

        Запрос.УстановитьПараметр(«КВ», Перечисления.КодыОпераций.ВозвратОтПокупателя);

        Запрос.УстановитьПараметр(«НачалоПериода», НачалоДня(НачалоПериода));

        Запрос.УстановитьПараметр(«КонецПериода», КонецДня(КонецПериода));

        Запрос.УстановитьПараметр(«МассивНоменклатуры», МассивНоменклатуры);

        Запрос.УстановитьПараметр(«Склад», Склад);

        Запрос.УстановитьПараметр(«Партия», Партия);

        

        РезультатЗапроса = Запрос.Выполнить();

        Выборка = РезультатЗапроса.Выбрать();

        ОбработкаПрерыванияПользователя();

        
        Макет = ПолучитьМакет(«МакетВариант1»);

  

pnamik

1 — 01.03.15 — 10:41

Запрос = Новый Запрос(«ВЫБРАТЬ

                              |    ДвиженияПоПартиям.Период,

                              |    ДвиженияПоПартиям.Регистратор,

                              |    ДвиженияПоПартиям.КодОперации,

                              |    ДвиженияПоПартиям.Номенклатура КАК Номенклатура,

                              |    ДвиженияПоПартиям.Склад КАК Склад,

                              |    ДвиженияПоПартиям.Партия КАК Партия,

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | -1*0 ИНАЧЕ 1 КОНЕЦ * ДвиженияПоПартиям.Количество КАК Количество,

                              | ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА -Чеки.СуммаВсего*0 ИНАЧЕ

                              |    ДвиженияПоПартиям.СуммаПрод КОНЕЦ  КАК Выручка,

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | -1 ИНАЧЕ 0 КОНЕЦ * ДвиженияПоПартиям.Количество КАК КоличествоВозврат,

                              | ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА -Чеки.СуммаВсего ИНАЧЕ

                              |    0 КОНЕЦ  КАК ВыручкаВозврат,

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | -1 ИНАЧЕ 1 КОНЕЦ *    ДвиженияПоПартиям.Сумма КАК Себестоимость,

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              |    (Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1 ИНАЧЕ ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма КОНЕЦ  КАК ВаловаяПрибыль,

                              |    ВЫБОР

                              |        КОГДА ЕСТЬNULL(ДвиженияПоПартиям.Сумма, 0) = 0

                              |            ТОГДА 0

                              |        ИНАЧЕ

                              |    ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | (Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1 ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) КОНЕЦ / ДвиженияПоПартиям.Сумма * 100

                              |    КОНЕЦ КАК Наценка,

                              |     ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ  ТОГДА

                              | (Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1 ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) КОНЕЦ / ДвиженияПоПартиям.СуммаПрод * 100

                              |    КОНЕЦ КАК Рентабельность

                              |ИЗ

                              |    РегистрНакопления.ДвиженияПоПартиям КАК ДвиженияПоПартиям

                              | ЛЕВОЕ СОЕДИНЕНИЕ Документ.КассовыйЧек.Покупки КАК Чеки

                              | ПО Чеки.Ссылка = ДвиженияПоПартиям.Регистратор

                              | И Чеки.НомерСтроки = ДвиженияПоПартиям.НомерСтроки

                              |ГДЕ

                              |    ДвиженияПоПартиям.Период МЕЖДУ &НачалоПериода И &КонецПериода

                              |    И ДвиженияПоПартиям.Регистратор ССЫЛКА Документ.КассовыйЧек» +

                              ?(МассивНоменклатуры.Количество() > 0, » И ДвиженияПоПартиям.Номенклатура В ИЕРАРХИИ(&МассивНоменклатуры)», «») +

                              ?(СкладЗаполнен = Истина, » И ДвиженияПоПартиям.Склад В ИЕРАРХИИ(&Склад)», «») +

                              ?(ПартияЗаполнен = Истина, » И ДвиженияПоПартиям.Партия В ИЕРАРХИИ(&Партия)», «») + »

                              |ИТОГИ

                              |    СУММА(КоличествоВозврат),

                              |    СУММА(ВыручкаВозврат),

                              |    СУММА(Количество),

                              |    СУММА(Выручка),

                              |    СУММА(Себестоимость),

                              |    СУММА(ВаловаяПрибыль),

                              |    СУММА(Наценка),

                              |    СУММА(Рентабельность)

                              |ПО

                              |    ОБЩИЕ,

                              |    Номенклатура ИЕРАРХИЯ»);

        Запрос.УстановитьПараметр(«КВ», Перечисления.КодыОпераций.ВозвратОтПокупателя);

        Запрос.УстановитьПараметр(«НачалоПериода», НачалоДня(НачалоПериода));

        Запрос.УстановитьПараметр(«КонецПериода», КонецДня(КонецПериода));

        Запрос.УстановитьПараметр(«МассивНоменклатуры», МассивНоменклатуры);

        Запрос.УстановитьПараметр(«Склад», Склад);

        Запрос.УстановитьПараметр(«Партия», Партия);

        

        РезультатЗапроса = Запрос.Выполнить();

        Выборка = РезультатЗапроса.Выбрать();

        ОбработкаПрерыванияПользователя();

        
        Макет = ПолучитьМакет(«МакетВариант1»);

  

ДенисЧ

2 — 01.03.15 — 10:46

(Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1

тут ошибка

  

Записьдампа

3 — 01.03.15 — 10:49

КОНЕЦ разделить на Сумму и умножить на 100 КОНЦОВ

=)

  

hhhh

4 — 01.03.15 — 10:55

два раза КОНЕЦ впендюрил, элементарно же.

  

pnamik

5 — 01.03.15 — 11:15

в общем, так и не получилось. изначально было в отчете наценка в виде

….

ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

                              | (Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1 ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) КОНЕЦ / ДвиженияПоПартиям.Сумма * 100

                              |    КОНЕЦ КАК Наценка,

по аналогии хотел добавить в текст запроса рентабельность (в макет добавил)

ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ  ТОГДА

                              | (Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма)*-1 ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) КОНЕЦ / ДвиженияПоПартиям.СуммаПрод * 100

                              |    КОНЕЦ КАК Рентабельность

выдал ошибку (0).

Думаю (2) прав. чем заменить это выражение, не знаю.

  

ДенисЧ

6 — 01.03.15 — 11:17

второй конец убери. А то как-то неприлично получается…

  

Wobland

7 — 01.03.15 — 11:17

-(Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма). внезапно, правда?

  

pnamik

8 — 01.03.15 — 11:29

предлагаемые варианты (6) и (7) попробовал. та же синтаксическая ошибка. не понимание — это ужас.

  

pnamik

9 — 01.03.15 — 11:31

{Форма.Форма(107)}: Ошибка при вызове метода контекста (Выполнить): {(27, 2)}: Синтаксическая ошибка «ВЫБОР»

<<?>>ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ ТОГДА

        РезультатЗапроса = Запрос.Выполнить();

  

Wobland

10 — 01.03.15 — 11:33

(9) выборы и концы пересчитал?

  

pnamik

11 — 01.03.15 — 11:33

варианты

ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ  ТОГДА

                              | -(Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма) ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) КОНЕЦ / ДвиженияПоПартиям.СуммаПрод * 100

                              |    КОНЕЦ КАК Рентабельность

или

ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ  ТОГДА

                              | -(Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма) ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) / ДвиженияПоПартиям.СуммаПрод * 100

                              |    КОНЕЦ КАК Рентабельность

или же

ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ  ТОГДА

                              | -(Чеки.СуммаВсего — ДвиженияПоПартиям.Сумма) ИНАЧЕ (ДвиженияПоПартиям.СуммаПрод — ДвиженияПоПартиям.Сумма) КОНЕЦ / ДвиженияПоПартиям.СуммаПрод * 100

                              |    КАК Рентабельность

или же еще в разных вариациях

  

Wobland

12 — 01.03.15 — 11:35

я вижу ошибку в поле, которое заканчивается на 26й строке

  

pnamik

13 — 01.03.15 — 11:37

т.е. в этой строке:

ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ  ТОГДА ?

  

pnamik

14 — 01.03.15 — 11:38

(9) имеется ввиду это?

|ИТОГИ

                              |    СУММА(КоличествоВозврат),

                              |    СУММА(ВыручкаВозврат),

                              |    СУММА(Количество),

                              |    СУММА(Выручка),

                              |    СУММА(Себестоимость),

                              |    СУММА(ВаловаяПрибыль),

                              |    СУММА(Наценка),

                              |    СУММА(Рентабельность)

  

Записьдампа

15 — 01.03.15 — 11:40

Лишний конец уравновешивается выбором! =)

ВЫБОР
    КОГДА ЕСТЬNULL(ДвиженияПоПартиям.Сумма, 0) = 0
    ТОГДА
        0
    ИНАЧЕ 
        ВЫБОР
            КОГДА ДвиженияПоПартиям.КодОперации = &КВ
            ТОГДА
                Чеки.СуммаВсего - ДвиженияПоПартиям.Сумма)*-1 
            ИНАЧЕ 
                (ДвиженияПоПартиям.СуммаПрод - ДвиженияПоПартиям.Сумма) 
        КОНЕЦ / ДвиженияПоПартиям.Сумма * 100

КОНЕЦ КАК Наценка,


ВЫБОР
    КОГДА ЕСТЬNULL(ДвиженияПоПартиям.СуммаПрод, 0) = 0
    ТОГДА
        0
    ИНАЧЕ
        ВЫБОР КОГДА ДвиженияПоПартиям.КодОперации = &КВ
            ТОГДА
                (Чеки.СуммаВсего - ДвиженияПоПартиям.Сумма)*-1 
            ИНАЧЕ 
                (ДвиженияПоПартиям.СуммаПрод - ДвиженияПоПартиям.Сумма) 
        КОНЕЦ / ДвиженияПоПартиям.СуммаПрод * 100

КОНЕЦ КАК Рентабельность

  

Wobland

16 — 01.03.15 — 11:40

(13) сам считай свои строки

  

pnamik

17 — 01.03.15 — 11:49

(15) умница, спасибо. по крайней мере пока ошибок нет. проверю правильно ли считает. Думаю, все будет правильно. т.к. формула правильная. Нужно было аналогии чуть сверху начинать.

  

pnamik

18 — 01.03.15 — 11:57

(16), (6), (4), (2) также спасибо за участие в обсуждении

Изменили запрос, но все равно выводит ошибку уже при отладке:

{Документ.СчетНаОплатуПокупателюНовый.МодульОбъекта(116)}: Ошибка при вызове метода контекста (Выполнить)
ЗапросТовары = Запрос.Выполнить().Выгрузить();
по причине:
Разное количество полей в объединяемых запросах

Функция ПечатьСчетаЗаказа(Тип)
Перем ПодразделениеОтветственныхЛиц;

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

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

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";

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

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

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

ЗапросТовары = Запрос.Выполнить().Выгрузить();

Макет = ПолучитьМакет("СчетЗаказ");

// Выводим шапку накладной

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

ОбластьМакета.Параметры.БИКБанкаПолучателя = БИК;
ОбластьМакета.Параметры.БанкПолучателя = Банк;
ОбластьМакета.Параметры.БанкПолучателяПредставление = СокрЛП(Банк) + " " + ГородБанка;
ОбластьМакета.Параметры.СчетБанкаПолучателя = КоррСчет;
ОбластьМакета.Параметры.СчетБанкаПолучателяПредставление = КоррСчет;
ОбластьМакета.Параметры.СчетПолучателяПредставление = НомерСчета;
ОбластьМакета.Параметры.СчетПолучателя = НомерСчета;
КонецЕсли;

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

ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;

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

ТабДокумент.Вывести(ОбластьМакета);

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

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

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

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

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ТабДокумент.Присоединить(ОбластьСуммы);

ОбластьКолонкаТовар = Макет.Область("Товар");

Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма");

Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
ВсегоБезСкидок = 0;

Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл

ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
ТабДокумент.Вывести(ОбластьНомера);

Если ВыводитьКоды Тогда
Если Колонка = "Артикул" Тогда
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
Иначе
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
КонецЕсли;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;

ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
ТабДокумент.Присоединить(ОбластьДанных);

ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьСуммы);
Сумма = Сумма + ВыборкаСтрокТовары.Сумма;
СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;

КонецЦикла;

// Вывести Итого
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма");

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Присоединить(ОбластьСуммы);

// Вывести ИтогоНДС
ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");

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

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

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

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

// Вывести подписи
Если Тип = "Счет" Тогда

Если Шапка.Получатель.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");

Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Руководители, Шапка.Дата, ПодразделениеОтветственныхЛиц);
Руководитель = Руководители.РуководительПредставление;
Бухгалтер = Руководители.ГлавныйБухгалтерПредставление;

ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;
ОбластьМакета.Параметры.ФИОБухгалтера = Бухгалтер;

Иначе
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчетаПредприниматель");

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

ОбластьМакета.Параметры.ФИОПредпринимателя = Предприниматель;

КонецЕсли;

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

Возврат ТабДокумент;

КонецФункции // ПечатьСчетаЗаказа()

Понравилась статья? Поделить с друзьями:
  • Синтаксические ошибки примеры предложений
  • Синтаксическая ошибка это что такое
  • Синтаксические ошибки примеры и исправления таблица
  • Синтаксическая ошибка это речевая или грамматическая
  • Синтаксические ошибки презентация