![]() |
![]() |
![]() |
|
Как перебрать весь регистр | ☑ | ||
---|---|---|---|---|
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; Не уверен, что правильно написал, так как писал по памяти, да и не знаю, как у вас там "чудо-регистр" устроен, но где-то так будет проще, чем двойной цикл с перебором. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |