Как сделать так чтобы в стандартной обработке "Печать ценников" печаталось по 3 столбца а не 2?
Уж очень это расточительно целую полоску бумаги выкидывать когда там можно еще штук 5 ценников распечатать.
Есть конечно много замечательных внешних обработок только вот к сожалению не все они универсальные, некотрые подключаются только к конкретные документам, а вот к отдельным модулям (например "обновление цен в справочнике" - очень надо , чтобы там такая фишка была) не подключишь.
С 1С программированием не знаком, пытался переделать чисто интуитивно, смог только поменять количество строк ценников с 3 на 5.
Я так понимаю , что нужно добавить что-то в этом куске кода:
А вот что именно?
И если не в этом куске, то в каком?
Помогите люди добрые - дайте нужный кусочек кода!!! :cry:
Уж очень это расточительно целую полоску бумаги выкидывать когда там можно еще штук 5 ценников распечатать.
Есть конечно много замечательных внешних обработок только вот к сожалению не все они универсальные, некотрые подключаются только к конкретные документам, а вот к отдельным модулям (например "обновление цен в справочнике" - очень надо , чтобы там такая фишка была) не подключишь.
С 1С программированием не знаком, пытался переделать чисто интуитивно, смог только поменять количество строк ценников с 3 на 5.
Я так понимаю , что нужно добавить что-то в этом куске кода:
Процедура ДобавитьЦенник(Таб, ПечФирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
Столбик = ?(Столбик = 0, 1 , 0);
Ряд = ?(Столбик = 0, Ряд + 1, Ряд);
Если Ряд > 5 Тогда
Таб.НоваяСтраница();
Ряд = 1;
КонецЕсли;
Если Столбик = 0 Тогда
Таб.ВывестиСекцию("Товар|Ценник");
Иначе
Таб.ПрисоединитьСекцию("Товар|Ценник");
КонецЕсли;
КонецПроцедуры // ДобавитьЦенник()
ПоказатьА вот что именно?
И если не в этом куске, то в каком?
Помогите люди добрые - дайте нужный кусочек кода!!! :cry:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Извиняюсь конечно, может быть я туплю, но вот весь код этой обработки:
в каком именно месте
//******************************************************************************
// ДобавитьЦенник(Таб, ПечФирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
//
// Параметры:
// Таб - таблица, в которую выполняется вывод ценника
// ПечНаименование - наименование товара
// ПечЕдиница - единица измерения товара
// ПечРозн - цена товара
// Столбик - номер столбика.
// Ряд - номер ряда
//
// Возвращаемое значение:
// Нет.
//
// Описание:
// Добавляет ценник в таблицу.
//
Процедура ДобавитьЦенник(Таб, ПечФирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)
Столбик = ?(Столбик = 2, 0, Столбик+1);
Ряд = ?(Столбик = 0, Ряд + 1, Ряд);
Если Ряд > 5 Тогда
Таб.НоваяСтраница();
Ряд = 1;
КонецЕсли;
Если Столбик = 0 Тогда
Таб.ВывестиСекцию("Товар|Ценник");
Иначе
Таб.ПрисоединитьСекцию("Товар|Ценник");
КонецЕсли;
КонецПроцедуры // ДобавитьЦенник()
//******************************************************************************
// Сформировать(ТаблицаТоваров, ПечФирма)
//
// Параметры:
// ТаблицаТоваров - таблица значений, содержащая информацию о цене товара
// ПечФирма - наименование фирмы, которое будет выводиться вверху ценника
//
// Возвращаемое значение:
// Нет.
//
// Описание:
// Формирует таблицу с ценниками.
//
Процедура Сформировать(ТаблицаТоваров,ПечФирма)
// Создание Таблицы для выходного отчета
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Столбик = 1;
Ряд = 0;
ТаблицаТоваров.ВыбратьСтроки();
Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
ПечРозн = глФРМ(ТаблицаТоваров.Цена, ТаблицаТоваров.Валюта);
ПечНаименование = ТаблицаТоваров.Товар;
ДобавитьЦенник(Таб, ПечФирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд);
глОживить(1);
КонецЦикла;
//Вызов выходного отчета в окно просмотра и редактирования.
Таб.Опции(0,0,0,0,"ПечатьЦенников","ПечатьЦенников");
Таб.ТолькоПросмотр(1);
Таб.Показать("Товарные ценники","");
КонецПроцедуры
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()
СтатусВозврата(0);
ДанныеДляПечати = Форма.Параметр;
Если ТипЗначенияСтр(ДанныеДляПечати) <> "СписокЗначений" Тогда
Возврат;
КонецЕсли;
ПечФирма = ДанныеДляПечати.Получить("Фирма");
ТаблицаТоваров = ДанныеДляПечати.Получить("Таблица");
Сформировать(ТаблицаТоваров, ПечФирма);
КонецПроцедуры // ПриОткрытии()
Показатьв каком именно месте
должно быть Столбик = 2; а не Столбик = 1;
Перед циклом с вызовом процедуры ДобавитьЦенник()
такой строчки нет
Юрий пишет:
Столбик = ?(Столбик = 2, 0,Столбик+1);
Столбик = ?(Столбик = 2, 0,Столбик+1);
Почти работает!
единственно, что:
- в самой первой строчке печатает только 1 ценник вместо трех
- и почти всегда на второй странице выдает только 1 строчку (из 3 ценников) вместо положенных 5. Эта последняя строчка съезжает, так как она получается по счету шестая (первая - один ценник на самой первой строке)
а все последующие страницы печатаются как следует
Уважаемый... Вы действительно безбожно тормозите!!!
Процедура Сформировать(ТаблицаТоваров,ПечФирма)
// Создание Таблицы для выходного отчета
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Столбик = 1; // ВОТ ЗДЕСЬ ЮРИЙ ПОСТАВИЛ Столбик = 2
Ряд = 0;
ТаблицаТоваров.ВыбратьСтроки();
Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
Процедура Сформировать(ТаблицаТоваров,ПечФирма)
// Создание Таблицы для выходного отчета
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Столбик = 1; // ВОТ ЗДЕСЬ ЮРИЙ ПОСТАВИЛ Столбик = 2
Ряд = 0;
ТаблицаТоваров.ВыбратьСтроки();
Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование,ПечЕдиница,ПечРозн,Столбик, Ряд,Докум="") Экспорт
Если Столбик=2 Тогда
Столбик=0;
Иначе
Столбик=Столбик+1;
КонецЕсли;
Ряд = ?(Столбик = 0, Ряд + 1, Ряд);
Если Ряд > 4 Тогда
Таб.НоваяСтраница();
Ряд = 1;
КонецЕсли;
Если Столбик = 0 Тогда
Таб.ВывестиСекцию("Товар|Ценник");
Иначе
Таб.ПрисоединитьСекцию("Товар|Ценник");
КонецЕсли;
КонецПроцедуры // ДобавитьЦенник()
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот