Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: 1C - отчет, штрих коды.  (Прочитано 5292 раз)
0 Пользователей и 1 Гость смотрят эту тему.
bamchi
Гость
« : 18-02-2010 11:22 » 

в конфигурации Торговля и склад, есть отчет. Отчеты-> товары-> остатки товаров.
стояло две задачи, в сформированном отчете сделать сортировку по группам товара и по цене.

Код:

        Запрос=СоздатьОбъект("Запрос");
ТекстЗапроса="";
ТекстЗапроса= ТекстЗапроса+"                         
|ПЕРИОД С ДатаКонца По ДатаКонца;
|Фирма=Регистр.ОстаткиТоваров.Фирма;
|Склад=Регистр.ОстаткиТоваров.Склад;
|Товар=Регистр.ОстаткиТоваров.Товар;
|Кол=Регистр.ОстаткиТоваров.ОстатокТовара;

|Группировка Товар Упорядочить по Товар.УчетнаяЦена"+?(ПоказатьОстатки.ТекущаяСтрока()>=2," Все","")+";
//  |Группировка Товар Упорядочить по Товар.Наименование"+?(ПоказатьОстатки.ТекущаяСтрока()>=2," Все","")+"; //так было раньше
|Группировка Склад Все ВошедшиеВЗапрос;
|Функция КонКол=КонОст(Кол);
|Условие (Фирма=глПустаяФирма);";

При правке Упорядочить товар по наименованию, на учетная цена, происходит сортировка по цене, но переодически по тексту отчета встречается
  • товар 100руб
  • товар 110руб
  • товар 120руб
  • товар 170руб
  • товар 130руб
  • товар 180руб
хотя  никакой закономерности выявить не удалось
Вопрос - почему так может быть.


Вопрос номер два:
В том же самом отчете необходимо напротив каждого товара вывести его штрих-код, для формирования штрих-кода используется  barcode.ocx
Сейчас у меня выводится с таком виде:
наименование товара шт  цена     штрихкод         
Велосипед                    100500руб2000001419014

а интересно, что необходимо дописать, что бы формировался сам штрих-код(черточки - полосочки)


Код:
     // получим параметры цены

ЦенаЦены = ЦенаТовара.Цена.Получить(ДатаКонца);
ПечЦена = ЦенаЦены;                                               
ПечСумма = Число(ПечОстаток)*ЦенаЦены;
ОбщС = ОбщС + Число(ПечСумма);
      //   ВыбТовар=(Запрос.Товар.ШтрихКод);
     // АВС=СоздатьОбъект("BARCODE.BarcodeCtrl.1");
    // ПечШтрихкод=Строка(ШтрихКод);
       
    ПечШтрихкод=(Запрос.Товар.ШтрихКод); // этот запрос формирует мне цифровой штрихкод
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 18-02-2010 16:51 » 

Вопрос 1: не понятно где и какую цену ты выводишь - может в выводе у тебя участвует не учетная цена, а что-то другое?
Вопрос 2: с barcode.ocx не работал - я использую бесплатные barcode шрифты
Судя по цифрам - у тебя обычный ЕАН-13, для его перевода в шрифт EANJK я использую следующую функцию:
Код:
// ===============================
Функция глШКодЕАН13(Знач Стр) Экспорт
Перем С, С2, Ч, Режим, И1;

С2="";
// 290 - внутренний код, согласно http://ean.ua/uk/eanucc/vn_code.csp
//С="290"+глКод9Цифр(Стр);

С=глПроверитьШКод(Стр); // Имеем полный код ЕАН из 13 цифр

Режим=ЕАН[Число(Лев(С,1))+1]+"AAAAAA";
С=Сред(С,2); // убираем первую цифру;

Для И1=1 По СтрДлина(С) Цикл
С2=С2+Симв(КодСимв(Сред(Режим,И1,1))+Число(Сред(С,И1,1)));
КонецЦикла;

С2="|"+Лев(С2,6)+"-"+Сред(С2,7)+"|";

Возврат С2;
КонецФункции

// где:
ЕАН[1] ="000000"; ЕАН[2] ="00a0aa"; ЕАН[3] ="00aa0a"; ЕАН[4] ="00aaa0"; ЕАН[5] ="0a00aa";
ЕАН[6] ="0aa00a"; ЕАН[7] ="0aaa00"; ЕАН[8] ="0a0a0a"; ЕАН[9] ="0a0aa0"; ЕАН[10]="0aa0a0";

Соответственно:
Код:
ПечШтрихкод=глШКодЕАН13(Запрос.Товар.ШтрихКод);

А для колонки на печатной форме должен быть установлен шрифт EAN JK или EAN JK Auto, проинсталированные из прикрепренного архива

* barfonts-1.0.zip (165.33 Кб - загружено 239 раз.)
Записан
Глория
Интересующийся

by
Offline Offline

« Ответ #2 : 24-02-2010 21:10 » 

|Группировка Товар Упорядочить по Товар.УчетнаяЦена"+?(ПоказатьОстатки.ТекущаяСтрока()>=2," Все","")+";

Что дает +?(ПоказатьОстатки.ТекущаяСтрока()>=2," Все","")+"?? Может ее следует вовсе убрать.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines