Имя: Пароль:
1C
1С v8
v8: Ошибка при добавлении записи в РС Штрихкоды
0 WhiteDragon93
 
16.04.14
09:30
Привет, народ! Программно добавляю штрихкоды. Ругается, что владелец не может быть пустым, хотя в отладке все нормально, ссылка на номенклатуру есть. Ума не приложу что за хрень...


Запрос = Новый Запрос;
                
                Запрос.УстановитьПараметр("Штрихкод", Стр.Штрихкод);
                
                Запрос.Текст = "ВЫБРАТЬ
                               |    Штрихкоды.Штрихкод
                               |ИЗ
                               |    РегистрСведений.Штрихкоды КАК Штрихкоды
                               |ГДЕ
                               |    Штрихкоды.Штрихкод = &Штрихкод";

Результат = Запрос.Выполнить();
                
                Если Не Результат.Пустой() Тогда
                    
                    Выборка = Результат.Выбрать();
                    Выборка.Следующий();
                    Штрихкод = Выборка.Штрихкод;
                    
                Иначе
                    
                    
                    
                    НовыйШтрихкод = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
                    
                    НовыйШтрихкод.Владелец = Номенклатура.Ссылка;
                    НовыйШтрихкод.ЕдиницаИзмерения = Номенклатура.ЕдиницаХраненияОстатков;
                    НовыйШтрихкод.Качество = Справочники.Качество.Новый;
                    
                    Если Стр.СерияНоменклатуры <> NULL Тогда
                        
                        НовыйШтрихкод.СерияНоменклатуры = Серия;
                        
                    КонецЕсли;
                    
                    НовыйШтрихкод.Штрихкод = Стр.Штрихкод;
                    
                    Если СтрДлина(Стр.Штрихкод) = 18 Тогда
                        
                        НовыйШтрихкод.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code39;
                        
                    ИначеЕсли СтрДлина(Стр.Штрихкод) = 13 Тогда
                        
                        НовыйШтрихкод.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
                        
                    ИначеЕсли СтрДлина(Стр.Штрихкод) = 8 Тогда
                        
                        НовыйШтрихкод.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
                        
                    КонецЕсли;
                    Если НовыйШтрихкод.ПроверитьЗаполнение() Тогда
                            
                    НовыйШтрихкод.Записать();
                    
                    КонецЕсли;
1 WhiteDragon93
 
16.04.14
09:31
Модераторы, поправьте название, если возможно :)
2 Wobland
 
16.04.14
09:36
а вот бы придумали штуку, которая позволяла бы останавливать выполнение в нужном месте, ходить пошагово и смотреть в переменные
3 Wobland
 
16.04.14
09:37
(2) нет же, им хочется УФ, такси и дышащий интерфейс
4 WhiteDragon93
 
16.04.14
09:42
(3) да смотрел, ошибка при на методе Записать() возникает, если перед этим смотреть получившуюся запись, все реквизиты заполнены.
5 Wobland
 
16.04.14
09:47
эх, ещё б какую документацию разработали бы что ли. а то вот тычешься-тычешься, а проконсультироваться только на мисте можно
6 Базис
 
naïve
16.04.14
09:50
Поищи аналог в конфе и скопируй. Наверняка ссылку меняешь или наоборот объект вместо ссылки записываешь.
7 rphosts
 
16.04.14
09:52
(3) в такси отладку отменили?
8 WhiteDragon93
 
16.04.14
09:52
(5) где как не на мисте с утречка бодрящей иронии порцию схватить можно?
9 Wobland
 
16.04.14
09:52
(7) что это?
10 Wobland
 
16.04.14
09:53
(8) догадайся, откуда это:

Используется только для регистров сведений, неизменяемых регистраторами, т.е. для которых в конфигураторе установлен режим записи "Независимый".
Предназначен для интерактивной работы с записью регистра сведений.
Доступ (чтение и запись) к записям регистра сведений производится объектом РегистрСведенийНаборЗаписей.<Имя регистра сведений> на системном уровне
11 Леша1с
 
16.04.14
10:04
(2)" ходить пошагово и смотреть в переменные"
1С уже не сможет никогда на данной платфоре 8.1-8.4 реализовать дискретное выполнение кода.
Не микрософт ни разу.
(10)"догадайся, откуда это"
ну он менеджер использует, для одной записи.
Какая разница?
Если только воспользуется набором, и увидит, что подобная запись (которую он Менеджером пытается сформиовать), к примеру, уже есть.
Штрихкоды-то запвисимый или независимый? Контроль уникальности-то есть?
12 WhiteDragon93
 
16.04.14
10:11
(11) это независимый регистр, контроль уникальности имеется
13 WhiteDragon93
 
16.04.14
10:13
+(12) для проверки уникальности запрос вверху и сделан