Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: РегистрСведений Штри-коды ошибка записи.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bizisoft
Здравствуйте.

1С:Предприятие 8.2 (8.2.19.130)
"Альфа-Авто: Автосервис+Автозапчасти, украинская версия 4.1" (4.1.14.01)
обычные формы.

Пытаюсь программно из внешней обработки записывать в регистр сведений "штрих-коды".
Кидаю на форму несколько полей ввода, пвНоменклатура, пвШтрихКод, пвЕдИмз, пвХарНом, все кроме пвШтрихКод установлены указатели на соотв-е справочники.
Для добавления используется код
    МенеджерЗаписи = РегистрыСведений.ШтрихКоды.СоздатьМенеджерЗаписи();
    
    МенеджерЗаписи.Объект = пвНоменклатура;
    МенеджерЗаписи.ШтрихКод = пвШтрихКод;
    МенеджерЗаписи.ЕдиницаИзмерения = пвЕдИзм;
    МенеджерЗаписи.ХарактеристикаНоменклатуры = пвХарНом;
    МенеджерЗаписи.Записать();
    
    НаборЗаписей = РегистрыСведений.ШтрихКоды.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Объект.Установить(пвНоменклатура);
//---
    НоваяЗапись = НаборЗаписей.Добавить();               
    НоваяЗапись.Объект = пвНоменклатура;     
    НоваяЗапись.ШтрихКод = пвШтрихКод;                                                            
    НоваяЗапись.ЕдиницаИзмерения = пвЕдИзм;
    НоваяЗапись.ХарактеристикаНоменклатуры = пвХарНом;    
    НаборЗаписей.Записать();
//---    
    НоваяЗапись = НаборЗаписей.Добавить();               
    НоваяЗапись.Объект = пвНоменклатура;     
    НоваяЗапись.ШтрихКод = пвШтрихКод+"        0001";                                                            
    НоваяЗапись.ЕдиницаИзмерения = пвЕдИзм;
    НоваяЗапись.ХарактеристикаНоменклатуры = пвХарНом;    
    НаборЗаписей.Записать();
//---

Все работает как и задумывалось.
Далее пробую делать через запрос выборкой по группе
ЗапросНоменклатура = Новый Запрос;
    ЗапросНоменклатура.Текст =
            "ВЫБРАТЬ
            |    Номенклатура.Ссылка,
            |    Номенклатура.ПометкаУдаления,
            |    Номенклатура.Родитель,
            |    Номенклатура.ЭтоГруппа,
            |    Номенклатура.Код,            
            |    Номенклатура.Артикул,
            |    Номенклатура.Наименование,            
            |    Номенклатура.Производитель
            |ИЗ
            |    Справочник.Номенклатура КАК Номенклатура
            |ГДЕ
            |    Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)
            |    И Номенклатура.ЭтоГруппа = ЛОЖЬ";
    ЗапросНоменклатура.УстановитьПараметр("Ссылка",пвГруппа.Ссылка);
    Результат = ЗапросНоменклатура.Выполнить();
    ТЗ = Результат.Выбрать();    
    Пока ТЗ.Следующий() Цикл
        СтрШтрихКод = СтрЗаменить(ТЗ.Ссылка.Артикул, "-", "");
        
        МенеджерЗаписи = РегистрыСведений.ШтрихКоды.СоздатьМенеджерЗаписи();
    
        МенеджерЗаписи.Объект = ТЗ.Ссылка;
        МенеджерЗаписи.ШтрихКод = СтрШтрихКод;
        МенеджерЗаписи.ЕдиницаИзмерения = пвЕдИзм;
        МенеджерЗаписи.ХарактеристикаНоменклатуры = пвХарНом;
        МенеджерЗаписи.Записать();
        
        НаборЗаписей = РегистрыСведений.ШтрихКоды.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Объект.Установить(пвНоменклатура);
    //---
        НоваяЗапись = НаборЗаписей.Добавить();               
        НоваяЗапись.Объект = ТЗ.Ссылка;     
        НоваяЗапись.ШтрихКод = СтрШтрихКод;                                                            
        НоваяЗапись.ЕдиницаИзмерения = пвЕдИзм;
        НоваяЗапись.ХарактеристикаНоменклатуры = пвХарНом;    
        НаборЗаписей.Записать();
    //---    
        НоваяЗапись = НаборЗаписей.Добавить();               
        НоваяЗапись.Объект = ТЗ.Ссылка;      
        НоваяЗапись.ШтрихКод = СтрШтрихКод+"        0001";                                                            
        НоваяЗапись.ЕдиницаИзмерения = пвЕдИзм;
        НоваяЗапись.ХарактеристикаНоменклатуры = пвХарНом;    
        НаборЗаписей.Записать();
    //---    

    КонецЦикла;


На этапе перебора результата в цикле и записи в регистр, выдает ошибку:
Цитата
{Форма.Форма.Форма(95)}: Ошибка при вызове метода контекста (Записать)
НаборЗаписей.Записать();
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: ШтрихКоды: 3515623700, Прокладка клапана х/хода ( 35156-23700 ), , (Регистр сведений: Штрих-коды; Номер строки: 1; Поле: Объект)


Подскажите пожалуйста в чем косяк, т.к. не совсем понятно, почему измерение Объект не "принимает" присвоенную ему ссылку на объект номенклатуры?
sava1
Цитата(bizisoft @ 02.10.17, 13:02) необходимо зарегистрироваться для просмотра ссылки
НаборЗаписей.Отбор.Объект.Установить(пвНоменклатура);


это как ?
Petre
bizisoft @ Сегодня, 13:02 необходимо зарегистрироваться для просмотра ссылки ,
Если уж вы в наборе установили отбор по полю, то нечего присваивать данному полю другие значения в пределах этого же набора. Иначе пользуйтесь менеджером записи.
bizisoft
Благодарю вас SAVA1 и PETRE, за подсказку.
Вот что копи-паст косячный делает - скопировать, скопировал, а в этом месте забыл поменять пвНоменклатура на ТЗ.Ссылка.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.