gifts2017

Прайс-лист в два столбика

Опубликовал Евгений Б (johnicjs) в раздел Обработки - Ценообразование, прайсы

Прайс-лист формируется в два столбика, что очень удобно при большом количестве номенклатуры.

Прайс-лист формируется в два столбика, что очень удобно при большом количестве номенклатуры.

Скачать файлы

Наименование Файл Версия Размер
Прайс-лист в два столбика 190
.epf 11,23Kb
12.04.13
190
.epf 11,23Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Евгений Б (johnicjs) 21.01.10 15:55
Есть небольшие недостатки, но таков был заказ.
Например, попадает вся номенклатура (даже если помечена на удаление или неустановлена цена). Но это передалать просто.

:!: P.S. Кому понравится поставте плюсы.
2. АнкаЯ (akozhuhova) 21.01.10 16:13
При выполнении выдает ошибку, если количество строк, к примеру 10, это нормально? :o
Ошибка при вызове метода контекста (Область): Область не найдена: R1C1:R0C5
ТД1.ВставитьОбласть(ТД2.Область("R1C1:R"+Строка(Строк-10)+"C5"),Тд1.Область("R1C7:R"+Строка(Строк-10)+"C11"));
johnicjs; +1 Ответить
3. Евгений Б (johnicjs) 21.01.10 16:33
:!: Спасибо,исправил.
Количество строк, была заданно для подгонки под хитрую модель принтера заказчика (что-то китайское). Как-то и в голову не приходило ставить так мало.
4. АнкаЯ (akozhuhova) 21.01.10 16:54
5. Александр (dobraleks) 21.01.10 17:24
есть ли возможность сделать 2 столбика для 77??
6. Евгений Б (johnicjs) 21.01.10 17:26
Написанной у меня нет, так что только заказать :(
Поищите, тут возмозно есть готовая.
7. Александр (dobraleks) 21.01.10 17:30
:D вау, какая оперативность на ответ.. (2 минуты и 3 сек :) )
8. Евгений Б (johnicjs) 21.01.10 17:32
У меня майлагент стоит, инфостарт оповещение сразу присылает :D
9. Александр Рытов (Арчибальд) 21.01.10 17:33
10. Роман Ершов (MRAK) 21.01.10 18:00
(9) да вопрошающий в 5 хотел уже готовую...
11. Евгений (Berrimor) 22.01.10 06:07
(5) есть готовое, но хитро заточенное под переделанную ТИС, есть интерес обсудим



в начале содержание с номерами страниц - по желанию пользователя, корректные переносы внутри группы, разрыв группы при переходе на новую страницу, короче до фига всего правильного
12. Юрий Ульянов (spy-83) 22.01.10 07:15
(5) Есть готовая для типовой ТиС
13. Евгений Б (johnicjs) 25.01.10 19:06
Давайте, хоть тут не будем торговать.
14. федор алябьев (coolo) 20.09.11 11:37
Интересная реализация, на основании этой делал и на три столбика, Единственное не придумал как реализовать не построчный вывод... а как бы змейкой чтоб шло не слева направо по алфавиту а сверху вниз... ппервый столбик, второй столбик итд
15. Александр (rc.d) 16.02.12 16:52
Отличная обработка, очень пригодилась! Немного допилил под свои нужды, но в целом прекрасно!
16. Евгений Б (johnicjs) 16.02.12 17:39
(15) Спасибо, приятно когда ценят работу.
17. Александр (rc.d) 17.02.12 08:15
Есть вопросец. К сожалению, руки не доходят запилить сортировку. Можете доработать? Например, по коду или артикулу? У нас в прайс-листе такой ахтунг творится, что без сортировки никак.
18. Александр (rc.d) 17.02.12 10:08
Кроме того, строчный параметр в связке с шапкой прайса создает внушительный косяк при печати. Скрины прилагаю. Строк указано 60.
Как можно видеть, строка заголовка прыгает по страницам в зависимости от ширины и толщины, что мешает печатать его в таком виде, а алгоритм расчета нужных строк пока не додумал.
Прикрепленные файлы:
19. Евгений Б (johnicjs) 17.02.12 10:17
(18) Этот прайс был написан очень давно и подгонялся под китайский неизвестный принтер. Там все отрабатывало хорошо.
20. Александр (rc.d) 17.02.12 10:26
Кстати, никак не могу понять, не так силен в программировании, вот у меня товар есть, а цены к нему нет, хочу поставить вместо пустого поля слово "Заказ", но как я не пытался в вашем коде поменять в ОблСтроки.Параметры.Цена ноль на "Заказ", так ничего и не получилось. Почему так и можно ли подправить?
==============================
Если Не Результат.Количество()=0 Тогда
Пока Результат.Следующий() Цикл
//Цену нашли, выводим
ОблСтроки.Параметры.Цена=Результат.Цена;
КонецЦикла;
Иначе
ОблСтроки.Параметры.Цена=0;
КонецЕсли;
==============================
Заранее спасибо.
21. Евгений Б (johnicjs) 17.02.12 11:00
(20), в свойствах макета на эту ячейку стоит, что она содержит тип число и его формат. Если менять, то нужно поставить там тип строка и цену передавать уже отформатированной строкой.
22. Александр (rc.d) 17.02.12 11:02
23. Евгений Б (johnicjs) 17.02.12 11:11
(22) Не за что, если не получится обращайтесь, доработаю. Думаю договоримся.
24. Александр (rc.d) 17.02.12 11:55
Поменял, все отлично отображает, только теперь копеек нет, но это не проблема, их всё равно нет :) В заголовке написал "Цены с НДС, руб.", думаю народ поймет.
Теперь другая засада: в вашей обработке построение столбцов делается поочередно Вот у меня 60 страниц прайса, первая половина номенклатуры выстраивается вертикально через весь столбец. То есть идут у меня трубы стальные по артикулу 1010-хххх и идут они у меня и на второй странице, и на третьей, и так далее, а за ними 1020 также ползут и так до 60й, а потом с первой 1080 и так далее. То есть фактически у меня прайс не упорядочен, ибо на одной странице оказываются совершенно разные товары.
Сначала нужно что-то делать с шапкой, ибо первой странице она делает подставу и количество строк, применимое к этой странице делает все остальные расстановки кривыми. Столбцы же должны заполняться поочередно на каждой странице.
Решение видится такое.
Создать два параметра строк:
1. Под первую страницу - высчитывать необходимое число строк эмпирическим путем, чтобы пользователь сам определял сколько ему нужно.
2. Под все остальные - опять же индивидуальным подсчетом.
При решении сих проблем возникнет другая. Как считать число строк в случаях, когда наименование товара длиннее отведенной ему строки, и строка будет перенесена? А таких строк на каждой странице тучи! А страниц тоже туча! Вот тут голова пока ничего не придумала, разве что ручное запиливание. Надо бы это твопрос внимательней рассмотреть, тогда вашей обработке цены не будет))

Upd: придумал указывать фиксированно в макете высоту строк равной 20, получается неплохо, теперь остается решить вопрос с количествами строк.
25. Евгений Б (johnicjs) 17.02.12 12:51
(24),
1) В ценах отрубаются последние нули, потому нет копеек, нужно ОблСтроки.Параметры.Цена=Результат.Цена; Заменить на ОблСтроки.Параметры.Цена=Формат(Результат.Цена,"ЧЦ=15; ЧДЦ=2");
2) Не помню, больше двух лет прошло, а писалось и того раньше, что-то у вас напутано с настройками, 2 столбец должен начинаться с конца текущего листа. Иначе бы заказчик не принял бы обработку.
3) Динамическая ширина строк не выйдет, т.к. будут накладки если разная ширина в разных столбцах. Да и пиксели считать не самое веселое занятие.

Еще раз повторюсь, что прайс писался давно и под конкретного заказчика.
26. Александр (rc.d) 17.02.12 14:54
Да, виноват, уже разобрался, все работает правильно и отлично!
Теперь другой вопрос, в каком месте кода подправить значения, чтобы я мог удалить шапку совсем?
Вижу, что у вас в условиях стоит 11 строка, на которой начинается группа.
Сдвинул условия на 10 строку, теперь сползает второй столбец, причем только на первой странице. Картинку прилагаю.
Походу надо менять количество рядов в расчете второго столбца, но так и не понял где на 100й строке значение менять:
ТД1.ВставитьОбласть(ТД2.Область("R1C1:R"+Строка(Строк-10)+"C5"),Тд1.Область("R1C7:R"+Строка(Строк-10)+"C11"));
Прикрепленные файлы:
27. Евгений Б (johnicjs) 17.02.12 15:16
(26) Все просто, уберите шапку и вывод для первой страницы.
28. Александр (rc.d) 20.02.12 08:10
А не подскажете, как это сделать? как я уже упоминал, не силен в программировании. Не смог точно определить где заканчивается вывод первой страницы.
UPD: пока "полечил" тем, что сделал текст в шапке белым, на печать не попадает, уже хорошо.
И второй более важный для меня вопрос. У нас в прайсе оптовая с ндс цена не хранится в базе, а рассчитывается, при выводе прайса на печать обработка выдает пустые значения, и поэтому я выставляю оптовую. Как сделать так, чтобы цена с ндс посчиталась при выполнении? То есть по факту надо оптовую, которая пришла в обработку, умножить на 1,18.
Вы уж извините, что так насел, но на курсы по 1С я поеду только через неделю, а решать подобные задачи надо уже сейчас. Заранее спасибо за помощь!
29. Алексей (ASoft) 20.02.12 21:27
30. Александр (rc.d) 21.02.12 13:14
Всё, все вопросы решены. Спасибо за помощь!
31. Александр (rc.d) 21.02.12 13:26
Ан нет, последний вопросец вспомнился. Так сортировку желательно сделать по артикулу, но не знаю как. Обработка граббит коды товаров и прямо подряд их гонит. А как поменять принцип сортировки?
32. Евгений Б (johnicjs) 21.02.12 13:39
(31), если не изменяет память, то там идет прямой обход справочника. В данном случае, скорее никак, переделать на запрос только.
35. ProGramMoS ProGramMoS (ProGramMoS) 04.09.12 09:16
Спасибо все разобрался)))
36. RosT Posterman (RosT_Dnepr) 06.08.13 14:34
Учитывая когда была написана обработка, то она до сих пор актуальна.
Заточил под новую версию 1С и немного доработал под себя.
Автору спасибо, не пришлось писать с нуля))