• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Guest
  • Дата начала
G

Guest

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

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

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

При правке Упорядочить товар по наименованию, на учетная цена, происходит сортировка по цене, но переодически по тексту отчета встречается
  1. товар 100руб
  2. товар 110руб
  3. товар 120 руб
  4. товар 170руб
  5. товар 130руб
  6. товар 180руб

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


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

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


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

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

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

Guest

Посмотри обработку ПечатьЭтикетки и сделай по аналогии


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

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

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

подскажите что выдрать отсюда
 
E

evgenyatam

в печати этикетки основная суть не в модуле, а на макете. там вставлен элемент ActiveBarcode.
 
Д

Дайнеко

Вопрос номер два:
...
Сейчас у меня выводится с таком виде:
наименование шт цена штрихкод
Велосипед 100 500руб 2000001419014

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

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!