Печать ценников в 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 Сейчас в теме
сколько я этих всяких этикетко печатал/прогал - тошнит уже
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)