Имя: Пароль:
1C
1С v8
Как перебрать весь регистр
0 igoza
 
25.05.13
20:01
Есть регистр сведений в нём измерение ШтрихКод

что бы создать новый ШтрихКод мне нада быть уверенным что таких нет более, а для этого нада проверить, как перебрать регистр?
1 Флудер
 
25.05.13
20:02
Запросом
2 sanja26
 
25.05.13
20:02
распечатать и прокрыжить. не?
3 igoza
 
25.05.13
20:03
приимер если иожно, а то я не очень понимаю как, то что я пишу не работает
4 Флудер
 
25.05.13
20:04
(3) Пиши как пишешь
5 igoza
 
25.05.13
20:06
сильно какашками не закидывать я неделю копаюсь в 1С

Процедура ПроверкаУникальности()
   ТекПред = "Всё ОК";
   ТекРег = "С регистром не конфликтует";
   пустые = ЭлементыФормы.ШтрихКоды.ТекущаяСтрока;
   Для Каждого ТекущаяСтрока ИЗ ШтрихКоды Цикл
       Для Каждого ТекСтр Из ШтрихКоды Цикл
           Если ТекущаяСтрока.ШтрихКод = ТекСтр.ШтрихКод И ТекущаяСтрока.НомерСтроки <> ТекСтр.НомерСтроки
           И ТекСтр <> "" И ТекущаяСтрока <> "" Тогда
               ТекПред = "Наличие одинаковых штрих кодов недопустимо";
               ТекСтр.ШтрихКод = "";
           КонецЕсли;
       КонецЦикла;
       Рег = РегистрыСведений.Штрихкоды.ВыбратьПоРегистратору(ШтрихКоды);
       
       Для Каждого СтрРег Из Рег Цикл
           Если ТекущаяСтрока.ШтрихКод = СтрРег.Штрихкод Тогда
               ТекРег = "В регистре существуют такие штрих коды";
               ТекущаяСтрока.ШтрихКод = "";
           КонецЕсли;
       КонецЦикла;
       
       
   КонецЦикла;
   
   
       
   Предупреждение(ТекПред);
   Предупреждение(ТекРег);

КонецПроцедуры
6 Grobik
 
25.05.13
20:06
Когда-то гже-то видел такую штуку как конструктор запросов.
7 Grobik
 
25.05.13
20:06
жесть
8 mistеr
 
25.05.13
20:07
(0) Надеюсь, Штрихкод это единственное измерение?
9 igoza
 
25.05.13
20:08
(8) их тм 8 ктотонасоздавал
10 mistеr
 
25.05.13
20:09
(5) Почитай что-нибудь, пожалуйста. Такую банальную вещь, как контроль уникальности, любая уважающая себя платформа обязана уметь делать сама, не приходило в голову?
11 Torquader
 
25.05.13
20:17
(5) Ребята, а запросом по таблице регистра пройтись (она же индексированная) не проще, чем какие-то переборы "мутить".
(10) Конечно, должна быть уникальность, если её включили, но, если это не головное измерение, то могут быть записи и по другим измерениям.
12 igoza
 
25.05.13
20:36
Процедура ПроверкаУникальности()
   ТекПред = "Всё ОК";
   ТекРег = "С регистром не конфликтует";
   //пустые = ЭлементыФормы.ШтрихКоды.ТекущаяСтрока;
   Для Каждого ТекущаяСтрока ИЗ ШтрихКоды Цикл
       Для Каждого ТекСтр Из ШтрихКоды Цикл
           Если ТекущаяСтрока.ШтрихКод = ТекСтр.ШтрихКод И ТекущаяСтрока.НомерСтроки <> ТекСтр.НомерСтроки
           И ТекСтр <> "" И ТекущаяСтрока <> "" Тогда
               ТекПред = "Наличие одинаковых штрих кодов недопустимо";
               ТекСтр.ШтрихКод = "";
           КонецЕсли;
       КонецЦикла;
               
       Рег = РегистрыСведений.Штрихкоды.Выбрать();
       Пока Рег.Следующий() Цикл    
           Если ТекущаяСтрока.ШтрихКод = Рег.Штрихкод Тогда
               ТекРег = "В регистре существуют такие штрих коды";
               ТекущаяСтрока.ШтрихКод = "";
           КонецЕсли;
       КонецЦикла;
           
   КонецЦикла;
   Предупреждение(ТекПред);
   Предупреждение(ТекРег);
КонецПроцедуры
13 Torquader
 
26.05.13
00:52
(12) Не знаю, чего вы тут пишете, но проверять неуникальность штрих-кодов в регистре проще запросом количества.
ВЫБРАТЬ
Счетчик(ШтрихКоды.ШтрихКод)КАК Количество,
ШтрихКоды.ШтрихКод Как ШтрихКод
ИЗ
РегистрСведений.ШтрихКоды КАК ШтрихКоды
СГРУППИРОВАТЬ ПО ШтрихКод ПОМЕСТИТЬ ВремТаб;
ВЫБРАТЬ
ШтрихКоды.ШтрихКод
ИЗ
ВремТаб.ШтрихКоды КАК ШтрихКоды
ГДЕ
ШтрихКОды.Количество>1;

Не уверен, что правильно написал, так как писал по памяти, да и не знаю, как у вас там "чудо-регистр" устроен, но где-то так будет проще, чем двойной цикл с перебором.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn