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

Вывести строку ТЧ на печать

Автор Каримдат, 26 фев 2016, 11:37

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

Каримдат

Прошу помощи. Добавил в документ ВозвратТоваровПоставщику в ТЧ реквизит ВесИзделия. Вес изделия вытягивается из номенклатуры, тут вроде всё нормально, работает.
Проблема в следующем, Не могу понять как вывести эту колонку ВесИзделия на печать в макет ПриходРасходВЦенахАТТ. Скрины прилагаю.

vitasw

1. Стисняюсь спросить, а чем вам типовой реквизит "вес" в спр. единиц измерения не угодил
2. Вес в макет выводится в процедуре печати.

Каримдат

Дело в том что реквизит ВесИзделия был давно дописан программистом который дописывал базу. Это 2011 год был. Я не знаю почему он не использовал типовой реквизит))) В процедуре печати нет строк для вывода данных. Если бы они там были, я бы подставил значения.
Добавлено: 26 фев 2016, 12:40


Процедура ОсновныеДействияФормыПечать(Кнопка)

УниверсальныеМеханизмы.ОткрытьФормуВыбораПечатныхФормОбъекта(ЭтотОбъект, ЭтаФорма);

КонецПроцедуры // ОсновныеДействияФормыПечать()

Это нажатие кнопки Печать в основной форме.
В УниверсальныеМеханизмы.ОткрытьФормуВыбораПечатныхФормОбъекта всего лишь открывает список доступных макетов.

Вот тут пробовал добавить строки для печати. Но ничего не получилось(((

Функция НапечататьПриходРасходСРозничныхСкладовВЦенахАТТ(Док, ВалютаРегламентированногоУчета, ЭтоПриход) Экспорт

Если ЭтоПриход Тогда
ТекстЗапросаКоличество = "ВЫБОР КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
|    И РегТоварыВРознице.Количество > 0 ТОГДА
| РегТоварыВРознице.Количество
| КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|    И РегТоварыВРознице.Количество < 0 ТОГДА
| -РегТоварыВРознице.Количество
| ИНАЧЕ
| 0
| КОНЕЦ";

ТекстЗапросаСуммаПродажная = "ВЫБОР КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
|    И РегТоварыВРознице.СуммаПродажная > 0 ТОГДА
| РегТоварыВРознице.СуммаПродажная
| КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|    И РегТоварыВРознице.СуммаПродажная < 0 ТОГДА
| -РегТоварыВРознице.СуммаПродажная
| ИНАЧЕ
| 0
| КОНЕЦ";

ТекстНетДвижений = "Данным документом не выполнен приход ни на один розничный склад!";

ТекстВсегоПринятоОтпущено = "Всего принято ";
ТекстПринялОтпустил = "Принял";
Иначе
ТекстЗапросаКоличество = "ВЫБОР КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|    И РегТоварыВРознице.Количество > 0 ТОГДА
| РегТоварыВРознице.Количество
| КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
|    И РегТоварыВРознице.Количество < 0 ТОГДА
| -РегТоварыВРознице.Количество
| ИНАЧЕ
| 0
| КОНЕЦ";

ТекстЗапросаСуммаПродажная = "ВЫБОР КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|    И РегТоварыВРознице.СуммаПродажная > 0 ТОГДА
| РегТоварыВРознице.СуммаПродажная
| КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
|    И РегТоварыВРознице.СуммаПродажная < 0 ТОГДА
| -РегТоварыВРознице.СуммаПродажная
| ИНАЧЕ
| 0
| КОНЕЦ";

ТекстНетДвижений = "Данным документом не выполнен расход ни с одного розничного склада!";

ТекстВсегоПринятоОтпущено = "Всего отпущено ";
ТекстПринялОтпустил = "Отпустил";
КонецЕсли;

Запрос = Новый Запрос("
|ВЫБРАТЬ
| РегТоварыВРознице.Склад КАК Склад,
| РегТоварыВРознице.Номенклатура.Представление КАК Номенклатура,
| РегТоварыВРознице.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаИзмерения,
| РегТоварыВРознице.ХарактеристикаНоменклатуры.Представление КАК Характеристика,
| РегТоварыВРознице.СерияНоменклатуры.Представление КАК Серия,
| РегТоварыВРознице.Качество.Представление КАК Качество,
| Сумма(" + ТекстЗапросаКоличество + ") КАК Количество,
| Сумма(" + ТекстЗапросаСуммаПродажная + ") КАК СуммаПродажная
|ИЗ
| РегистрНакопления.ТоварыВРознице КАК РегТоварыВРознице
|ГДЕ
| РегТоварыВРознице.Регистратор = &Док
| И РегТоварыВРознице.Активность
|СГРУППИРОВАТЬ ПО
| РегТоварыВРознице.Склад,
| РегТоварыВРознице.Номенклатура,
| РегТоварыВРознице.Номенклатура.ЕдиницаХраненияОстатков,
| РегТоварыВРознице.ХарактеристикаНоменклатуры,
| РегТоварыВРознице.СерияНоменклатуры,
| РегТоварыВРознице.Качество
|ИМЕЮЩИЕ
| Сумма(" + ТекстЗапросаКоличество + ") <> 0
| ИЛИ Сумма(" + ТекстЗапросаСуммаПродажная + ") <> 0
|УПОРЯДОЧИТЬ ПО Номенклатура
|ИТОГИ
|ПО
| Склад
|");

Запрос.УстановитьПараметр("Док", Док);

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

Если РезультатЗапроса.Пустой() Тогда
Предупреждение(ТекстНетДвижений);
ТабДокумент = Неопределено;
Иначе
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходСРозничныхСкладовВЦенахАТТ";

Макет = ПолучитьОбщийМакет("ПриходРасходВЦенахАТТ");

ОбластьЗаголовок     = Макет.ПолучитьОбласть("Заголовок");
ОбластьШапкаТаблицы  = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьСклад         = Макет.ПолучитьОбласть("Склад");
ОбластьСтроки        = Макет.ПолучитьОбласть("Строка");
ОбластьИтого         = Макет.ПолучитьОбласть("Итого");
ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьПодписи       = Макет.ПолучитьОбласть("Подписи");

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

ВыборкаСклады = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Склад");
Пока ВыборкаСклады.Следующий() Цикл
ВыбМОЛ = РегистрыСведений.ОтветственныеЛица.ПолучитьПоследнее(Док.Дата, Новый Структура("СтруктурнаяЕдиница", ВыборкаСклады.Склад)).ФизическоеЛицо;

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

ОбластьСклад.Параметры.ПредставлениеСклада = СокрЛП(ВыборкаСклады.Склад) + ?(ЗначениеЗаполнено(ВыбМОЛ), " (материально-ответственное лицо: " + ВыбМОЛ + ")", "");
ТабДокумент.Вывести(ОбластьСклад);

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

НомерСтроки = 0;
Сумма = 0;

Выборка = ВыборкаСклады.Выбрать();
Пока Выборка.Следующий() Цикл
НомерСтроки = НомерСтроки + 1;

Сумма = Сумма + Выборка.СуммаПродажная;

ОбластьСтроки.Параметры.Заполнить(Выборка);
ОбластьСтроки.Параметры.НомерСтроки = НомерСтроки;
ОбластьСтроки.Параметры.Товар = СокрЛП(Выборка.Номенклатура)
   + ФормированиеПечатныхФорм.ПредставлениеСерий(Выборка);
ОбластьСтроки.Параметры.Цена = ?(Выборка.Количество = 0, 0, Выборка.СуммаПродажная / Выборка.Количество);

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

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

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

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

ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЦикла;
КонецЕсли;

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

КонецФункции // НапечататьПриходРасходСРозничныхСкладовВЦенахАТТ()

vitasw

Запрос нужно менять. Цеплять к текущему запросу левым соединением таблицу товаров.

Каримдат

А можете подсказать куда именно нужно вставить ЛЕВОЕ СОЕДИНЕНИЕ?

Теги:

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

Рейтинг@Mail.ru

Поиск