Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка при печати штрихкодов

Ошибка при печати штрихкодов
Я
   sergqwert
 
04.09.18 - 21:47
При печати штрихкодов из карточки номенклатуры возникает ошибка: По выбранным условиям отбора не найдено ни одного товара со штрихкодом. В чем причина?

Процедура ПечатьЭтикетокBersek(Товар = Неопределено) Экспорт 

ТЗТоваров = Неопределено; 
ОбработкаПечати = Обработки.ПечатьЭтикетокBerSerk.Создать(); 
ОбработкаПечати.ЗаполнитьТовары(Товар,ТЗТоваров); 
ОбработкаПечати.ПечатьBerserk(ТЗТоваров); 

КонецПроцедуры// ПечатьЭтикеток() 



Процедура ЗаполнитьТовары(ТоварыНоменклатуры, Товары) Экспорт 

//++ 

ВнешнийЭлементНоменклатуры = Неопределено; 
ФорматЭтикетки = 1; 
ШиринаЭтикетки    = 52; 
ВысотаЭтикетки    = 71; 
ТипШтрихкода    = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; 
ПечататьЦену    = Ложь; 
ТипЦены    = Справочники.ТипыЦенНоменклатуры.ПустаяСсылка(); 
Единица    = Неопределено; 
Качество    = Неопределено; 
Валюта    = Неопределено; 
ВВалютахЦен    = Истина; 
Характеристика = Неопределено; 
Характеристики    = Ложь; 
ХарактеристикиЗаполненные = Ложь; 
ТолькоВнутренние = Ложь; 
Серии    = Ложь; 
СерииЗаполненные = Ложь; 
//-- 


Если ПечататьЦену И Не ЗначениеЗаполнено(ТипЦены) Тогда 
Если ВнешнийЭлементНоменклатуры <> Истина Тогда 
Сообщить ("Не указан тип цен!"); 
КонецЕсли; 
Возврат; 
КонецЕсли; 

ЗапросШтрихкоды = Новый Запрос; 
ЗапросШтрихкоды.УстановитьПараметр("ТипШтрихкода", ТипШтрихкода); 
ЗапросШтрихкоды.УстановитьПараметр("Владелец", ТоварыНоменклатуры); 
ЗапросШтрихкоды.УстановитьПараметр("ХарактеристикаНоменклатуры", Характеристика); 
ЗапросШтрихкоды.УстановитьПараметр("ЕдиницаПоКлассификатору", Единица); 
ЗапросШтрихкоды.УстановитьПараметр("ПустаяСерия", Справочники.СерииНоменклатуры.ПустаяСсылка()); 
ЗапросШтрихкоды.УстановитьПараметр("Качество", Качество); 
ЗапросШтрихкоды.УстановитьПараметр("ТипШтрихкода", ТипШтрихкода); 
ЗапросШтрихкоды.УстановитьПараметр("ТипыШтрихкода", Новый Массив);//++ ЭлементыФормы.ТипШтрихкода.СписокВыбора 

ЗапросШтрихкоды.УстановитьПараметр("ЭтоГруппа", Истина); 
ЗапросШтрихкоды.УстановитьПараметр("Дата", ТекущаяДата()); 
ЗапросШтрихкоды.УстановитьПараметр("Валюта", Валюта); 

Если НЕ ВВалютахЦен Тогда 
Если НЕ ЗначениеЗаполнено(Валюта)Тогда 
Предупреждение("Не указана валюта для заполнения цен!"); 
Возврат; 
КонецЕсли; 
КурсВалюты = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ТекущаяДата(), Новый Структура("Валюта", Валюта)); 
Если КурсВалюты.Курс = 0 тогда 
Предупреждение("Курс валюты отчета """ + Валюта.Наименование+""" на дату " + 
строка(ТекущаяДата())+" не определен или нулевой. Формирование этикеток невозможно."); 
Возврат; 
КонецЕсли; 

Если КурсВалюты.Кратность = 0 тогда 
Предупреждение("Кратность курса валюты отчета """ + Валюта.Наименование+""" на дату " + 
строка(ТекущаяДата())+" не определена или нулевая. Формирование этикеток невозможно."); 
Возврат; 
КонецЕсли; 
ЗапросШтрихкоды.УстановитьПараметр("КурсВалюты", КурсВалюты.Курс); 
КонецЕсли; 


Если ТипЦены.Рассчитывается Тогда 
ТипЦенБазовый = ТипЦены.БазовыйТипЦен; 
ПорядокОкругления = ТипЦены.ПорядокОкругления; 
ОкруглятьВБольшуюСторону = ТипЦены.ОкруглятьВБольшуюСторону; 
ПроцентСкидкиНаценки = ТипЦены.ПроцентСкидкиНаценки; 
ЗапросШтрихкоды.УстановитьПараметр("ТипЦены", ТипЦенБазовый); 
ЗапросШтрихкоды.УстановитьПараметр("ТипЦенРасчетный", ТипЦены); 
Иначе 
ЗапросШтрихкоды.УстановитьПараметр("ТипЦены", ТипЦены); 
КонецЕсли; 

Текст = "ВЫБРАТЬ 
|    Штрихкоды.ТипШтрихкода, 
|    Штрихкоды.Штрихкод, 
|    Штрихкоды.ПредставлениеШтрихкода, 
|    Штрихкоды.Владелец КАК Номенклатура, 
|    Штрихкоды.ЕдиницаИзмерения, 
|    Штрихкоды.ХарактеристикаНоменклатуры КАК Характеристика, 
|    Штрихкоды.СерияНоменклатуры КАК Серия, 
|    Штрихкоды.Качество, 
|    ПОДСТРОКА(Штрихкоды.Владелец.Код, 4, 6) КАК SKU, 
|    Штрихкоды.ХарактеристикаНоменклатуры КАК SIZE, 
|    ВЫБОР 
|    КОГДА Цены.Цена ЕСТЬ NULL 
|    ИЛИ Цены.Цена = 0 
|    ТОГДА 0 
|    ИНАЧЕ Цены.Цена 
|    КОНЕЦ КАК Цена, 
|    Цены.ЕдиницаИзмерения КАК ЦеныЕдиница, 
|    Цены.Валюта КАК Валюта, 
|    Цены.ТипЦен КАК ТипЦен, 
|    1 КАК Количество 
|ИЗ 
|    РегистрСведений.Штрихкоды КАК Штрихкоды 
|    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 
|    Рег.Номенклатура.Ссылка КАК Номенклатура, 
|    Рег.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, 
|    Рег.ТипЦен.Ссылка КАК ТипЦен, 
|    Рег.Цена КАК Цена, 
|    Рег.ЕдиницаИзмерения КАК ЕдиницаИзмерения, 
|    Рег.Валюта КАК Валюта 
|    ИЗ 
|    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &ТипЦены) КАК Рег) КАК Цены 
|    ПО Штрихкоды.Владелец = Цены.Номенклатура 
|    И Штрихкоды.ХарактеристикаНоменклатуры = Цены.ХарактеристикаНоменклатуры 
|ГДЕ 
|    Штрихкоды.Владелец.ЭтоГруппа <> &ЭтоГруппа 
|    И Штрихкоды.ТипШтрихкода = &ТипШтрихкода 
|    И Штрихкоды.Владелец = &Владелец 
|    И Штрихкоды.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры 
| 
|УПОРЯДОЧИТЬ ПО 
|    Штрихкоды.Владелец 
|АВТОУПОРЯДОЧИВАНИЕ"; 
ЗапросШтрихкоды.Текст = Текст; 
Товары = ЗапросШтрихкоды.Выполнить().Выгрузить(); 
Если ЗначениеЗаполнено(ТипЦены) Тогда 
Если ТипЦены.Рассчитывается Тогда 
ВалютаРасчетная = ТипЦены.ВалютаЦены; 
КонецЕсли; 
КонецЕсли; 
Курс = Неопределено; 
Кратность = Неопределено; 
Для Каждого СтрокаТовара ИЗ Товары Цикл 
Если ЗначениеЗаполнено(ТипЦены) Тогда 
Если ЗначениеЗаполнено(СтрокаТовара.Цена) Тогда 
Если ТипЦены.Рассчитывается Тогда 
ВалютаТекущая = СтрокаТовара.Валюта; 
ПолученнаяЦена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(СтрокаТовара.Цена, ВалютаТекущая, ВалютаРасчетная, Курс, Кратность, ТекущаяДата()); 
ПроцентСкидкиНаценки = ? (НЕ ЗначениеЗаполнено(СтрокаТовара.ПроцентСкидкиНаценки), 
ПроцентСкидкиНаценки, СтрокаТовара.ПроцентСкидкиНаценки); 
ПолученнаяЦена = ПолученнаяЦена * (1 + ПроцентСкидкиНаценки / 100); 

Иначе 
ПолученнаяЦена = СтрокаТовара.Цена; 
КонецЕсли; 

ПолученнаяЦена = Ценообразование.ОкруглитьЦену(ПолученнаяЦена, ТипЦены.ПорядокОкругления, ТипЦены.ОкруглятьВБольшуюСторону); 

СтрокаТовара.Цена = ПолученнаяЦена; 
Если ТипЦены.Рассчитывается Тогда 
СтрокаТовара.Валюта = ВалютаРасчетная; 
КонецЕсли; 

Если НЕ ВВалютахЦен 
И Валюта <> СтрокаТовара.Валюта Тогда 
ПолученнаяЦена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(СтрокаТовара.Цена, СтрокаТовара.Валюта, Валюта, 0, 1, ТекущаяДата()); 
СтрокаТовара.Цена = ПолученнаяЦена; 
СтрокаТовара.Валюта = Валюта; 
КонецЕсли; 

КонецЕсли; 
КонецЕсли; 
КонецЦикла; 

//++ 

//Товары.ЗаполнитьЗначения(КоличествоКопий, "Количество"); 
//-- 


Если Товары.Количество() = 0 тогда 
Предупреждение("По выбранным условиям отбора не найдено ни одного товара со штрихкодом.");
КонецЕсли; 

КонецПроцедуры
 
 
   Михаил Козлов
 
1 - 04.09.18 - 21:57
Причина в том, что по выбранным условиям отбора не найдено ни одного товара со штрихкодом.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует