helpf.pro
Регистрация
 +3 
Распечатать

Функция проверки на дубли строк в табличной части документа

Код 1C v 8.х
 Функция ПроверкаНаДублиСтрок(Ссылка, ИмяТаблЧасти = "Товары", Колонка = "Товар", Колонка2 = "", Отказ = Ложь, Заголовок = "") Экспорт

ИмяДока = Ссылка.Метаданные().Имя;

ЕстьДополнительно = Колонка2 <> "";

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Док." + Колонка + " КАК ID,
| ПРЕДСТАВЛЕНИЕ(Док." + Колонка + ") КАК Сверка," + ?(ЕстьДополнительно,"
| ПРЕДСТАВЛЕНИЕ(Док." + Колонка2 + ") КАК Сверка2,", "") + "
| Док.НомерСтроки КАК НомерСтроки,
| ДокКопия.НомерСтроки КАК НомерСтрокиКопия
|ИЗ
| Документ." + ИмяДока + "." + ИмяТаблЧасти + " КАК Док
| СОЕДИНЕНИЕ Документ." + ИмяДока + "." + ИмяТаблЧасти + " КАК ДокКопия
| ПО Док." + Колонка + "= ДокКопия." + Колонка + "
| И Док.НомерСтроки < ДокКопия.НомерСтроки" + ?(ЕстьДополнительно,"
| И Док." + Колонка2 + "= ДокКопия." + Колонка2, "") + "
|ГДЕ
| Док.Ссылка = &Ссылка
| И ДокКопия.Ссылка = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ID,
| НомерСтроки";

Запрос.УстановитьПараметр("Ссылка", Ссылка);
Результат = Запрос.Выполнить().Выбрать();
ЕстьДубль = Ложь;
СтрокаСообщения = "Проверка табличной части на дублирующиеся строки:
|Обнаружены одинаковые позиции! Колонк"
+ ?(ЕстьДополнительно, "и: " +Колонка +" и " + Колонка2, "а: "+ Колонка);

Пока Результат.Следующий() Цикл

Если ЕстьДополнительно Тогда
Значение = СокрП(Результат.Сверка)+ ", " + Результат.Сверка2;
Иначе
Значение = Результат.Сверка;
КонецЕсли;

СтрокаСообщения = СтрокаСообщения + Символы.ПС + "Строка № " + Формат(Результат.НомерСтроки, "ЧГ=")
+ " и строка № " + Формат(Результат.НомерСтрокиКопия, "ЧГ=")
+ " значение: " + Значение;
ЕстьДубль = Истина;

КонецЦикла;

Если ЕстьДубль Тогда
обСообщитьОбОшибке(СтрокаСообщения, Отказ, Заголовок);
КонецЕсли;
Возврат Отказ;
КонецФункции
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 22900
 +3 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 52
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей.
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.