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

Суммирование позиций в печатной форме

Автор Misha_poet, 15 янв 2015, 15:57

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

Misha_poet

У клиента возникла проблема. В документе "Счет на оплату покупателю" некоторые позиции по номенклатуре повторяются. Клиент хочет, чтобы все эти позиции выводились в печатной форме, но при печати все одинаковые пункты по номенклатуре суммируются, в итоге вместо 100 позиций в печатной форме оказывается 70. Каким образом от этого можно избавиться? Конфигурация БП 20, платформа 8.3

MuI_I_Ika

Нужно переделать печатную форму под себя

LexaK

есть такое предожение, старую форму печати оставить как есть, других же контрагентов просуммированные заказы устраивают!
а в модуле документа сделать копию старой печати, назвать новый пункт в меню Печати - Счет как есть

в список добавить новую Печатную строку

Функция ПолучитьСтруктуруПечатныхФорм() Экспорт

    Возврат Новый Структура("Счет,СчетКакЕсть","Счет на оплату","Счет Как Есть");

КонецФункции // ПолучитьСтруктуруПечатныхФорм()



в процедуру Печати где такой код


Если ИмяМакета = "Счет" Тогда
    ТабДокумент = ПечатьСчетаЗаказа(ИмяМакета);
КонецЕсли;


добавляете строку

Если ИмяМакета = "Счет" Тогда
    ТабДокумент = ПечатьСчетаЗаказа(ИмяМакета);
ИначеЕсли ИмяМакета = "СчетКакЕсть" Тогда
    ТабДокумент = ПечатьСчетаЗаказаКакЕсть(ИмяМакета);
КонецЕсли;


делаете копию процедуры ПечатьСчетаЗаказа -> ПечатьСчетаЗаказаКакЕсть и в этой процедуре меняете строчки


|    СУММА(ЗаказПокупателя.Количество) КАК Количество,
|    СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
|    СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
|    МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки


на


|    (ЗаказПокупателя.Количество) КАК Количество,
|    (ЗаказПокупателя.Сумма) КАК Сумма,
|    (ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
|    (ЗаказПокупателя.НомерСтроки) КАК НомерСтроки


т.е просто убираете ключевые слова СУММА и МИНИМУМ.
конечно там еще чего поправить надо, но и так должно сразу заработать.
правда у меня бухгалтерия БП16, коды приведены от туда
Добавлено: 15 янв 2015, 18:33


а еще лучше все эти новые коды вынести во внешнюю печатную форму!

это для того случая если у вас база на поддержке, и что бы при новом обновлении, у вас не пропали ваши доработки.
если помогло нажмите: Спасибо!

Misha_poet

Цитировать
делаете копию процедуры ПечатьСчетаЗаказа -> ПечатьСчетаЗаказаКакЕсть и в этой процедуре меняете строчки


|    СУММА(ЗаказПокупателя.Количество) КАК Количество,
|    СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
|    СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
|    МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки


на


|    (ЗаказПокупателя.Количество) КАК Количество,
|    (ЗаказПокупателя.Сумма) КАК Сумма,
|    (ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
|    (ЗаказПокупателя.НомерСтроки) КАК НомерСтроки



Спасибо за подробный ответ. Я внес изменения. Это кстати отдельная внешняя форма, специально для этой цели, поэтому я внес изменения только в запрос. К сожалению после предложенных вами изменений форма перестала работать. Выводит ошибку:

Ошибка при вызове метода контекста (Выполнить): {(18, 4)}: Поле не входит в группу "ЗаказПокупателя.Количество"
(<<?>>ЗаказПокупателя.Количество) КАК Количество,


У меня есть маленькая теория, что проблема в группировке. Запрос сшивает одинаковые строки из-за того, что группирует по номенклатуре.


|         СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Номенклатура,
| ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
| ЗаказПокупателя.Цена) КАК ВложенныйЗапрос;


А вот как это изменить не знаю, я практически не работал с запросами.

Добавлено: 16 янв 2015, 08:32


У меня получилось:zebzdr:

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

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


Я все никак не мог запустить конструктор запросов. Потом догадался закомментировать этот кусок


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


После этого конструктор запустился. А там уже просто было группировку поменять.

LexaK

да, по быстрому(убрать только Сумма и Минимум) не получилось,
еще надо было всю конструкцию Сгруппировать по ... - убрать!
если вы решили не суммировать строчки, она не нужна.
если помогло нажмите: Спасибо!

МихаилМих

здравствуйте. Теперь и у меня возникла такая же проблема. Он собирает строки, а мне необходимо по позиционно.
Вот запрос:

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

Я пробовал закомментировать "СУММА" и "МИНИМУМ", ничего не получается. Вставлял строку: "ПоступлениеТоваровУслуг.НомерСтроки," в Группировку, не помогло.

Что нужно убрать, что бы он не собирал номенклатуру в одну строчку?

LexaK

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

если помогло нажмите: Спасибо!

МихаилМих

LexaK, Не получилось. Всё равно объединил одну номенклатуру.
1      Eveline подводка для глаз Make-Up art маркер водостойкая черная                                                      2         шт   
2      Love 2 Mix Organic маска стимулирующая рост волос (для всех типов волос) апельсин+чили 200ml                              2         шт   
3      Love 2 Mix Organic маска для поврежденных волос с эффектом ламинирования (манго+авокадо) 200ml                              1         шт   
4      Love 2 Mix Organic маска для поврежденных волос Super питательная протеины пшеницы+желток 200ml                              1         шт   
5      Love 2 Mix Organic маска роскошн. увлажн. для сухих волос Organic асаи+протеины жемчуга 200ml                              2         шт   

А нужно что бы было так:

1      Eveline подводка для глаз Make-Up art маркер водостойкая черная                                                      1         шт   
2      Eveline подводка для глаз Make-Up art маркер водостойкая черная                                                      1         шт
3      Love 2 Mix Organic маска стимулирующая рост волос (для всех типов волос) апельсин+чили 200ml                              1         шт   
4       Love 2 Mix Organic маска стимулирующая рост волос (для всех типов волос) апельсин+чили 200ml                              1         шт   
5      Love 2 Mix Organic маска для поврежденных волос с эффектом ламинирования (манго+авокадо) 200ml                              1         шт   
6      Love 2 Mix Organic маска для поврежденных волос Super питательная протеины пшеницы+желток 200ml                              1         шт   
7      Love 2 Mix Organic маска роскошн. увлажн. для сухих волос Organic асаи+протеины жемчуга 200ml                              1         шт   
8       Love 2 Mix Organic маска роскошн. увлажн. для сухих волос Organic асаи+протеины жемчуга 200ml                              1         шт   

LexaK

МихаилМих, попробуйте выполнить этот запрос в консоли.
и проверьте код/процедуру печати, возможно данные получаете из другого места
если помогло нажмите: Спасибо!

МихаилМих

LexaK, не получается, я ещё вчера бился с этим. Пишет "{(7, 1)}: Ожидается выражение "("

Но где эта скобка должна быть и должна закрываться???? 


Но опытным путём, делаю ошибку в этом блоке и при печати он на неё натыкается. Значит всё же место именно это.

Теги:

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

Рейтинг@Mail.ru

Поиск