Имя: Пароль:
1C
1С v8
УГГ Запись серии в регистр штрих-кодов
, ,
0 disk-2008
 
27.12.13
14:17
УПП 1.3.29.2

В регистр штрих-кодоов, к уже имеющемуся штрих-коду надо добавить серию (равную штрих-коду).

Данные подготавливаю в структуре после запроса, по отладке - все корректно.

Проблема в том, что программа не дает сделать запись в регистр и сообщает, что такой штрих-код уже имеет владельца.
Без владельца (ссылки на номенклатуру) - сообщает, что нет владельца.

Подскажите, пожалуйста, как все-таки добавить информацию к уже имеющемуся штрих-коду?
1 shuhard
 
27.12.13
14:20
(0)[УГГ]
симптоматично
2 disk-2008
 
27.12.13
14:21
Сейчас такой код.
        
Процедура КнопкаВыполнитьНажатие(Кнопка)                

...

    СтруктураШК = Новый Структура();
        СтруктураШК.Вставить("Штрихкод",ВыборкаДетальныеЗаписи.Штрихкод);
        СтруктураШК.Вставить("Владелец",ВыборкаДетальныеЗаписи.Владелец);
        СтруктураШК.Вставить("ТипШтрихкода",ВыборкаДетальныеЗаписи.ТипШтрихкода);
        
Процедура КнопкаВыполнитьНажатие(Кнопка)...
...
СтруктураШК.Вставить("ЕдиницаИзмерения",ВыборкаДетальныеЗаписи.ЕдиницаИзмерения);
СтруктураШК.Вставить("ХарактеристикаНоменклатуры",ВыборкаДетальныеЗаписи.ХарактеристикаНоменклатуры);
        СтруктураШК.Вставить("Качество",ВыборкаДетальныеЗаписи.Качество);
        СтруктураШК.Вставить("СерияНоменклатуры",НовыйОбъект.Ссылка);
        
        МенеджерЗаписиСерииШК(СтруктураШК);
        
        КонецЕсли;
    КонецЦикла;
    
    
КонецПроцедуры

//&НаСервереБезКонтекста

Процедура МенеджерЗаписиСерииШК(СтруктураШК)

            Менеджер = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
              Менеджер.Штрихкод = СтруктураШК.Штрихкод;
            
            
            Менеджер.Владелец= СтруктураШК.Владелец;
            Менеджер.ТипШтрихкода= СтруктураШК.ТипШтрихкода;
            Менеджер.ЕдиницаИзмерения= СтруктураШК.ЕдиницаИзмерения;
            Менеджер.ХарактеристикаНоменклатуры= СтруктураШК.ХарактеристикаНоменклатуры;        
            Менеджер.Качество= СтруктураШК.Качество;
        
            Менеджер.СерияНоменклатуры= СтруктураШК.СерияНоменклатуры;            
            
            Менеджер.Записать ();
        
КонецПроцедуры
3 disk-2008
 
27.12.13
14:23
(1)Как обойти проверку уникальности штрих-кода без доработки конфигурации.
У меня код во внешней обработке.
4 disk-2008
 
27.12.13
14:27
Никто не знает?
5 Defender aka LINN
 
27.12.13
14:31
один штрих-код для двух разных позиций?
Какие у вас интересные грабли, узорчатые...
6 disk-2008
 
27.12.13
14:31
Набор записи с отбором - аналогично.
7 disk-2008
 
27.12.13
14:32
(5)Мне надо одну позицию - к уже имеющемуся штрих-коду добавить серию, которую я программно создаю.
8 MrStomak
 
27.12.13
14:33
(7) Ну так удаляй запись без серии и добавляй запись с серией.
9 disk-2008
 
27.12.13
14:33
(5)Сначала штрих-код - без серии, обработкой надо сделать, чтобы появилась серия именно для этого штрих-кода, а не новая строка в регистре сведений штрих-кодов.
10 Defender aka LINN
 
27.12.13
14:34
(7) Серия у штрих-кода? Ты продолжаешь ломать мою психику.
Серия есть у номенклатуры. При чем тут вообще штрих-код?
11 disk-2008
 
27.12.13
14:34
(8)Уже пробовали.
Появляются две строки - одна без серии, вторая с серией без штрих-кода.
12 MrStomak
 
27.12.13
14:35
(11) Плохо пробуете. Метод Удалить() известен?
13 disk-2008
 
27.12.13
14:37
(10)Не так формулирую, конечно.
Серия должна появиться у владельца штрих-кода, ее программно формируем - появляется в карточке номенклатуры, которая является владельцем этого штрих-кода.
Но, когда смотрим в регистр штрих-кода - там этой серии  нет, как и в карточке номенклатуры на закладке штрих-кодов.
Надо сделать связь имеющегося штрих-кода и серии.
14 disk-2008
 
27.12.13
14:37
(11)Через Менеджер.Удалить()  и пробовали.
2 строки появляются.
15 MrStomak
 
27.12.13
14:41
(14) Я не могу протелепатировать все 100500 ошибок, которые вы можете сделать. Методически все следующим образом происходит: удаляете запись на комбинацию измерений без серии, добавляете запись на комбинацию измерений с серией. Если у вас там по 2 строки, то как минимум вы не смогли удалить запись.
16 MrStomak
 
27.12.13
14:42
А если при этом метод Удалить все же использовался - значит проблема в заполнении ключевых полей менеджера записи.
17 disk-2008
 
27.12.13
14:42
(15)Именно так методически и пытались.
18 disk-2008
 
27.12.13
14:43
(16)На отладке все корректно - поля заполнены, типы правильные.
19 disk-2008
 
27.12.13
14:44
(18)+
На 8.3.3.721.
20 MrStomak
 
27.12.13
14:47
(19) значит поля заполнены не тем. после и перед удалением в отладчике посмотреть регистрысведений.штрихкоды.получить(Отбор) наличие записи в базе
21 Umga2002
 
27.12.13
14:47
Запись регистра с заменой(параметр записать)
22 MrStomak
 
27.12.13
14:50
(21) Комбинация измерений не совпадает, ты чего.
23 disk-2008
 
27.12.13
14:58
(22)Спасибо, получилось!!!

Не удалялось из-за пустой ссылки на серию - сделали отдельную переменную,  стало работать.
24 disk-2008
 
27.12.13
15:02
(23)+
Т.е., в Менеджер.СерияНоменклатуры не было явно указанной пустой ссылки на серию перед удалением, просто ее не указывали.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.