![]() |
![]() |
![]() |
|
Проблема с ценником | ☑ | ||
---|---|---|---|---|
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) ты просто сказочный персонаж какой-то
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |