Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Сен 2017, 23:57
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вывести строку ТЧ на печать  (Прочитано 983 раз)

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

Оффлайн Каримдат

  • ****
  • Сообщений: 263
  • РЕПУТАЦИЯ: 19
  • КПД: 7%
  • Регистрация: 2014-04-06
    • Skype: winkarollo
  • Сайт: 
  • Профессия: Ученик 1С
Прошу помощи. Добавил в документ ВозвратТоваровПоставщику в ТЧ реквизит ВесИзделия. Вес изделия вытягивается из номенклатуры, тут вроде всё нормально, работает.
Проблема в следующем, Не могу понять как вывести эту колонку ВесИзделия на печать в макет ПриходРасходВЦенахАТТ. Скрины прилагаю.


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
1. Стисняюсь спросить, а чем вам типовой реквизит "вес" в спр. единиц измерения не угодил
2. Вес в макет выводится в процедуре печати.

Оффлайн Каримдат

  • ****
  • Сообщений: 263
  • РЕПУТАЦИЯ: 19
  • КПД: 7%
  • Регистрация: 2014-04-06
    • Skype: winkarollo
  • Сайт: 
  • Профессия: Ученик 1С
Дело в том что реквизит ВесИзделия был давно дописан программистом который дописывал базу. Это 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

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Запрос нужно менять. Цеплять к текущему запросу левым соединением таблицу товаров.

Оффлайн Каримдат

  • ****
  • Сообщений: 263
  • РЕПУТАЦИЯ: 19
  • КПД: 7%
  • Регистрация: 2014-04-06
    • Skype: winkarollo
  • Сайт: 
  • Профессия: Ученик 1С
А можете подсказать куда именно нужно вставить ЛЕВОЕ СОЕДИНЕНИЕ?


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
144 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
82 Сообщений
alex0402
79 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
26 Сообщений
AsadRoman
24 Сообщений
AIFrame
24 Сообщений
ilyay ilyay
23 Сообщений
Kironten
23 Сообщений
Варвар
20 Сообщений

* Кто онлайн

  • Точка Гостей: 268
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal