Имя: Пароль:
1C
1С v8
Штрихкод
,
0 Aleksei_Pro
 
28.01.13
14:48
Ребят подскажите , в чем проблема , не записывает 2 штрихокод в номенклатуру, ошибки не выдает:
           Запрос = Новый Запрос;
               Запрос.УстановитьПараметр("Владелец",НоменклатураЗагрузки);
               Запрос.Текст =  "ВЫБРАТЬ
               |    Штрихкоды.Штрихкод
               |ИЗ
               |    РегистрСведений.Штрихкоды КАК Штрихкоды
               |ГДЕ
               |    Штрихкоды.Владелец = &Владелец";
               
               ТЗ = Новый ТаблицаЗначений;
               ТЗ = Запрос.Выполнить().Выгрузить();
               
               Строка1 = тз.Найти(СтрЗаменить(ExcelЛист.Cells(Строка, Ст2).Value,Символы.НПП,""),"Штрихкод");
               Если строка1 = Неопределено Тогда                
                   НаборД = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
                   НаборД.Отбор.Владелец.Установить(НоменклатураЗагрузки);    
                   //        НаборД.Прочитать();
                   СтрокаДанных = НаборД.Добавить();
                   СтрокаДанных.Штрихкод = СтрЗаменить(ExcelЛист.Cells(Строка, Ст2).Value,Символы.НПП,"");
                   СтрокаДанных.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
                   СтрокаДанных.Владелец  = НоменклатураЗагрузки;
                   СтрокаДанных.ЕдиницаИзмерения = СтрокаДанных.Владелец.ЕдиницаДляОтчетов;
                   НаборД.Записать();                    
               КонецЕсли;
1 Aleksei_Pro
 
28.01.13
14:53
(0) он когда первую проходит нормально , а вот когда 2 проходит по этой же номенклатуре в тз выгружает строку с штрихкодом которым реально нет в базе но его надо загрузить
2 zladenuw
 
28.01.13
14:57
так отбор по Штрихкод
3 Aleksei_Pro
 
28.01.13
14:58
ставил еще отбор и по штрихкоду , все равно картина такая
4 pessok
 
28.01.13
14:59
может набор надо сначала прочитать, перед тем как добавлять в него что-то, а потом записывать? если нужны обе позиции?
5 Aleksei_Pro
 
28.01.13
15:03
ды не, все равно не записыает
6 zladenuw
 
28.01.13
15:04
(5) покажи как исправил
7 Aleksei_Pro
 
28.01.13
15:05
прочитать раскоментил
8 Галахад
 
гуру
28.01.13
15:05
(3) покажи код как было.
9 Aleksei_Pro
 
28.01.13
15:06
Строка1 = тз.Найти(СтрЗаменить(ExcelЛист.Cells(Строка, Ст2).Value,Символы.НПП,""),"Штрихкод");
               Если строка1 = Неопределено Тогда                
                   НаборД = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
                   НаборД.Отбор.Владелец.Установить(НоменклатураЗагрузки);    
                   НаборД.Прочитать();
                   СтрокаДанных = НаборД.Добавить();
                   СтрокаДанных.Штрихкод = СтрЗаменить(ExcelЛист.Cells(Строка, Ст2).Value,Символы.НПП,"");
                   СтрокаДанных.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
                   СтрокаДанных.Владелец  = НоменклатураЗагрузки;
                   СтрокаДанных.ЕдиницаИзмерения = СтрокаДанных.Владелец.ЕдиницаДляОтчетов;
                   НаборД.Записать();                    
               КонецЕсли;
10 Галахад
 
гуру
28.01.13
15:06
(9) Не. Тот где отбор по штрихкоду.
11 pessok
 
28.01.13
15:07
СтрокаДанных.Владелец  = НоменклатураЗагрузки;
вот это лишнее
12 Aleksei_Pro
 
28.01.13
15:08
Запрос = Новый Запрос;
               Запрос.УстановитьПараметр("Владелец",НоменклатураЗагрузки);
               Запрос.УстановитьПараметр("Штрихкод",СтрЗаменить(ExcelЛист.Cells(Строка, Ст2).Value,Символы.НПП,""));

               Запрос.Текст =  "ВЫБРАТЬ
                               |    Штрихкоды.Штрихкод
                               |ИЗ
                               |    РегистрСведений.Штрихкоды КАК Штрихкоды
                               |ГДЕ
                               |    Штрихкоды.Владелец = &Владелец
                               |    И Штрихкоды.Штрихкод = &Штрихкод";
               
               ТЗ = Новый ТаблицаЗначений;
               ТЗ = Запрос.Выполнить().Выгрузить();
13 Aleksei_Pro
 
28.01.13
15:09
без владельца не запишет он, (11) нужно это
14 zladenuw
 
28.01.13
15:10
(12)отбор к РС измерение ШтрихКод (у него же стоит основное в пофигаторе)
15 Aleksei_Pro
 
28.01.13
15:11
да ну и что
16 Aleksei_Pro
 
28.01.13
15:13
как делать тогда
17 Галахад
 
гуру
28.01.13
15:19
НаборД.Отбор.Владелец.Установить(НоменклатураЗагрузки);
НаборД.Отбор.ШтрихКод.Установить(Штрихкод);
18 Aleksei_Pro
 
28.01.13
15:31
маленько не понял как искать тогда , ну установил отбор и что?
19 Галахад
 
гуру
28.01.13
15:47
(18) Этот отбор на запись.
У тебя был отбор по владельцу, т.е. штрих код записывался два раза.
Но не в две разных записи, а в одну и ту же.
Т.е. перезаписывался.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший