Имя: Пароль:
1C
1С v8
Заполнение регистра штрихкод
0 Aleksei_Pro
 
10.10.12
12:11
// штрихкоды записываем
               НаборД = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
               //        Наборд.Отбор.Номенклатура.Установить(Ном);
               //        Наборд.Записать();
               
               МассивШтрахКодов = РазложитьСтрокуВМассивПодстрок(Бд.Strich);
               Для каждого ТС из МассивШтрахКодов Цикл
                   если ЗначениеЗаполнено(ТС) Тогда
                       СтрокаДанных = НаборД.Добавить();
                       СтрокаДанных.Штрихкод = СокрЛП(ТС);
                       СтрокаДанных.Номенклатура  = Ном;
                       НаборД.Записать();    
                   КонецЕсли;                
               КонецЦикла;


Почему не заполняет регистр, запись происходит  а в справочнике - пусто. УТ11 база
1 Aleksei_Pro
 
10.10.12
13:35
Кто ни то кояк видит?
2 Aleksei_Pro
 
10.10.12
14:17
УТ11 база , измерение - штрихКод, ресурс - номенклатура. Нужно чтобы при загрузке перезаполнятлся регистр, т.е очищался и заново заполнылся , разумеется по отбору ( отбор или по номенклатуре или по штрихкоду). Что нре так?

               НаборД = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
                   
                   Наборд.Прочитать();
                   Наборд.Записать();
                   МассивШтрахКодов = РазложитьСтрокуВМассивПодстрок(Бд.Strich);
                   Для каждого ТС из МассивШтрахКодов Цикл
                       если ЗначениеЗаполнено(ТС) Тогда
                           
                           НаборД.Отбор.штрихкод.Установить(СокрЛП(ТС));
                           
                           
                           СтрокаДанных = НаборД.Добавить();
                           СтрокаДанных.Штрихкод = СокрЛП(ТС);
                           СтрокаДанных.Номенклатура  = Номенкл;
                           НаборД.Записать();    
                       КонецЕсли;                
                   КонецЦикла;
3 Stim
 
10.10.12
14:17
а где отбор?
4 Aleksei_Pro
 
10.10.12
14:24
НаборД.Отбор.штрихкод.Установить(СокрЛП(ТС));
5 Aleksei_Pro
 
10.10.12
14:25
что никак не полчается загнать запись в регистр с очищением перед этим
6 Stim
 
10.10.12
14:25
убери
 
                   Наборд.Прочитать();
                   Наборд.Записать();
7 Stim
 
10.10.12
14:25
и делай по-человечески:



                   МассивШтрахКодов = РазложитьСтрокуВМассивПодстрок(Бд.Strich);
                   Для каждого ТС из МассивШтрахКодов Цикл
                       если ЗначениеЗаполнено(ТС) Тогда
НаборД = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
                           
                           НаборД.Отбор.штрихкод.Установить(СокрЛП(ТС));
                           
                           
                           СтрокаДанных = НаборД.Добавить();
                           СтрокаДанных.Штрихкод = СокрЛП(ТС);
                           СтрокаДанных.Номенклатура  = Номенкл;
                           НаборД.Записать();    
                       КонецЕсли;                
                   КонецЦикла;
8 Aleksei_Pro
 
10.10.12
14:27
(7) а где очистка перед заполнением?
9 Stim
 
10.10.12
14:28
(8) ты весь набор перезиписываешь, зачем тебе очистка?
Программист всегда исправляет последнюю ошибку.