Комплексная конфигурация 7.7(самописная)

Новая тема
Добрый день!!!
Подскажите пожалуйста кто может,если конечно что-то станет понятно из моего
рассказа.
Есть документ Заказ,на его форме есть реквизит ПолеВвода - "ВЗ", в который
автоматически с новой строки помещается такая строка "ПолныйКод()_Наименование_Цена".
При выводе документа на печать просто выводился перечень строк из этого реквизита.Сейчас
возникла необходимость сортировать строки (пока неважно по какому из полей) для
отслеживания дублей.
Вопрос,как в печатную форму документа передавать каждую строку из "ВЗ" и как впоследствии
можно их отсортировать(сгрупировать).
А может я не тем путём пошла???Может можно группировать сразу при автоматическом вводе
строки в ВЗ???
Спасибо за помощь!!!
"Смутно, но примерно понятно.
Насколько я понял, "ВЗ" - поле для ввода многострочного текста и этот текст выглядит там примерно так:
000010_Колесо_5000.00
000014_Шина_2200.00
000031_Фара_4000.00

При этом значения в строках могут повторяться и основная задача - поиск дублей строк.
//Текстовое поле преобразуем в таблицу значений. С ней работать проще.
ТаблДанных=СоздатьОбъект("ТаблицаЗначений");
ТаблДанных.НоваяКолонка("Код");
ТаблДанных.НоваяКолонка("Наименование");
ТаблДанных.НоваяКолонка("Цена");
Для i=1 По СтрКоличествоСтрок(ВЗ) Цикл
    Стр=СтрПолучитьСтроку(ВЗ,i);
    Если ПустаяСтрока(Стр)=0 Тогда
          СписокРеквизитов=глРазложить(Стр,"_");
          Если СписокРеквизитов.РазмерСписка()=3 Тогда
               ТаблДанных.НоваяСтока();
               ТаблДанных.Код=СписокРеквизитов.ПолучитьЗначение(1);
               ТаблДанных.Наименование=СписокРеквизитов.ПолучитьЗначение(2);
               ТаблДанных.Цена=СписокРеквизитов.ПолучитьЗначение(3);
          КонецЕсли;
    КонецЕсли;
КонецЦикла;
//получили ТаблДанных, которую можно сортировать, сворачивать и т.п.
//для примера решим подзадачу о выяснении дубликатов строк по ключевому полю, пусть, например, таким полем будет "Наименование"
КлонТаблДанных=СоздатьОбъект("ТаблицаЗначений");
ТаблДанных.Выгрузить(КлонТаблДанных);
КлонТаблДанных.НоваяКолонка("КоличествоВхождений","Число",10,0);
КлонТаблДанных.Заполнить(1,,,"КоличествоВхождений");
КлонТаблДанных.Свернуть("Наименование","КоличествоВхождений");
Для i=1 По КлонТаблДанных.КоличествоСтрок() Цикл
    Если КлонТаблДанных.ПолучитьЗначение(i,"КоличествоВхождений")>1 Тогда
         Стр="В данных имеется дублирование по позиции """""+КлонТаблДанных.ПолучитьЗначение(i,"Наименование")+""""" в строках: ";
         Для t=1 По ТаблДанных.КоличествоСтрок() Цикл
              Если КлонТаблДанных.ПолучитьЗначение(i,"Наименование")=ТаблДанных.ПолучитьЗначение(t,"Наименование") Тогда
                   Стр=Стр+Строка(t)+", ";
              КонецЕсли;
         КонецЦикла;
         Сообщить(Лев(Стр,СтрДлина(Стр)-2));
    КонецЕсли;
КонецЦикла;"
Ух ты!!!Ну вы как всегда меня не подвели,но неожидала что всё будет так отлично.
Буду сейчас пробовать.
Заранее огромадное спасибо!Thorvardr просто супер помощник.
Обязательно напишу про результаты
как это комплексная-самописная ?
Читают тему
(гостей: 1)

Быстрый переход