1c - отчет, штрих коды.

Тема в разделе "1C и всё что с ней связано", создана пользователем -, 18 фев 2010.

  1. Гость

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

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

    |Группировка Товар Упорядочить по Товар.УчетнаяЦена"+?(ПоказатьОстатки.ТекущаяСтрока()>=2," Все","")+";
    //   |Группировка Товар Упорядочить по Товар.Наименование"+?(ПоказатьОстатки.ТекущаяСтрока()>=2," Все","")+"; //так было раньше
    |Группировка Склад Все ВошедшиеВЗапрос;
    |Функция КонКол=КонОст(Кол);
    |Условие (Фирма=глПустаяФирма);";
    При правке Упорядочить товар по наименованию, на учетная цена, происходит сортировка по цене, но переодически по тексту отчета встречается
    1. товар 100руб
    2. товар 110руб
    3. товар 120 руб
    4. товар 170руб
    5. товар 130руб
    6. товар 180руб

    хотя никакой закономерности выявить не удалось
    Вопрос - почему так может быть.


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

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


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

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

    ПечШтрихкод=(Запрос.Товар.ШтрихКод); // этот запрос формирует мне цифровой штрихкод
     
  2. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Посмотри обработку ПечатьЭтикетки и сделай по аналогии
     
  3. Гость


    Код (Text):
    //******************************************************************************
    // Название: ПечатьЭтикетки()
    // Параметры:
    // НЕТ
    // Возвращаемое значение:
    // НЕТ
    // Вызывается из формул элемента диалога:
    // кнопка "Этикетка"
    // НЕТ
    // Описание:
    // создание печатной формы этикетки со штрихкодом
    // Если текущий элемент группа, то выдается предупреждение
    Процедура ПечатьЭтикетки()
    // печать этикетки использует компонент ActiveX
    // разработки фирмы Shenk&Horn - ActiveBarcode версии 3.50
    ВыбТовар=ТекущийЭлемент();
    Если ВыбТовар.ЭтоГруппа()=1 Тогда
    Предупреждение("Укажите товар, а не группу");
    Возврат;
    КонецЕсли;
    Если ПустоеЗначение(ШтрихКод)=1 Тогда
    Предупреждение("Не задан штрих код товара");
    Возврат;
    КонецЕсли;
    Попытка
    АВС=СоздатьОбъект("BARCODE.BarcodeCtrl.1");
    Исключение
    Предупреждение(ОписаниеОшибки()+РазделительСтрок
    +"Компонент ActiveBarcode не установлен на данном компьютере!"+РазделительСтрок
    +"Порядок установки компоненты ActiveBarcode описан в документации.");
    Возврат;
    КонецПопытки;
    // Создание Таблицы для выходного отчета
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Этикетка");

    ПечНаименование=Наименование+"; "+БазоваяЕдиница;
    ПечШтрихКод=Строка(ШтрихКод);
    Таб.ВывестиСекцию("Товар|Этикетка");

    //Вызов выходного отчета в окно просмотра и редактирования.
    Таб.Опции(0,0,0,0,ПарСтрСпр);
    Таб.Защита(Константа.ФлагЗащитыТаблиц);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Этикетка","");
    ВыбТовар=0;
    КонецПроцедуры
    подскажите что выдрать отсюда
     
  4. evgenyatam

    evgenyatam Well-Known Member

    Регистрация:
    7 сен 2007
    Сообщения:
    175
    Симпатии:
    0
    в печати этикетки основная суть не в модуле, а на макете. там вставлен элемент ActiveBarcode.
     
  5. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    По второму вопросу объяснили, но уточню: на макете размещен прямоугольничек OLE-объекта. Нужно посмотреть его свойства. Не удержусь поворчать по поводу приведенного примера. Надо показывать людям не мусор про цены и суммы, а указал бы как выводишь данные.

    По первому. Может это так выводятся группы товаров. Т.е. группа1 и ее цены, затем группа2 (а вней 1 строка). Для проверки гипотезы напиши:
    |Группировка Товар Упорядочить по Товар.УчетнаяЦена БЕЗ ГРУПП;
     
Загрузка...

Поделиться этой страницей