![]() |
![]() |
|
Поиск неуникальных значений в табличной части справочника | ☑ | ||
---|---|---|---|---|
0
1C Архитектор
26.08.11
✎
07:04
|
1С 8.2 Управляемые формы
Есть справочник, в форме создана шапка + табличная часть. Соответственно в табличной части создают очень много строк. Пытаюсь создать код контроля уникальности по колонке ИденНомера Пытался через ТаблицаЗначений, Массив, Список Значений Вся проблема в том что пока не приходилось работать с ТаблицыЗначений.Найти и т.д. Не могу вкурить как получить значения этой колонки, и потом пройтись по всем значениям сравнивая с текущим значением Если не трудно то по шагам что и откуда брать куда пихать и почему. Вот так вроде просто и то не допер: НайденнаяСтрока = ТаблицаЦен.Найти(ВыбТовар, "Товар"); Если НайденнаяСтрока = Неопределено Тогда Текст = "ru = ""Товар не найден!"";" + " en = ""Article ot found!"""; Предупреждение(НСтр(Текст)); Иначе ЦенаТовара = НайденнаяСтрока.Цена; КонецЕсли; В общем край уже моск не работает. Заранее благодарен. |
|||
1
ДенисЧ
26.08.11
✎
07:09
|
лучше запросом...
|
|||
2
golden-pack
26.08.11
✎
07:13
|
(1) ага, если док не записан - самое оно
|
|||
3
kosts
26.08.11
✎
07:14
|
Выгрузить в ТЗ.
Добавить колонку, заполнить ее числом 1. ТаблицыЗначений.Свернуть("Товар", "Колонка1"); Пройтись по таблице, где > 1 тот не уникальный. |
|||
4
Рэйв
26.08.11
✎
07:20
|
ПередОкончаниеРедактирования
Если ТаблицаЦен.Найти("ИденНомера",ТекНомер).Количество()<>Неопределено Тогда Сообщить("Номер неуникальный "+ТекНокер); КонецЕсли; |
|||
5
Рэйв
26.08.11
✎
07:21
|
блин:-)
.Количество() - лишнее |
|||
6
golden-pack
26.08.11
✎
07:21
|
Я так делал:
ТЗ = Услуги.Выгрузить(); КолвоСтрок = ТЗ.Количество(); ТЗ.Свернуть("Услуга,ОсновноеСредство"); Если НЕ КолвоСтрок = ТЗ.Количество() Тогда Предупреждение("Ошибка. Обнаружены дубли строк в ТЧ ""Услуги""",3*60); Отказ = Истина; КонецЕсли; |
|||
7
kosts
26.08.11
✎
07:22
|
Либо если поиском, то
МассивСтрок = ТаблицаЦен.НайтиСтроки(Структура("Товар", Товар)); Если МассивСтрок.Количество() > 1 Тогда КонецЕсли; (4) Скорее всего в этот момент товар уже есть в ТЗ и он же и будет найден. |
|||
8
Рэйв
26.08.11
✎
07:26
|
(7)Если новая строка то нет. Как варант тогда можно .НайтиСтроки(Структурапосика)
|
|||
9
1C Архитектор
26.08.11
✎
11:50
|
Спасибо господа сейчас буду разбираться ...
|
|||
10
1C Архитектор
26.08.11
✎
12:36
|
ТЗ = Услуги.Выгрузить();
КолвоСтрок = ТЗ.Количество(); ТЗ.Свернуть("Услуга,ОсновноеСредство"); Если НЕ КолвоСтрок = ТЗ.Количество() Тогда Предупреждение("Ошибка. Обнаружены дубли строк в ТЧ ""Услуги""",3*60); Отказ = Истина; КонецЕсли; Вот все именно такое я в справке вижу, но что и откуда взялось? Вот где кроется проблема, я не могу понять что и где? Допустим это: &НаСервере Процедура ПередЗаписью (ТекущийОбъект) ТЗ = Новый ТаблицаЗначений; ТЗ = Услуги.Выгрузить(); // Здесь Услуги являются ТЧ я так понимаю, но система не видит её. Где определить ? КолвоСтрок = ТЗ.КОличество(); // Здесь непонятно тоже, количество чего? И так далее. Для Каждого // Сие я ни разу не юзал ибо пришел в 1С только, программинг ясен, но не везде логику могу подключить. Если не трудно объясните что и откуда берется, тогда я ухвачу смысл и код сам наваяю. |
|||
11
1C Архитектор
26.08.11
✎
12:39
|
Кстати вначале обмолвились про запрос, на этом варианте я бы остановился поскольку данные будут браться только записанные, и сверяться с текущей - это очень укоротит код и убьет ненужные проверки по Если
|
|||
12
kosts
26.08.11
✎
12:59
|
(11) Что то вроде этого
|
|||
13
kosts
26.08.11
✎
13:03
|
+ к (12) Только физлицо тоже надо вытащить. Не по человечески это пользователю сообщить о факте ошибки, нужно показать место ошибки.
|
|||
14
1C Архитектор
27.08.11
✎
07:16
|
Не взлетело ... к сожалению.
Даже не знаю, структура ключи значения, смешалось все. Вроде улавливаю но все равно не пойму. |
|||
15
МихаилМ
27.08.11
✎
09:35
|
||||
16
kosts
27.08.11
✎
10:42
|
(14) Начинай с азов.
Задавай мелкие вопросы. |
|||
17
AlexNew
27.08.11
✎
11:24
|
Подчиненный справочник с уникальностью кодов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |