0
unknown181538
09.10.17
✎
18:53
|
Стоит задача сделать штрихкод в УТ 11 неуникальным - т.е. один штрихкод для разной номенклатуры. Добавил измерение, для "альтернативной уникальности".
Пытаюсь в обработчике "ПередЗаписью" модуля набора записей его заполнять
Для Каждого ТекЗапись Из ЭтотОбъект Цикл
Если ЗначениеЗаполнено(ТекЗапись.НомерШтрихкода) Тогда
Продолжить;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ШтрихкодыНоменклатуры.НомерШтрихкода КАК НомерШтрихкода
|ИЗ
| РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
|ГДЕ
| ШтрихкодыНоменклатуры.Штрихкод = &Штрихкод
| И ШтрихкодыНоменклатуры.Номенклатура <> &Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| НомерШтрихкода УБЫВ";
Запрос.УстановитьПараметр("Номенклатура", ТекЗапись.Номенклатура);
Запрос.УстановитьПараметр("Штрихкод",ТекЗапись.Штрихкод);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если выборка.Следующий() Тогда
ТекЗапись.НомерШтрихкода = Выборка.НомерШтрихкода + 1;
КонецЕсли;
КонецЦикла;
Выдает ошибку "Значение поля не соответствует установленному отбору".
В отладчике
ЭтотОбъект.Отбор.НомерШтрихкода = 0;
Т.е. запись делается с указанным отбором. Самое странное, что находил в инте такой же работающий пример.
Как правильно изменять измерение перед записью?
|
|
1
Филиал-msk
09.10.17
✎
18:58
|
(0) > находил в инте
Простите, а что вы делаете с этим безумным количеством времени, освободившемся при написании этих букв?
Кроме значений можно изменять и текущий отбор. Помня про то, что в обработку при щаписи управлние будет передано дважды.
|
|
2
unknown181538
09.10.17
✎
20:33
|
(1) Опечатался))
Да, работает. Меня смущали от этого мысли о гипотетическом случае, когда в наборе может быть несколько записей... Но Это можно решать уже в том коде, который создаст ситуацию.
Спасибо
|
|