Здравствуйте.
1С:Предприятие 8.2 (8.2.19.130)
"Альфа-Авто: Автосервис+Автозапчасти, украинская версия 4.1" (4.1.14.01)
обычные формы.
Пытаюсь программно из внешней обработки записывать в регистр сведений "штрих-коды".
Кидаю на форму несколько полей ввода, пвНоменклатура, пвШтрихКод, пвЕдИмз, пвХарНом, все кроме пвШтрихКод установлены указатели на соотв-е справочники.
Для добавления используется код
МенеджерЗаписи = РегистрыСведений.ШтрихКоды.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Объект = пвНоменклатура;
МенеджерЗаписи.ШтрихКод = пвШтрихКод;
МенеджерЗаписи.ЕдиницаИзмерения = пвЕдИзм;
МенеджерЗаписи.ХарактеристикаНоменклатуры = пвХарНом;
МенеджерЗаписи.Записать();
НаборЗаписей = РегистрыСведений.ШтрихКоды.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(пвНоменклатура);
//---
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Объект = пвНоменклатура;
НоваяЗапись.ШтрихКод = пвШтрихКод;
НоваяЗапись.ЕдиницаИзмерения = пвЕдИзм;
НоваяЗапись.ХарактеристикаНоменклатуры = пвХарНом;
НаборЗаписей.Записать();
//---
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Объект = пвНоменклатура;
НоваяЗапись.ШтрихКод = пвШтрихКод+" 0001";
НоваяЗапись.ЕдиницаИзмерения = пвЕдИзм;
НоваяЗапись.ХарактеристикаНоменклатуры = пвХарНом;
НаборЗаписей.Записать();
//---
Все работает как и задумывалось.
Далее пробую делать через запрос выборкой по группе
ЗапросНоменклатура = Новый Запрос;
ЗапросНоменклатура.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.ПометкаУдаления,
| Номенклатура.Родитель,
| Номенклатура.ЭтоГруппа,
| Номенклатура.Код,
| Номенклатура.Артикул,
| Номенклатура.Наименование,
| Номенклатура.Производитель
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)
| И Номенклатура.ЭтоГруппа = ЛОЖЬ";
ЗапросНоменклатура.УстановитьПараметр("Ссылка",пвГруппа.Ссылка);
Результат = ЗапросНоменклатура.Выполнить();
ТЗ = Результат.Выбрать();
Пока ТЗ.Следующий() Цикл
СтрШтрихКод = СтрЗаменить(ТЗ.Ссылка.Артикул, "-", "");
МенеджерЗаписи = РегистрыСведений.ШтрихКоды.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Объект = ТЗ.Ссылка;
МенеджерЗаписи.ШтрихКод = СтрШтрихКод;
МенеджерЗаписи.ЕдиницаИзмерения = пвЕдИзм;
МенеджерЗаписи.ХарактеристикаНоменклатуры = пвХарНом;
МенеджерЗаписи.Записать();
НаборЗаписей = РегистрыСведений.ШтрихКоды.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(пвНоменклатура);
//---
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Объект = ТЗ.Ссылка;
НоваяЗапись.ШтрихКод = СтрШтрихКод;
НоваяЗапись.ЕдиницаИзмерения = пвЕдИзм;
НоваяЗапись.ХарактеристикаНоменклатуры = пвХарНом;
НаборЗаписей.Записать();
//---
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Объект = ТЗ.Ссылка;
НоваяЗапись.ШтрихКод = СтрШтрихКод+" 0001";
НоваяЗапись.ЕдиницаИзмерения = пвЕдИзм;
НоваяЗапись.ХарактеристикаНоменклатуры = пвХарНом;
НаборЗаписей.Записать();
//---
КонецЦикла;
На этапе перебора результата в цикле и записи в регистр, выдает ошибку:
Цитата
{Форма.Форма.Форма(95)}: Ошибка при вызове метода контекста (Записать)
НаборЗаписей.Записать();
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: ШтрихКоды: 3515623700, Прокладка клапана х/хода ( 35156-23700 ), , (Регистр сведений: Штрих-коды; Номер строки: 1; Поле: Объект)
Подскажите пожалуйста в чем косяк, т.к. не совсем понятно, почему измерение Объект не "принимает" присвоенную ему ссылку на объект номенклатуры?
Сообщение отредактировал Vofka - 03.10.17, 10:01