Печать ценников в 3 столбца, а не в 2?

1. intravert1983 01.05.10 15:48 Сейчас в теме
Как сделать так чтобы в стандартной обработке "Печать ценников" печаталось по 3 столбца а не 2?
Уж очень это расточительно целую полоску бумаги выкидывать когда там можно еще штук 5 ценников распечатать.
Есть конечно много замечательных внешних обработок только вот к сожалению не все они универсальные, некотрые подключаются только к конкретные документам, а вот к отдельным модулям (например "обновление цен в справочнике" - очень надо , чтобы там такая фишка была) не подключишь.
С 1С программированием не знаком, пытался переделать чисто интуитивно, смог только поменять количество строк ценников с 3 на 5.
Я так понимаю , что нужно добавить что-то в этом куске кода:

Процедура ДобавитьЦенник(Таб, ПечФирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
 	
		
	Столбик	= ?(Столбик = 0, 1      ,   0);
	Ряд		= ?(Столбик = 0, Ряд + 1, Ряд);

	Если Ряд > 5 Тогда
 		Таб.НоваяСтраница();
 		Ряд = 1;
 	КонецЕсли;
 	
 	Если Столбик = 0 Тогда
 		Таб.ВывестиСекцию("Товар|Ценник");
 	Иначе
 		Таб.ПрисоединитьСекцию("Товар|Ценник");
 	КонецЕсли; 

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


А вот что именно?
И если не в этом куске, то в каком?
Помогите люди добрые - дайте нужный кусочек кода!!! :cry:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. intravert1983 02.05.10 10:50 Сейчас в теме
Извиняюсь конечно, может быть я туплю, но вот весь код этой обработки:

//******************************************************************************
// ДобавитьЦенник(Таб, ПечФирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
//
// Параметры:
//  Таб             - таблица, в которую выполняется вывод ценника
//  ПечНаименование - наименование товара
//  ПечЕдиница      - единица измерения товара
//  ПечРозн         - цена товара
//  Столбик         - номер столбика.
//  Ряд             - номер ряда
//
// Возвращаемое значение:
//  Нет.
//
// Описание:
//  Добавляет ценник в таблицу.
//
Процедура ДобавитьЦенник(Таб, ПечФирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
 	
		
	Столбик = ?(Столбик = 2, 0, Столбик+1);
	Ряд		= ?(Столбик = 0, Ряд + 1, Ряд);

	Если Ряд > 5 Тогда
 		Таб.НоваяСтраница();
 		Ряд = 1;
 	КонецЕсли;
 	
 	Если Столбик = 0 Тогда
 		Таб.ВывестиСекцию("Товар|Ценник");
 	Иначе
 		Таб.ПрисоединитьСекцию("Товар|Ценник");
 	КонецЕсли; 

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

//******************************************************************************
// Сформировать(ТаблицаТоваров, ПечФирма)
//
// Параметры:
//  ТаблицаТоваров	- таблица значений, содержащая информацию о цене товара
//  ПечФирма		- наименование фирмы, которое будет выводиться вверху ценника
//
// Возвращаемое значение:
//  Нет.
//
// Описание:
//  Формирует таблицу с ценниками.
//
Процедура Сформировать(ТаблицаТоваров,ПечФирма)

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

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

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()
	
	СтатусВозврата(0);
	ДанныеДляПечати = Форма.Параметр;
	              
	Если ТипЗначенияСтр(ДанныеДляПечати) <> "СписокЗначений" Тогда
		Возврат;
	КонецЕсли;
	
	ПечФирма       = ДанныеДляПечати.Получить("Фирма");
	ТаблицаТоваров = ДанныеДляПечати.Получить("Таблица");
	
	Сформировать(ТаблицаТоваров, ПечФирма);
	
КонецПроцедуры // ПриОткрытии()
Показать


в каком именно месте
должно быть Столбик = 2; а не Столбик = 1;
Перед циклом с вызовом процедуры ДобавитьЦенник()
такой строчки нет
2. Tatitutu 3855 01.05.10 19:17 Сейчас в теме
вот это
Столбик = ?(Столбик = 0, 1 , 0);
замени на
Столбик = ?(Столбик = 2, 0,Столбик);
и будет у тебя 3 столбика
3. intravert1983 01.05.10 22:12 Сейчас в теме
Tatitutu пишет:

вот это

Столбик = ?(Столбик = 0, 1 , 0);

замени на

Столбик = ?(Столбик = 2, 0,Столбик);

и будет у тебя 3 столбика


Нет! так он печатает все ценники в одну строчку :(
4. VUN 38 01.05.10 23:54 Сейчас в теме
Столбик = ?(Столбик = 2, 0,Столбик+1);
5. intravert1983 02.05.10 00:42 Сейчас в теме
Юрий пишет:
Столбик = ?(Столбик = 2, 0,Столбик+1);


Почти работает!
единственно, что:
- в самой первой строчке печатает только 1 ценник вместо трех
- и почти всегда на второй странице выдает только 1 строчку (из 3 ценников) вместо положенных 5. Эта последняя строчка съезжает, так как она получается по счету шестая (первая - один ценник на самой первой строке)
а все последующие страницы печатаются как следует
6. VUN 38 02.05.10 03:03 Сейчас в теме
Перед циклом с вызовом процедуры ДобавитьЦенник() должно быть
Столбик = 2;
а не Столбик = 1;
8. Styvi 6 02.05.10 12:13 Сейчас в теме
Уважаемый... Вы действительно безбожно тормозите!!!

Процедура Сформировать(ТаблицаТоваров,ПечФирма)

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

Столбик = 1; // ВОТ ЗДЕСЬ ЮРИЙ ПОСТАВИЛ Столбик = 2
Ряд = 0;

ТаблицаТоваров.ВыбратьСтроки();
Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
9. intravert1983 02.05.10 14:57 Сейчас в теме
УРА! работает!
Спасибо всем за помощь! Да торможу :oops: - просто этот код для меня - темный лес!
13. CheBurator 3119 26.03.22 11:30 Сейчас в теме
(9) главное - не садись за руль, не научившись водить. а то я боюсь ...
10. Иваныч 23 24.03.16 18:48 Сейчас в теме
Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование,ПечЕдиница,ПечРозн,Столбик, Ряд,Докум="") Экспорт
    Если Столбик=2 Тогда 
		Столбик=0;
	Иначе
		Столбик=Столбик+1;
	КонецЕсли;
	Ряд		= ?(Столбик = 0, Ряд + 1, Ряд);
 	Если Ряд > 4 Тогда
 		Таб.НоваяСтраница();
 		Ряд = 1;
 	КонецЕсли;       
 	Если Столбик = 0 Тогда
 		Таб.ВывестиСекцию("Товар|Ценник");
 	Иначе
 		Таб.ПрисоединитьСекцию("Товар|Ценник");
 	КонецЕсли;
КонецПроцедуры // ДобавитьЦенник()
Показать
11. demo-05 144 16.06.16 20:01 Сейчас в теме
12. Wehriyar_Limanli 25.03.22 13:14 Сейчас в теме
Автору спасибо за тему и Спасибо большое тех кто помогал решить этот вопрос.
14. Иваныч 23 28.03.22 09:57 Сейчас в теме
А я себе сделал 2 внешние обработки :большие и малые, только больших 3х4, а малых 5*11 помещается на листе А4, подключил вызов из документа ПеремещениеТМЦ. Вопрос этот возник еще в 2004 году :)
15. CheBurator 3119 28.03.22 18:08 Сейчас в теме
сколько я этих всяких этикетко печатал/прогал - тошнит уже
Оставьте свое сообщение

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