ОБСУЖДЕНИЕ

Пяти минутное дело. 1С 7.7 Торговля и склад

17 ответов 16,3 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
Автор темы
Есть код, этот код выводит на печать ценники (три ряда по два ценника в каждом ряде на странице). Необходимо чтоб было три ряда по три ценника. Заранее спасибо.


Сам код:

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

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

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

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

КонецЕсли;

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


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

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

Столбик = 1;
Ряд = 0;

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

//Вызов выходного отчета в окно просмотра и редактирования.
Таб.Опции(0,0,0,0,"ПечатьЦенников","ПечатьЦенников");
Таб.ТолькоПросмотр(1);
Таб.Показать("Товарные ценники","");

КонецПроцедуры

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

СтатусВозврата(0);
ДанныеДляПечати = Форма.Параметр;

Если ТипЗначенияСтр(ДанныеДляПечати) <> "СписокЗначений" Тогда
Возврат;
КонецЕсли;

ПечФирма = ДанныеДляПечати.Получить("Фирма");
ТаблицаТоваров = ДанныеДляПечати.Получить("Таблица");

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

КонецПроцедуры // ПриОткрытии()
 
Для: diman_ob_304

15$
 
Гы, за 15 баков, я выучу язык :)

Тут типа, только за вознограждение делается?
 
Нет тут типа помогают людям разобраться с 1С, а не сделать какую-то хрень забесплатно.
Причем, код сюда постить можно только по запросу. Я, например, его даже не читал, да и никто не будет.
Дмай сам, а если не получится - с конкретными вопросами сюда.
 
Ок, понял, не мир дурак бы не понял. :)
 
Опять такое впечатление что все сами до всего доходили или потратили уже порядка 1 баксов на то чтобы им решали их проблема!

diman_ob_304 вот аська отвечу и помогу чем смогу БЕСПЛАТНО! 160592725
 
[

Добавлено: Ребята а подскажите как добавит еше один столбик ценников когда он распечатывает? Выходит так, когда распечатываю там два столбика в каждом столбике по три ценника и еше места много остается пестова на буиаге. Как сделать три столбика? Подскажите плиз
 
Посмотреть в коде, как выводится 3 столбика и по образу добавить четвертый!
 
Процедура ДобавитьЦенник(Таб, ПечФирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)

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

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

все вычисленеия в этом коде. а вообще то код достаточно заумный
 
вместо
Столбик = ?(Столбик = 1, 0 , 1 );

надо
Столбик = Столбик+1;
Столбик = ?(Столбик = 3, 0 , Столбик);


а в другом месте вместо
Столбик = 1;

надо
Столбик = 2;
 
Нет Ребята там нужно было добавить одну строчку. Я выделил ее здесь жирным шрифтом.

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

КонецЕсли;
 
Driver, если сделать как ты, то второй и третий столбцы будут одинаковыми


ты хотябы попробовал то, что я предложил?
 
Используй функцию, присоединить секцию, так будет проще, сам так сделал когда писал обработку по распечатке ценников для компьютерного магазина.
 
Используй функцию, присоединить секцию, так будет проще
... и тем самым можно создать универсальную печать от двух до десяти ценников в ряд (спец. бумага для ценников и спец.принтеров бывает разной ширины)
 
может я чего-то не догоняю, но код приведенный в начале темы заточен под то, что КАЖДЫЙ ЦЕННИК РАЗНЫЙ
добавляя ПрисоединитьСекцию будут иолучаться по НЕСКОЛЬКО ОДИНАКОВЫХ ЦЕННИКОВ (при этом первый будет отличаться от второго и остальных в этой строке )

разве это корректное решение задачи?
 
Hryv ты был прав, а я просто копию столбика сделал, попробовал по твойму все получилось спосибо большое.
 
Незачто :)
 
Статус
Закрыто для дальнейших ответов.