// !!! Павел С.С. 2 июня 2011 г. 17:49:14
// Проверка любой таблицы на повторяющиеся строки
// Данную процедура лучше использовать в процедурах ПриЗаписи, ОбработкаПроведения, и т.п. Тоесть в тех, где можно сделать отказ от выполениядальнейших дествий
// Параметры:
// ТЧ - можно указать "ТаблицуЗначений", либо "ТабличнуюЧасть" документа
// Отказ - параметр "Отказ" или "Истина", "Ложь"
Процедура ПоискДублейСтрокВТабЧасти(ТЧ, Отказ) Экспорт
Если Тип(ТЧ) = Тип("ТаблицаЗначений") Тогда
ТаблЗнач = ТЧ;
Иначе
ТаблЗнач = ТЧ.Выгрузить();
КонецЕсли;
Отбор = Новый Структура();
Для каждого Стр Из ТаблЗнач Цикл
Отбор.Очистить();
Для каждого Колонки Из ТаблЗнач.Колонки Цикл
Если Колонки.Имя <> "НомерСтроки" Тогда
Отбор.Вставить(Колонки.Имя, Стр[Колонки.Имя]);
КонецЕсли;
КонецЦикла;
Строки = ТаблЗнач.НайтиСтроки(Отбор);
Если Строки.Количество() > 1 Тогда
Для каждого НайденныеСтроки Из Строки Цикл
Если Строки.Найти(НайденныеСтроки) > 0 Тогда
СтрокаСообщения = "Строка № " + Строки[0].НомерСтроки + " совпадает со строкой № " + НайденныеСтроки.НомерСтроки;
СообщитьОбОшибке(СтрокаСообщения, Отказ, "Уберите задвоения строк!");
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Поиск дублей в таблице значений или табличном поле
Разработка - Универсальные функции
В данной процедуре поиск дублей происходит по всем колонкам строк. Тоесть дублем считается повтор значений в двух строках по всем колонкам.
Если повторяющих строк больше одной, то они все будут показаны в сообщении, с порядковым номером исходной строки и повторяющейся строки.
Данную процедура лучше использовать в общем модуле и вызывать её из процедур "ПриЗаписи" или "ОбработкаПроведения", и т.п. То есть в тех, где можно сделать отказ от выполнения дальнейших дествий
В качестве Таблицы - можно указать "ТаблицуЗначений", либо "ТабличнуюЧасть" документа, Справочника и т.д.
См. также
Вставляем картинку из буфера обмена (платформа 1С 8.3.24)
Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)
Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.
1 стартмани
18.03.2024 2934 2 John_d 11
GUID в 1С 8.3 - как с ними быть
Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)
Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.
12.02.2024 5250 atdonya 22
Переоткрытие внешних обработок
Универсальные функции Платформа 1С v8.3 Бесплатно (free)
На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.
30.11.2023 4159 ke.92@mail.ru 16
Генерация штрихкода и QR, разбор настроек и примеры
БСП (Библиотека стандартных подсистем) Сканер штрих-кода Универсальные функции Этикетки, ценники Конфигурации 1cv8 Бесплатно (free)
Разберем на примерах использование компоненты из БСП для генерации штрихкода и матричных кодов.
15.09.2023 8613 YA_418728146 8
Валидация JSON через XDTO (включая массивы)
WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)
При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.
28.08.2023 9588 YA_418728146 6
Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам
Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)
Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.
2 стартмани
22.08.2023 2298 28 progmaster 8
Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)
Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)
1 стартмани
13.10.2022 16435 144 sapervodichka 112
Система контроля ведения учета [БСП]
Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)
В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.
18.07.2022 7391 quazare 8
В данной процедуре поиск дублей происходит по всем колонкам строк. Тоесть дублем считается повтор значений в двух строках по всем колонкам.
Если повторяющих строк больше одной, то они все будут показаны в сообщении, с порядковым номером исходной строки и повторяющейся строки.
Данную процедура лучше использовать в общем модуле и вызывать её из процедур "ПриЗаписи" или "ОбработкаПроведения", и т.п. То есть в тех, где можно сделать отказ от выполнения дальнейших дествий
В качестве Таблицы - можно указать "ТаблицуЗначений", либо "ТабличнуюЧасть" документа, Справочника и т.д.
1. В приведенном куске кода последняя команда "Найти" лишняя:
Если Строки.Количество() > 1 Тогда
Для каждого НайденныеСтроки Из Строки Цикл
Если Строки.Найти(НайденныеСтроки) > 0 Тогда
- так как все строки для данного отбора уже найдены, то незачем делать последнее "Найти". Нужно просто вывести номера найденных строк.
2. Данная процедура будет делать отбор для каждой строки, в том числе и для тех, которые дублируют строки, обработанные ранее. То есть, в частности, будет выдаваться несколько сообщений по поводу одних и тех же дублей.
3. Для каждой строки ТЧ идет цикл по колонкам Отбор.Вставить... Вставить все колонки в отбор правильнее перед циклом по строкам ТЧ. А в цикле по строкам - заполнять значения отбора.
4. Отбор делается по строковому представлению, что неправильно. Есть куча примеров, когда объекты разные, но их строковое представление совпадает. Например, наименования номенклатуры совпадают, но разные артикулы.
5. Более того, зачем вообще эти многократные отборы и поиски? Лучше отсортировать таблицу значений по всем колонкам. Тогда все дублирующиеся строки окажутся рядом друг с другом. Останется только один раз пройтись циклом сверху вниз, сравнивая текущую строку со следующей.
(Если п.5 еще можно снять по той причине, что сортировка меняет исходную ТЧ - что нежелательно - то с п.п.1-4 вряд ли можно спорить)
Так что, наверно, "минус".
1. Проверка в самом начале:
Если Тип(ТЧ) = Тип("ТаблицаЗначений") Тогда
ТаблЗнач = ТЧ;
Иначе
ТаблЗнач = ТЧ.Выгрузить();
КонецЕсли;
В комментарии к функции описано, что передаваться может или таблица значений или табличная часть документа.
Проверка на таблицу значений есть, а проверки на табличную часть нет. Непорядок.
Т.е. если мы передадим в параметре ТЧ значение типа СписокЗначений (в нем же тоже можно дубли поискать), то завал обеспечен.
2. Не помню где, но сами 1С-овцы говорили, что при обработке таблиц значений вместо метода НайтиСтроки лучше использовать построитель запросов с соответствующим источником - и быстрее, и надежнее, и возможностей больше.
3. В дополнение к (1) о формировании отбора перед основным циклом добавлю, что заполнение такого отбора в основном цикле лучше производить методом ЗаполнитьЗначенияСвойств(...) - просто, быстро, надежно.
(6) "Слабо/не слабо" - не аргумент и не ответ на критику. А критика реализации, на мой взгдяд, вполне конструктивная. И если учесть все то, что здесь говорилось, то можно написать очень даже неплохой и эффективный обработчик.
(11) Ваш вариант сработает только в том случае, если все колонки в ТЗ типизированы.
А данная реализация претендует на универсальность.
Сыровато, недодлано, крайне ограниченное применение идеи как таковой!
Минус пока..
Ну и вообщем - метод типовой. Есть куда более интересные и более продуктивные решения.
Не кипи. Ты не в детском саду и здесь не будут радостно хлопать в ладоши только потому, что ты ЧТО-ТО сделал. Скопируют твой код люди не глядючи и кое-кто получит проблему на свою голову. Поэтому и указывают на недостатки в коде. А минус как предупреждение, чтобы хоть в комментарии заглянули отчего так.
Не кипи. Ты не в детском саду и здесь не будут радостно хлопать в ладоши только потому, что ты ЧТО-ТО сделал. Скопируют твой код люди не глядючи и кое-кто получит проблему на свою голову. Поэтому и указывают на недостатки в коде. А минус как предупреждение, чтобы хоть в комментарии заглянули отчего так.
глуп, тот программист, что просто тупо копирует чужой код, не разобравшись в нем. :)
Проще всего создать временную таблицу, поместить туда таблицу значений + 1 колонка с цифрой 1 Свернуть всё это просуммировав колонку с цифрой 1 и отбор на итог >1. В результате получим таблицу дублей. При желании можно настроить не на все колонки, а только определенные.
да согласен, тоже как вариант., единственное, что так ты не сможешь сообщить какие строки одинаковые, и пользователю придется искать по наименованию, а если в табл. 500 строк то это увеличит время поиска.
единственное, что так ты не сможешь сообщить какие строки одинаковые, и пользователю придется искать по наименованию, а если в табл. 500 строк то это увеличит время поиска.
А кто мешает сделать еще один запрос к полученной таблице дублей и присоединить таблицу наименований?
и все это на сервере.
Функция ЕстьДублиТоваров()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПеремещениетчТовары.Товар,
| ПеремещениетчТовары.Товар.Наименование,
| ПеремещениетчТовары.НомерСтроки
|ПОМЕСТИТЬ Таблица
|ИЗ
| Документ.Перемещение.тчТовары КАК ПеремещениетчТовары
|ГДЕ
| ПеремещениетчТовары.Ссылка = &Ссылка
| И ПеремещениетчТовары.Товар <> ЗНАЧЕНИЕ(Справочник.Товары.ПустаяСсылка)
| И ПеремещениетчТовары.Товар.ВидТовара <> ЗНАЧЕНИЕ(Перечисление.ВидыТоваров.Услуга)
|;
|
|ВЫБРАТЬ
| Таблица.Товар
|ПОМЕСТИТЬ Дубли
|ИЗ
| Таблица КАК Таблица
|
|СГРУППИРОВАТЬ ПО
| Таблица.Товар
|
|ИМЕЮЩИЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Таблица.НомерСтроки) > 1
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| Таблица.ТоварНаименование,
| Таблица.НомерСтроки
|ИЗ
| Дубли КАК Дубли
| ЛЕВОЕ СОЕДИНЕНИЕ Таблица КАК Таблица
| ПО Дубли.Товар = Таблица.Товар";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Результат = Запрос.Выполнить();
естьДубли = НЕ Результат.Пустой();
Если естьДубли Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Повторение товара: "+СокрЛП(Выборка.ТоварНаименование)+ " в строке "+Выборка.НомерСтроки);
Возврат истина;
КонецЦикла;
КонецЕсли;
Возврат естьДубли;
КонецФункции
ПоказатьДумаю что колонка Номерстроки есть не во всех таблиц значений.
если я не ошибаюсь, то ее может не быть только в том случе, если таб. ты создаешь сам кодом. А если это табл. часть док. то там эта колонка есть всегда.
Знания бесценны и ими надо делиться, чтобы они совершенствовались - это так от себя :)
Не проще так?)
Для каждого Строка Из Тз Цикл
НайденныеСтроки = Тз.НайтиСтроки(Новый Структура("Сотрудник", Строка.Сотрудник));
Если НайденныеСтроки.Количество()>1 Тогда
ОбщегоНазначения.СообщитьОбОшибке("По сотруднику "+Строка.Сотрудник+" имеются дубли!");
КонецЕсли;
КонецЦикла;
Здесь идет поиск дублей по 1 полю, но нет проблем в структуру добавить все поля.
Процедура УдалениеДублейСтрокТЗ(ТаблЗнач)
МассивУдаляемыхДублей = Новый Массив;
Отбор = Новый Структура();
Для каждого Стр Из ТаблЗнач Цикл
Если МассивУдаляемыхДублей.Найти(Стр) = Неопределено Тогда
Отбор.Очистить();
Для каждого Колонки Из ТаблЗнач.Колонки Цикл
Отбор.Вставить(Колонки.Имя, Стр[Колонки.Имя]);
КонецЦикла;
Строки = ТаблЗнач.НайтиСтроки(Отбор);
Если Строки.Количество() > 1 Тогда
Для Сч=1 По Строки.Количество()-1 Цикл
МассивУдаляемыхДублей.Добавить(Строки[Сч]);
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для каждого Элем Из МассивУдаляемыхДублей Цикл
ТаблЗнач.Удалить(Элем);
КонецЦикла;
КонецПроцедуры
ПоказатьФункция УбратьПовторенияВТЗ(ТаблицаЗначенийТЗ,ИмяКолонки)
djfhcgssnNP=Новый ТаблицаЗначений;
Для каждого КолонкиNP Из ТаблицаЗначенийТЗ.Колонки Цикл
djfhcgssnNP.Колонки.Добавить(КолонкиNP.Имя);
КонецЦикла;
Индекс = ТаблицаЗначенийТЗ.Количество() - 1;
Пока Индекс >= 0 Цикл
СтрокаТаблицаЗначенийТЗ=ТаблицаЗначенийТЗ[Индекс];
Если СокрЛП(ТипЗнч(djfhcgssnNP.Найти(СтрокаТаблицаЗначенийТЗ.Abcdefа, ИмяКолонки)))="Не определено" Тогда
НоваяСтрока = djfhcgssnNP.Добавить();
НоваяСтрока[ИмяКолонки] = СтрокаТаблицаЗначенийТЗ[ИмяКолонки];
Для каждого КолонкиNPHN Из djfhcgssnNP.Колонки Цикл
НоваяСтрока[КолонкиNPHN.Имя] = СтрокаТаблицаЗначенийТЗ[КолонкиNPHN.Имя];
КонецЦикла;
КонецЕсли;
Индекс = Индекс - 1;
КонецЦикла;
Возврат djfhcgssnNP;
КонецФункции // УбратьПовторенияВТЗ()
Показать Запрос=новый Запрос;
МВТ = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст="
|ВЫБРАТЬ
| ТЗ1.*
|ПОМЕСТИТЬ ТЗ1
|ИЗ
| &ТЗ1 КАК ТЗ1
|;
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТЗ1.*,
|ИЗ ТЗ1 КАК ТЗ1
|;
|УНИЧТОЖИТЬ ТЗ1
|";
Запрос.УстановитьПараметр("ТЗ1",ТаблицаЗначений);
Результат = Запрос.Выполнить().Выгрузить();
ПоказатьПо крайней мере, сравнивая ТЗ со справочником по реквизиту "Строка неограниченной длины" выдавало ошибку "нельзя сравнивать поля бла-бла несовместимые типы"
Если СокрЛП(ТипЗнч(djfhcgssnNP.Найти(СтрокаТаблицаЗначенийТЗ.Abcdefа, ИмяКолонки)))="Не определено" Тогда
надо наверное
Если СокрЛП(ТипЗнч(djfhcgssnNP.Найти(СтрокаТаблицаЗначенийТЗ[ИмяКолонки], ИмяКолонки)))="Не определено" Тогда
У меня синтакс контроль браузера ошибку нашел. Не знаю, может, неправильно.
Отбор = Новый Структура();
НомерЗаписи = ТаблЗнач .Количество()-1;
Пока НомерЗаписи > 0 Цикл
Стр = ТаблЗнач.Получить(НомерЗаписи);
Отбор.Очистить();
Для каждого Колонки Из ТаблЗнач.Колонки Цикл
Если Колонки.Имя <> "НомерСтроки" Тогда
Отбор.Вставить(Колонки.Имя, Стр[Колонки.Имя]);
КонецЕсли;
КонецЦикла;
Строки = ТаблЗнач.НайтиСтроки(Отбор);
Если Строки.Количество() > 1 Тогда
НомерЗаписи = НомерЗаписи - Строки.Количество();
ПервыйНомер = Строки[0].НомерСтроки;
ТаблЗнач.Удалить(Строки[0]);
Строки.Удалить(0);
Для каждого НайденнаяСтрока Из Строки Цикл
Сообщить("Строка № " + ПервыйНомер + " совпадает со строкой № " + НайденнаяСтрока.НомерСтроки);
ТаблЗнач.Удалить(НайденнаяСтрока);
КонецЦикла;
Иначе
НомерЗаписи = НомерЗаписи - 1;
КонецЕсли;
КонецЦикла;
ПоказатьКак пишет автор, вдруг пригодится новичкам :)
&НаКлиенте
Процедура НайтиДубли(Команда)
Поля = Новый Массив;
Поля.Добавить("Номенклатура");
Поля.Добавить("Характеристика");
Дубли = ПроверитьТЧНаДубли(Объект.ТЧ, Поля);
Если Дубли.Количество() > 0 Тогда
Для Каждого Дубль Из Дубли Цикл
Сообщить("Табличная часть" имеет дубли в строках №:");
Для Каждого СтрокаДубля Из Дубль Цикл
Сообщить(СтрокаДубля);
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьТЧНаДубли(Знач ТЧ, Поля)
Возврат ПроверитьТЗНаДубли(ТЧ.Выгрузить(), Поля);
КонецФункции
&НаСервереБезКонтекста
//Функция поиска дублей в таблицах значений.
//Получает:
//ТЗ - таблицу значений (должна иметь стандартную колонку с уникальным индексом "НомерСтроки");
//Поля - массив полей для отбора.
//Возвращает:
//Массив Дубли массивов Дубль, содержащих НомерСтроки дублированных записей.
Функция ПроверитьТЗНаДубли(ТЗ, Поля)
Отбор = Новый Структура();
Дубли = Новый Массив;
Пока ТЗ.Количество() > 0 Цикл
СтрокаТЗ = ТЗ[0];
Отбор.Очистить();
Для Каждого Поле Из Поля Цикл
КолонкаТЗ = ТЗ.Колонки.Найти(Поле);
Если НЕ КолонкаТЗ = Неопределено Тогда Отбор.Вставить(Поле, СтрокаТЗ[Поле]); КонецЕсли;
КонецЦикла;
СтрокиДубля = ТЗ.НайтиСтроки(Отбор);
Если СтрокиДубля.Количество() > 1 Тогда
Дубль = Новый Массив;
Для Каждого СтрокаДубля Из СтрокиДубля Цикл
Дубль.Добавить(СтрокаДубля.НомерСтроки);
ТЗ.Удалить(СтрокаДубля);
КонецЦикла;
Дубли.Добавить(Дубль);
Иначе
ТЗ.Удалить(СтрокиДубля[0]);
КонецЕсли;
КонецЦикла;
Возврат Дубли;
КонецФункции
ПоказатьНаходит дубли по определенным полям.
&НаКлиенте
Процедура НайтиДубли(Команда)
Поля = Новый Массив;
Поля.Добавить("Номенклатура");
Поля.Добавить("Характеристика");
Дубли = ПроверитьТЧНаДубли(Объект.ТЧ, Поля);
Если Дубли.Количество() > 0 Тогда
Для Каждого Дубль Из Дубли Цикл
Сообщить("Табличная часть имеет дубли в строках №:");
Для Каждого СтрокаДубля Из Дубль Цикл
Сообщить(СтрокаДубля);
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьТЧНаДубли(Знач ТЧ, Поля) Экспорт
Возврат ПроверитьТЗНаДубли(ТЧ.Выгрузить(), Поля);
КонецФункции
&НаСервереБезКонтекста
//Функция поиска дублей в таблицах значений.
//Получает:
//ТЗ - таблицу значений (должна иметь стандартную колонку с уникальным индексом "НомерСтроки");
//Поля - массив полей для отбора (если нет, то используются все поля таблицы, кроме "НомерСтроки" и "ИсходныйНомерСтроки").
//Возвращает:
//Массив Дубли массивов Дубль, содержащих НомерСтроки дублированных записей.
Функция ПроверитьТЗНаДубли(ТЗ, Поля) Экспорт
Если ТипЗнч(ТЗ) = Тип("ТаблицаЗначений") Тогда
Отбор = Новый Структура();
Дубли = Новый Массив;
Если Поля.Количество() = 0 ИЛИ Поля = Неопределено Тогда
Для Каждого Поле Из ТЗ.Колонки Цикл
Если Поле.Имя <> "НомерСтроки" И Поле.Имя <> "ИсходныйНомерСтроки" Тогда Поля.Добавить(Поле.Имя); КонецЕсли;
КонецЦикла;
КонецЕсли;
Пока ТЗ.Количество() > 0 Цикл
СтрокаТЗ = ТЗ[0];
Отбор.Очистить();
Для Каждого Поле Из Поля Цикл
КолонкаТЗ = ТЗ.Колонки.Найти(Поле);
Если НЕ КолонкаТЗ = Неопределено Тогда Отбор.Вставить(Поле, СтрокаТЗ[Поле]); КонецЕсли;
КонецЦикла;
СтрокиДубля = ТЗ.НайтиСтроки(Отбор);
Если СтрокиДубля.Количество() > 1 Тогда
Дубль = Новый Массив;
Для Каждого СтрокаДубля Из СтрокиДубля Цикл
Дубль.Добавить(СтрокаДубля.НомерСтроки);
ТЗ.Удалить(СтрокаДубля);
КонецЦикла;
Дубли.Добавить(Дубль);
Иначе
ТЗ.Удалить(СтрокиДубля[0]);
КонецЕсли;
КонецЦикла;
Возврат Дубли;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Показать
тзТестДублей = Данные.Выгрузить("Номенклатура");
количествоДоСвертки = тзТестДублей.Количество();
тзТестДублей.Свернуть("Номенклатура");
Если тзТестДублей.Количество() <> количествоДоСвертки Тогда
Сообщить("В таблице есть повторяющиеся строки!");
КонецЕсли;
Отбор = Новый Структура("Номенклатура");
Отбор.Вставить("Номенклатура",СтрокаТаблицы.Номенклатура);
НайденныеСтроки = Параметры.ТаблицаТовары.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество()>1 Тогда
КонецЕсли;
В моем случае, при обходе табличной части, мне нужно было выполнять определенные условия, если уже был или будет дальше дубль этой строки.
Для получения уведомлений о новых публикациях автора подключите телеграм бот: Инфостарт бот
№ 95921
Создание 25.10.11 10:32
Обновление 25.10.11 11:52
Просмотры 68072
Загрузки 0
Рейтинг
21
Комментарии 41
Код открыт Не указано
Рубрики Универсальные функции
Кому Программист
Тип файла Нет файла
Платформа Платформа 1С v8.3
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)