Имя: Пароль:
1C
 
Проблема с ценником
0 pers200590
 
09.03.11
05:58
ЗДравствуйте .Конфа ТиС.Есть стандартная обработка ПечатьЦенников.Как сделать так чтобы при печати ценника на одну позицию он печатал на листе их допустим 5 шт. т.е 5 одинаковых ценников на одной странице
1 dva1c
 
09.03.11
06:14
Правильно организовать цикл и условие выхода из него )
2 pers200590
 
09.03.11
06:17
(1)правильно на примере покажи если можно
3 Rie
 
09.03.11
06:28
(0) Не внося изменения в обработку ПечатьЦенников - никак.
Там внутри зашито, сколько ценников в ряд печатать.
4 pers200590
 
09.03.11
06:29
(2) обьясните прожалуйста как что там менять

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

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

КонецПроцедуры // ДобавитьЦенник()
5 pers200590
 
09.03.11
06:30
+(0)Необходимо чтобы на одном листе было несколько одинаковых ценников именно тогда, когда именно печатаю одну позицию, а если печатаю папку должно быть все по прежнему
6 Rie
 
09.03.11
06:32
(4)

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

и оставить

Если Столбик=0 Тогда
7 skunk
 
09.03.11
06:43
пригласить специалиста ... предлагали?
8 Любопытная
 
09.03.11
06:44
(7)Ему бесполезно
9 Гефест
 
09.03.11
06:49
Вроде на неназываемом сайте есть обработка навеки забаненного программиста, как раз для этих целей
10 pers200590
 
09.03.11
07:10
(6) не помогает
11 Rie
 
09.03.11
07:22
(10) Тогда позовите специалиста.
12 pers200590
 
09.03.11
07:23
(11) а по нормально обьяснить можете есть другой способ кроме (6)
13 Rie
 
09.03.11
07:26
(12) А что значит "не помогает" в (10)?
14 dva1c
 
09.03.11
07:26
(12) со столбиками и рядами поколдуй. готовые семеречные ценники, к сожалению, - дома.
расставь точки останова и поколдуй с отладчиком.
15 skunk
 
09.03.11
07:37
(12)если ты не можешь решить простую задачу ... уровня азы программирования ... то ничего кроме (6) подсказать трудно
16 vasilii85
 
09.03.11
07:41
(15)+100
17 pers200590
 
09.03.11
08:14
(15) решаю просто толчок нужен
18 pers200590
 
09.03.11
08:16
как трудно нет и форум облазил ничего толкового не нашел, нашел только варианты если печатать ценников по папке
19 Rie
 
09.03.11
08:18
(18) За два часа обработку печати ценников можно было с нуля написать и после этого ещё раз 10 переписать.
20 andrewks
 
09.03.11
08:18
(17) в смысле пиннок? )
21 pers200590
 
09.03.11
08:45
(20) в прямом в модуле где и с чем эксперименты проводить
22 pers200590
 
09.03.11
08:56
А что если эксперимент проделать с секциями сделать их несколько
Подскажите варианты работы. И как я понял никто с этим не сталкивался даже что ли.
23 Rie
 
09.03.11
08:59
(22) С чем? Все спокойно печатают.
Насчёт секций - читай ЖКК до просветления.
Собственно, тебе нужен цикл

Пока ЕщёЕстьЧегоПечатать()=1 Цикл
   // заполнить какие нужно переменные
   Таб.ВывестиСекцию("Ценник");
   Для нЭлем=1 По ЦенниковВСтроке-1 Цикл
       Если ТакиНеВсеНапечатаны()=1 Тогда
           Таб.ПрисоединитьСекцию("Ценник");
       КонецЕсли;
   КонецЦикла;
КонецЦикла;

Чего ж тебе ещё подсказать-то надо?
24 dva1c
 
09.03.11
09:10
(23)+1
(22) еще в (1) и (14) было сказано с чем поэкспериментировать
25 pers200590
 
09.03.11
09:18
непонял со столбиками уже пол жня колдую не получается если разные печатать то получается, а если один и чтобы его на листе было 5 не получается
26 pers200590
 
09.03.11
09:18
В Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод) Экспорт  
Нет цикла
27 Rie
 
09.03.11
09:20
(25) Ты изложи конкретно, что именно тебе непонятно.
Покажи код, который ты состряпал.
А то с утра телепатией заниматься - как-то даже нехорошо.
28 Rie
 
09.03.11
09:20
(26) Где нет цикла?
В самой процедуре? Так она и есть по сути тело цикла.
29 pers200590
 
09.03.11
09:28
Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод) Экспорт
       
   Столбик = ?(Столбик=4,0,Столбик+1);
   Ряд        = ?(Столбик = 0, Ряд + 1, Ряд);

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

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

И добавил
Таб.ЭкземпляровНаСтранице(2);
30 pers200590
 
09.03.11
09:28
ВОт что получилось
31 Rie
 
09.03.11
09:29
+(28) Чтоб уж совсем стало похоже на типовую:

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

То, что в теле цикла - это и есть процедура печати ценника (только в штатной Столбец рассчитывается в начале процедуры, а не в конце).
32 Rie
 
09.03.11
09:30
(30) А теперь - покажи код, где эта процедура вызывается.
И напиши, что именно не так работает.
33 pers200590
 
09.03.11
09:34
Типовая выглядит по другому
Процедура ДобавитьЦенник(Таб, Фирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод) Экспорт
       
   Столбик = ?(Столбик=4,0,Столбик+1);
   Ряд        = ?(Столбик = 0, Ряд + 1, Ряд);

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

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

И добавил
Таб.ЭкземпляровНаСтранице(2);
Процедура Сформировать(ТаблицаТоваров,Фирма)
   //  Создание Таблицы для выходного отчета
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   
   Столбик = 2;
   Ряд     = 0;

   ТаблицаТоваров.ВыбратьСтроки();
   Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
       ПечРозн    = глФРМ(ТаблицаТоваров.Цена, ТаблицаТоваров.Валюта);
       ПечНаименование    = ТаблицаТоваров.Товар;
       ПечШтрихКод  =ТаблицаТоваров.Единица.ШтрихКод;
       ПечКод    = ТаблицаТоваров.Единица.Владелец.Код;
//            Столбик = Столбик+1;
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       глОживить(1);
   КонецЦикла;
   
   //Вызов выходного отчета в окно просмотра и редактирования.
   Таб.Опции(0,0,0,0,"ПечатьЦенников","ПечатьЦенников");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Таблица","");
   
КонецПроцедуры
34 pers200590
 
09.03.11
09:35
Мне необходимо чтобы одного ценника печаталось на одном листе допустим 5 штук, а он как печатал один так и печататет
35 Rie
 
09.03.11
09:37
(33) И где "по другому"?
Цикл - вон он, в процедуре Сформировать. А тело цикла - вынесено в процедуру ДобавитьЦенник.
Ах да, ещё учитывается разбивка по страницам - которую ты и сам сделал.

Ну так и что у тебя не так получается-то? С чем ты бьёшься-то? Объясни!
36 Rie
 
09.03.11
09:37
(34) Ну так и сделай ещё один цикл вокруг вызова ДобавитьЦенник! И будет тебе счастье и благодарение начальства до скончания веков!
37 Rie
 
09.03.11
09:38
+(36)

Для нРаз=1 По СколькоРазПечататьЭтотНесчастныйЦенник Цикл
   // а вот тут - то, что стоит в теле цикла по ТаблицаТоваров
КонецЦикла;
38 pers200590
 
09.03.11
09:39
Цикл увидел
Я в этом коде бьюсь над тем чтобы при выборе ОДНОЙ ПОЗИЦИИ в форме списка справочника Номенклатуры печаталось 5 одинаковых ценников т.е копий
39 Rie
 
09.03.11
09:40
(38) см. (37)
40 pers200590
 
09.03.11
09:40
(36) +(37) по подробнее можно запутался и +(38) точное формирование
41 1Сергей
 
09.03.11
09:50
ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
42 pers200590
 
09.03.11
10:05
(41) это что мож тож подскажишь
43 pers200590
 
09.03.11
10:05
(41) юмор понял
44 dva1c
 
09.03.11
10:17
(39) занимаешься тем, что разжевываешь и в рот кладешь топикстартеру? +100500
45 dva1c
 
09.03.11
10:19
(43) ВывестиСекцию - это начало столбика
ПрисоединитьСекцию - это горизонтальное продолжение столбика
какие еще вопросы?
46 1Сергей
 
09.03.11
10:19
(43)в каждой шутке...
47 pers200590
 
09.03.11
10:26
(450 вопрос как сделать несколько одинаковых на одном листе
48 Mikeware
 
09.03.11
10:38
Пипец. Бедная контора...
49 dva1c
 
09.03.11
10:42
(47) из (45) совсем ничего не понятно? подними ветку завтра. принесу примеры
(48) +1 может контора и не бедная, но желания у (0) маловато )))
50 Mikeware
 
09.03.11
10:44
(49) Просто это чЮдо ее угробит нахрен. Им проще удаленщика взять. Дешевле выйдет..
51 andrewks
 
09.03.11
10:44
(47) телепатирую: одну и ту же секцию можно вывести n раз
52 dva1c
 
09.03.11
10:46
(47) у тебя макет один. в макете именованные строки и столбцы (одна строка и один столбец). в цикле ты выводишь один и тот же макет. меняешь только ВывестиСекцию или ПрисоединитьСекцию.
количество присоединений и выводов секции подбираешь экспериментально или используя логику.
53 dva1c
 
09.03.11
10:48
(50) жестко, но справедливо ;)
54 pers200590
 
09.03.11
10:51
Все что мне пишут в этой ветке теоретически понятно, вопрос как в коде это осуществить.
Организация не бедная просто нету программеров в нашем городе пытаюсь сам дойти разобраться а помочт не все могут как я понял
ГУД dva1c,    Rie они не когда не бросят в беде
55 pers200590
 
09.03.11
10:55
(50) знаешь что наверно сам такой был готови поспорить
56 1Сергей
 
09.03.11
10:56
(54) ты системщик чтоли?
57 pers200590
 
09.03.11
10:58
(56) свой статус я понять не могу
58 pers200590
 
09.03.11
10:58
можете расжувать по подробнее без теории
59 1Сергей
 
09.03.11
11:00
(58) ты (41) пробовал?
60 dva1c
 
09.03.11
11:31
(58) что конкретно разжевать? почитай чем отличается Вывести от Добавить
61 dva1c
 
09.03.11
11:32
+(60)
ВывестиСекцию
Перенести секцию исходной таблицы-шаблона в результирующую таблицу.
Синтаксис:
ВывестиСекцию(<Секция>)
Англоязычный синоним:
PutSection
Параметры:
<Ceкция>
Выражение типа строка, задающее имя выводи­мой секции, или значение типа секция, полу­ченное при помощи метода ПолучитьСекцию.
Описание:
Метод ВывестиСекцию выполняет перенос именованной секции из исход­ной таблицы-шаблона в результирующую таблицу. Имя секции задается стро­ковым выражением следующего формата:
ИдентификаторСекции1[<|>|-][|ИдентификаторСекции2[<|>|-]]
Символы "<" , ">" , "-" после идентификатора секции указывают на то, что выбирается только часть секции:

<
заголовочная часть (с начала секции до начала вложенной сек­ции).

>
подвальная часть (с конца вложенной секции до конца секции).


средняя часть (собственно вложенная секция).


В выражении <Секция> можно задавать имена двух секций, разделенных зна­ком "|". При этом перенесена будет область исходной таблицы, являющаяся пересечением первой и второй указанных секций. При этом одна секция может быть горизонтальной (состоять из строк), а другая — вертикальной (состоять из колонок). В результате перенесется прямоугольная область таблицы.

Если в качестве параметра метода задано строковое значение имени секции, то при переносе ячейки таблицы, имеющие тип «Шаблон» и «Выражение», будут заполнены соответствующими данными.

Метод ВывестиСекцию помещает новую секцию со следующей строки вслед за последней выведенной секцией, начиная с первой колонки.
62 Mikeware
 
09.03.11
11:33
(61) Тебя ж просили "без теории" :-))
63 dva1c
 
09.03.11
11:33
+(61)
ПрисоединитьСекцию
Присоединить секцию исходной таблицы-шаблона к результирующей таблице.

Синтаксис:

ПрисоединитьСекцию(<Секция>)

Англоязычный синоним:

AttachSection

Параметры:

<Секция> Выражение типа строка, задающее имя выводи­мой секции, или значение типа секция, получен­ное при помощи метода ПолучитьСекцию.

Возвращаемое значение: Нет.

Описание:

Метод ПрисоединитьСекцию выполняет присоединение именованной сек­ции из исходной таблицы-шаблона к результирующей таблице. Имя секции задается строковым выражением следующего формата:

ИдентификаторСекции1[<|>|-][|ИдентификаторСекции2[<|>|-]]

Символы "<" , ">" , "-" после идентификатора секции указывают на то, что выбирается только часть секции:

<
заголовочная часть (с начала секции до начала вложенной сек­ции).

>
подвальная часть (с конца вложенной секции до конца секции).


средняя часть (собственно вложенная секция).


В выражении <Секция> можно задавать имена двух секций, разделенных зна­ком "|". При этом перенесена будет область исходной таблицы, являющаяся пересечением первой и второй указанных секций. При этом одна секция может быть горизонтальной (состоять из строк), а другая — вертикальной (состоять из колонок). В результате перенесется прямоугольная область таблицы.

Если в качестве параметра метода задано строковое значение имени секции, то при переносе ячейки таблицы, имеющие тип «Шаблон» и «Выражение», будут заполнены соответствующими данными.

Метод ПрисоединитьСекцию помещает новую секцию в следующей ко­лонке, правее последней ранее выведенной секции. При этом секция, переда­ваемая в качестве параметра метода ПрисоединитьСекцию, должна иметь прямоугольную форму, т. е. задаваться как пересечение горизонтальных и вер­тикальных секций.
64 dva1c
 
09.03.11
11:34
(61) а без теории смысла нет браться что-нибудь делать. )))
65 pers200590
 
09.03.11
11:35
(60) Ну прочитал
66 Rie
 
09.03.11
11:35
Что?! До сих пор?!!
67 dva1c
 
09.03.11
11:35
(64) -> (62)
68 pers200590
 
09.03.11
11:36
что далее в коде .Что экспериментировать с секциями
69 pers200590
 
09.03.11
11:37
в теории от понятно мне толчок в коде
70 ildary
 
09.03.11
11:40
(67) пациент тебя разводит в духе Светы Семененко.
71 1Сергей
 
09.03.11
11:41
Процедура Сформировать(ТаблицаТоваров,Фирма)
   //  Создание Таблицы для выходного отчета
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   
   Столбик = 2;
    Ряд     = 0;

    ТаблицаТоваров.ВыбратьСтроки();
    Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
       ПечРозн    = глФРМ(ТаблицаТоваров.Цена, ТаблицаТоваров.Валюта);
       ПечНаименование    = ТаблицаТоваров.Товар;
       ПечШтрихКод  =ТаблицаТоваров.Единица.ШтрихКод;
       ПечКод    = ТаблицаТоваров.Единица.Владелец.Код;
//            Столбик = Столбик+1;
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
       ДобавитьЦенник(Таб, Фирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд, ПечШтрихКод, ПечКод);
        глОживить(1);
   КонецЦикла;
   
   //Вызов выходного отчета в окно просмотра и редактирования.
   Таб.Опции(0,0,0,0,"ПечатьЦенников","ПечатьЦенников");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Таблица","");
   
КонецПроцедуры
72 dva1c
 
09.03.11
11:41
(65) попробуй вообразить: как платформа 1С работает со встроенным языком, макетами и т.п.
с помощью встроенного языка ты "заставляешь" программу 1С что-нибудь сделать. в макете хранятся форма нужного ценника.
твоя задача: на встроенном языке тебе нужно "объяснить" платформе - как выводить "ценник-макет".
чтобы научиться "объяснять" платформе - нужно выучить язык!
73 dva1c
 
09.03.11
11:43
(70) а ты видел его посты? (0) как Матросов "грудью - на амбразуру" или "не зная броду - суется в воду" и т.д., и т.п. ))))))))
74 vasilii85
 
09.03.11
11:46
Автор просто издевается.
75 pers200590
 
10.03.11
06:52
А по серьезному кто нибудь поможет с кодом  в (33)
76 dva1c
 
10.03.11
07:22
(75) вчера смотрел, дома ничего готового нет. сделай сам. голова ведь есть.
готовое будешь ждать очень долго.
77 1Сергей
 
10.03.11
07:23
(75) ты просто сказочный персонаж какой-то