Как вывести на печать нужное количество ценников

1. oxana 07.06.07 15:26 Сейчас в теме
Помогите начинающему! В ТиС 9.2 из документа "Поступление ТМЦ в розницу" печатаются ценники. Как сделать, чтобы печаталось то количество ценников, которое указано в документе, незнаю. Обработка стандартная.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. oxana 09.06.07 10:39 Сейчас в теме
Ну вот.
---------------------------------------
Докум.ВыбратьСтроки();

Пока Докум.ПолучитьСтроку() = 1 Цикл
Товар = Докум.Количество-1;
Для Сч = 1 По Товар Цикл
ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);
ПечРозн = глФРМ(ВремЦена, глРубли);
ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Докум.Номенклатура.Артикул), "");
ДобавитьЦенник(Таб, Докум.Фирма, ПечНаименованиеТМЦ, Докум.Единица, ПечРозн, Столбик, Ряд);
глОживить(1);

КонецЦикла;
КонецЦикла;
-----------------------------
В принцепе на печать выходит нужное количество, только с начало по одному наименованию каждого товара, а потом нормально как и должно быть. Поэто пришлось добавлять " Докум.Количество-1". Буду признательно, если подскажите, как сделать.
7. oxana 09.06.07 12:22 Сейчас в теме
Выкладываю всю обработку. А может опять чего пропущу.
----------------------------
Перем ПечФирма;
Перем СтрокНаСтранице;

//******************************************************************************

Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд) Экспорт

Столбик = ?(Столбик = 0, 1, ?(Столбик = 1, 2, ?(Столбик = 2, 3, 0)));
Ряд = ?(Столбик = 0, Ряд +1, Ряд);

Если Ряд > СтрокНаСтранице Тогда
Таб.НоваяСтраница();
Ряд = 1;
КонецЕсли;


Если Столбик =0 Тогда

Таб.ВывестиСекцию("Товар|Ценник");
Иначе

Таб.ПрисоединитьСекцию("Товар|Ценник");


КонецЕсли;

КонецПроцедуры // ДобавитьЦенник()

//******************************************************************************


Процедура Печать(Докум, Устройство=0, КолвоКопий=1)

ДокумВид = Докум.Вид();
Если ДокумВид = "ПереоценкаРозница" Тогда
ИдРознЦена = "ЦенаНовая";
ИначеЕсли ДокумВид = "ПоступлениеТМЦРозница" Тогда
ИдРознЦена = "РозничнаяЦена";
ИначеЕсли ДокумВид = "ПеремещениеТМЦ" Тогда
Если Докум.СкладПолучатель.РозничныйСклад = 1 Тогда
ИдРознЦена = "Цена";
Иначе
Предупреждение("Нельзя печатать ценники при перемещении
|ТМЦ на оптовый склад!", 60);
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;


// Создание Таблицы для выходного отчета
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");

ПечФирма = СокрЛП(Докум.Фирма.ЮрЛицо.ПолнНаименование);

Столбик = 3;
Ряд = 0;
СтрокНаСтранице = 5;

Докум.ВыбратьСтроки();
Пока Докум.ПолучитьСтроку() = 1 Цикл
Если ДокумВид = "ПереоценкаРозница" Тогда // пропускаем ТМЦ, где цена не менялась
Если Докум.ЦенаСтарая = Докум.ЦенаНовая Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);
ПечРозн = глФРМ(ВремЦена, глРубли); // печатаем по розничным ценам - поэтому глРубли
ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Докум.Номенклатура.Артикул), "");
ДобавитьЦенник(Таб, Докум.Фирма, ПечНаименованиеТМЦ, Докум.Единица, ПечРозн, Столбик, Ряд);
глОживить(1);
КонецЦикла;

//Оксана ----------------------------------------------------------------------------
Докум.ВыбратьСтроки();

Пока Докум.ПолучитьСтроку() = 1 Цикл
Товар = Докум.Количество-1;

Для Сч = 1 По Товар Цикл
ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена);
ПечРозн = глФРМ(ВремЦена, глРубли); // печатаем по розничным ценам - поэтому глРубли
ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Докум.Номенклатура.Артикул), "");
ДобавитьЦенник(Таб, Докум.Фирма, ПечНаименованиеТМЦ, Докум.Единица, ПечРозн, Столбик, Ряд);
глОживить(1);


КонецЦикла;
КонецЦикла;

//Оксана --------------------------------------------------------------------------------

Если Устройство = 0 Тогда
Таб.Опции(0,0,0,0,"ПечатьЦенников","ПечатьЦенников");
Таб.ТолькоПросмотр(1);
Таб.Показать("Товарные ценники","");
Иначе
Таб.ПараметрыСтраницы(,,,,,,,,,1,,);
Таб.КоличествоЭкземпляров(КолвоКопий);
Таб.Напечатать(0);
КонецЕсли;

КонецПроцедуры // Печать()

//******************************************************************************
Процедура ПоКнопкеПечать()

Если Док.Выбран() = 0 Тогда
Предупреждение("Не выбран документ!", 60);
Возврат;
КонецЕсли;

Печать(Док);

КонецПроцедуры // ПоКнопкеПечать()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()

Если ПустоеЗначение(Форма.Параметр) = 0 Тогда

Докум = Форма.Параметр.Получить("Контекст");
Устройство = Форма.Параметр.Получить("Устройство");
КолвоКопий = Форма.Параметр.Получить("КоличествоКопий");

Печать(Докум, Устройство, КолвоКопий);
Статусвозврата(0);
Возврат;
КонецЕсли;

КонецПроцедуры // ПриОткрытии()
8. sashulyT 201 09.06.07 12:45 Сейчас в теме
Все правильно у тебя два цикла по строкам, убери этот фрагмент

Код
Докум.ВыбратьСтроки(); 
Пока Докум.ПолучитьСтроку() = 1 Цикл 
Если ДокумВид = "ПереоценкаРозница" Тогда // пропускаем ТМЦ, где цена не менялась 
Если Докум.ЦенаСтарая = Докум.ЦенаНовая Тогда 
Продолжить; 
КонецЕсли; 
КонецЕсли; 
ВремЦена = Докум.ПолучитьАтрибут(ИдРознЦена); 
ПечРозн = глФРМ(ВремЦена, глРубли); // печатаем по розничным ценам - поэтому глРубли 
ПечНаименованиеТМЦ = СокрЛП(Докум.Номенклатура.ПолнНаименование) + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(Докум.Номенклатура.Артикул), ""); 
ДобавитьЦенник(Таб, Докум.Фирма, ПечНаименованиеТМЦ, Докум.Единица, ПечРозн, Столбик, Ряд); 
глОживить(1); 
КонецЦикла; 
Показать полностью


и будет счастье
2. CheBurator 3122 07.06.07 22:53 Сейчас в теме
Печатать то количество ценников, которое указано в документе.
Каков вопрос - таков ответ.
Что именно не получается?
Или вопрос на самом деле звучит так: надо напечатать ценники - я не знаю как - помогите забесплатно христа ради? ;-)
3. oxana 08.06.07 16:59 Сейчас в теме
А что тут непонятно? Например, в накладной 5 видов сумок с разным количеством, по приходу. На печать выводится 5 ценников (5 видов), а нужно, чтобы выводилось по количеству. Вообще-то, я уже сделала, но как-то коряво получилось. Сначало печатает по 1 экземпляру, а потом нужное количество.
4. sashulyT 201 09.06.07 08:20 Сейчас в теме
Расскажи что ты сделала и может найдем твою ошибку.
6. sashulyT 201 09.06.07 10:48 Сейчас в теме
Из этого врагмента кода не очевидно, надо смотреть процедуру ДобавитьЦенник() и как изменяются Столбик, Ряд и еще посмотри ни где больше не вызывается процедура ДобавитьЦенник()
9. oxana 09.06.07 12:56 Сейчас в теме
Огромное спасибо. Все получилось :))).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот