![]() |
|
Некорректно отрабатывает функция "сообщить" | ☑ | ||
---|---|---|---|---|
0
KamFolc
16.07.19
✎
14:48
|
Коллеги, добрый день. Немного доработана обработка печать ценника. Цель была добавить в ценник штрих-код. Вроде все хорошо, но есть небольшая проблема. При формировании печатной формы, не все товары имеют штрих-код. Предполагается, что о номенклатуре без ШК будет выдано соответствующее оповещение. Но функция срабатывает немного не так как надо. Если в отборе 3 товара, два из которых не имеют ШК (1 и 3). Информация о отсутствии ШК будет выведена только по первому. В случае печати всех ценников без ШК (все 3 без ШК), все ок. Получается, что сообщение прерывается для номенклатуры которая находится после товара с штрих-кодом. Подскажите, как это можно исправить? Конфигурация: УТ 10.3
[spoiler] Запрос = Новый Запрос( "ВЫБРАТЬ | РегШК.Штрихкод КАК ШтрихКод, | РегШК.ПредставлениеШтрихкода, | РегШК.ТипШтрихкода |ИЗ | РегистрСведений.Штрихкоды КАК РегШК |ГДЕ | РегШК.Владелец = &Владелец"); Запрос.УстановитьПараметр("Владелец", СтрокаТаблицы.Номенклатура); Результат = Запрос.Выполнить(); Выборка=Результат.Выбрать(); Штрихкод = ""; ПредставлениеШтрихкода = ""; ТипКода = ""; Пока выборка.Следующий() Цикл Штрихкод = выборка.ШтрихКод; ПредставлениеШтрихкода = Выборка.ПредставлениеШтрихкода; ТипШтрихкода= Выборка.ТипШтрихкода; КонецЦикла; ТипКода = ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипШтрихкода); Если ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода = ТипКода; ОбластьЦенника.Рисунки.Штрихкод.Объект.Сообщение = ?(ПустаяСтрока(ПредставлениеШтрихкода), Штрихкод, ПредставлениеШтрихкода); ОбластьЦенника.Рисунки.Штрихкод.Объект.ОтображатьТекст = истина; ИначеЕсли ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code39 тогда ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода = ТипКода; ОбластьЦенника.Рисунки.Штрихкод.Объект.Сообщение = ?(ПустаяСтрока(ПредставлениеШтрихкода), Штрихкод, ПредставлениеШтрихкода); ОбластьЦенника.Рисунки.Штрихкод.Объект.ОтображатьТекст = истина; ИначеЕсли ТипШтрихкода <> ПланыВидовХарактеристик.ТипыШтрихкодов.Code39 или ТипШтрихкода <> ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 тогда ОбластьЦенника.Рисунки.Штрихкод.Объект.ТипКода = 1; ОбластьЦенника.Рисунки.Штрихкод.Объект.ОтображатьТекст = ложь; //ОбластьЦенника.Рисунки.Штрихкод.Объект.Сообщение = "123456789128"; Сообщить("Для арт. " + СтрокаТаблицы.Артикул + " " + СтрокаТаблицы.Номенклатура + " штрихкод не задан или не соответствует типу EAN13 или Code39"); КонецЕсли; //конец изменений Если ТекСтолбец = 0 Тогда ТабДокумент.Вывести(ОбластьЦенника); Иначе ТабДокумент.Присоединить(ОбластьЦенника); КонецЕсли; ТекСтолбец = ТекСтолбец + 1; Если ТекСтолбец = 4 Тогда ТекСтрока = ТекСтрока + 1; ТекСтолбец = 0; КонецЕсли; Если ТекСтрока = 4 Тогда ТекСтрока = 0; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; [/spoiler] |
|||
1
Йохохо
16.07.19
✎
14:54
|
проблема с Концами ЦИкла
|
|||
2
DmitriyDI
16.07.19
✎
15:10
|
(0) Напиши так:
Вместо этого: Пока выборка.Следующий() Цикл Штрихкод = выборка.ШтрихКод; ПредставлениеШтрихкода = Выборка.ПредставлениеШтрихкода; ТипШтрихкода= Выборка.ТипШтрихкода; КонецЦикла; Так надо: Если выборка.Следующий() Тогда Штрихкод = выборка.ШтрихКод; ПредставлениеШтрихкода = Выборка.ПредставлениеШтрихкода; ТипШтрихкода= Выборка.ТипШтрихкода; Иначе Штрихкод = ""; ПредставлениеШтрихкода = Неопределено; ТипШтрихкода= Неопределено; КонецЕсли; |
|||
3
KamFolc
17.07.19
✎
06:51
|
(2) Огромное спасибо за помощь!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |