Имя: Пароль:
1C
 
Как исключить дубли в макете 1с
0 Королевский Тигр
 
27.09.23
16:30
Доброго дня коллеги.
У меня есть макет типа табличного документа. В нем 2 столбца.
1 столбец ИНН
2 столбец НазваниеКонтрагента

Подскажите пожалуйста как исключить дубли в макете? Хочу на выходе получить ТЗ без дублей. Вот допусти в моем макете есть 3 одинаковых ИНН. Как сделать что бы в результирующем объекте типа ТаблицаЗначений был только 1 ИНН?
1 RomanYS
 
27.09.23
16:33
ТЗ с дублями уже получил?
2 shuhard
 
27.09.23
16:34
(0) ни фига не понял
ТЗ загружается из табличного документа - а на хрена ?
3 lodger
 
27.09.23
16:45
(0) редупликацию в цикле считывания сделай.
перед циклом пишешь редупликатор = новый соответствие()
в цикле чтения
// считать из макета в переменную
Если редупликатор.получить(переменнаяИНН+переменнаяКонтрагент) = истина тогда
продолжить;
конецесли
редупликатор.Вставить(переменнаяИНН+переменнаяКонтрагент, Истина);
//твой код работы с инн
конеццикла;
4 yurikmellon2
 
27.09.23
17:01
(0) ну дык получи ТЗ и убери из неё дубли. Например так:

        Для Каждого Строка из ТЗ цикл
            Отбор = Новый Структура();
            Отбор.Вставить("ИНН", Строка.ИНН);
            Строки = ТЗ.НайтиСтроки(Отбор);
            Если Строки.Количество() > 1 Тогда
                Сч = 0;
                Пока Сч<Строки.Количество()-1 Цикл
                    ТЗ.Удалить(Строки[Сч]);    
                    Сч = Сч+1;
                КонецЦикла;
            КонецЕсли;        
        КонецЦикла;
5 lEvGl
 
гуру
27.09.23
17:08
че бы просто не свернуть ТЗ и все?
а если ИНН один и тот же, а контрагенты разные, то сразу несколько вопросов: насколько корректные первичные данные и какую из строк надо оставить?
6 lEvGl
 
гуру
27.09.23
17:08
во
ТаблицаЗначений (ValueTable)
Свернуть (GroupBy)
Синтаксис:

Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
Параметры:

<КолонкиГруппировок> (обязательный)

Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений.
<КолонкиСуммирования> (необязательный)

Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений.
Описание:

Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
Важно! Списки колонок не должны пересекаться. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений.
7 Королевский Тигр
 
27.09.23
17:09
(1) да
8 lEvGl
 
гуру
27.09.23
17:10
или при добавлении строки в ТЗ проверять на наличие такого ИНН
9 Королевский Тигр
 
27.09.23
17:10
(3) куртой варик, надо попробовать
10 Королевский Тигр
 
27.09.23
17:10
Интересно а какой варик самый быстрый?
У меня в макете 200 000 строк...
11 Королевский Тигр
 
27.09.23
17:11
(5) Дак в том то и дело данные точно кривые, поэтому дубли в файле. Мне эксельку манагер подсунул
12 lEvGl
 
гуру
27.09.23
17:12
или вобще в структуру загонять с ключом ИНН и свойством Контрагент, она при добавлении очередной строки с существующим ключом сама заменит запись
... + еще 7 с половиной вариантов, например к результирующей ТЗ сделать запрос с различными
13 Королевский Тигр
 
27.09.23
17:14
(6) не, это не подойдет. Тут он группирует а мне нужно дубли убрать
14 lEvGl
 
гуру
27.09.23
17:14
(11) ну так а вы уже определились с манагером какая из строк должна остаться?
ИНН        Контр
132131313    А
132131313    Б
15 lEvGl
 
гуру
27.09.23
17:15
(13) если названия контрагентов разные, то он и не сгруппирует
+ надо сначала понять, что тут называть дублями
16 Donkey_hot
 
27.09.23
17:28
(13) А что есть превращение трех строк в одну как не группировка? Ответьте на ключевой вопрос в (14), остальное дело техники.
17 shuhard
 
27.09.23
17:32
(16)[превращение трех строк в одну как не группировка]
это децимация