• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы diman_ob_304
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

diman_ob_304

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


Сам код:

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

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

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

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

КонецЕсли;

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


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

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

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

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

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

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

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

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

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

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

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

КонецПроцедуры // ПриОткрытии()
 
D

diman_ob_304

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

Тут типа, только за вознограждение делается?
 
L

LSH

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

diman_ob_304

Ок, понял, не мир дурак бы не понял. :)
 
T

Typhoon

Опять такое впечатление что все сами до всего доходили или потратили уже порядка 1 баксов на то чтобы им решали их проблема!

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

Driver

[

Добавлено: Ребята а подскажите как добавит еше один столбик ценников когда он распечатывает? Выходит так, когда распечатываю там два столбика в каждом столбике по три ценника и еше места много остается пестова на буиаге. Как сделать три столбика? Подскажите плиз
 
V

vitfil

Посмотреть в коде, как выводится 3 столбика и по образу добавить четвертый!
 
E

evgenyatam

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

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

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

все вычисленеия в этом коде. а вообще то код достаточно заумный
 
H

Hryv

вместо
Столбик = ?(Столбик = 1, 0 , 1 );

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


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

надо
Столбик = 2;
 
D

Driver

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

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

КонецЕсли;
 
H

Hryv

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


ты хотябы попробовал то, что я предложил?
 
S

SaschaL

Используй функцию, присоединить секцию, так будет проще, сам так сделал когда писал обработку по распечатке ценников для компьютерного магазина.
 
V

vbs

Используй функцию, присоединить секцию, так будет проще
... и тем самым можно создать универсальную печать от двух до десяти ценников в ряд (спец. бумага для ценников и спец.принтеров бывает разной ширины)
 
H

Hryv

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

разве это корректное решение задачи?
 
D

Driver

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!