|   |   | 
| 
 | 1с Удалять из таблицы значений одинаковые строки | ☑ | ||
|---|---|---|---|---|
| 0
    
        Hикита 12.12.14✎ 10:55 | 
        Подскажите пожалуйста, как Удалять из Таблицы Значений одинаковые строки. Причем удалять не только дубликаты а удалять и оригинал. 
 То есть например: Карандаш, Ручка, Ластик, Дырокол, Карандаш, Дырокол. А должно остаться : Ручка, Ластик. | |||
| 1
    
        chelentano 12.12.14✎ 10:57 | 
        (0) добавляешь колонку со счётчиком, сворачиваешь, обходишь ТЗ и удаляешь строки, где счётчик больше 1     | |||
| 2
    
        Ёпрст гуру 12.12.14✎ 10:58 | 
        ДопКолонка, забить еденичкой, свернуть, отбор по допколонке=1..всё.     | |||
| 3
    
        Ёпрст гуру 12.12.14✎ 10:58 | 
        Обход никакой нигде не нужен, если что.     | |||
| 4
    
        chelentano 12.12.14✎ 10:59 | 
        (3) а если 7.7?     | |||
| 5
    
        Ёпрст гуру 12.12.14✎ 10:59 | 
        Можешь и запросом, но это будет медленнее, если тз ужо есть.     | |||
| 6
    
        Ёпрст гуру 12.12.14✎ 10:59 | 
        (4) ИндексированнаяТЗ и отбор.     | |||
| 7
    
        chelentano 12.12.14✎ 11:01 | 
        (6) ну, ИТЗ не у всех есть, я просто в общем случае написал     | |||
| 8
    
        Ёпрст гуру 12.12.14✎ 11:03 | 
        (7) да не вопрос, сортировка и выгрузить + найтиЗначение для получения первой 1.     | |||
| 9
    
        Hикита 12.12.14✎ 11:06 | 
        (4) 1c 8.3     | |||
| 10
    
        Hикита 12.12.14✎ 11:07 | 
        (2)А есть пример цикла?     | |||
| 11
    
        Ёпрст гуру 12.12.14✎ 11:09 | 
        (10) какого цикла ?     | |||
| 12
    
        Hикита 12.12.14✎ 11:09 | 
        (11) удаления одинаковых строк     | |||
| 13
    
        DCKiller 12.12.14✎ 11:11 | 
        (12) запросом к ТЗ. Или через "НайтиСтроки" отобрать нужные, а остальные убрать     | |||
| 14
    
        Hикита 12.12.14✎ 11:12 | 
        (13) Это просто обработка     | |||
| 15
    
        Ёпрст гуру 12.12.14✎ 11:14 | 
        На вот, занимайся
 Объект = Новый ТаблицаЗначений; Объект.Колонки.Добавить("Вася"); Для к = 1 По 10 Цикл НоваяСтрока = Объект.Добавить(); НоваяСтрока.Вася = к; КонецЦикла; Для к = 1 По 5 Цикл НоваяСтрока = Объект.Добавить(); НоваяСтрока.Вася = к; КонецЦикла; Объект.Колонки.Добавить("СлужебнаяКолонка"); Объект.ЗаполнитьЗначения(1,"СлужебнаяКолонка"); Объект.Свернуть("Вася","СлужебнаяКолонка"); Отбор = Новый Структура("СлужебнаяКолонка",1); Объект = Объект.Скопировать(Объект.НайтиСтроки(Отбор)); Объект.ВыбратьСтроку(); Возврат; | |||
| 16
    
        Hикита 12.12.14✎ 11:22 | 
        (15) Не вижу тут удалить или отчистить . Таблицу     | |||
| 17
    
        Ненавижу 1С гуру 12.12.14✎ 11:27 | 
        (16) он сделал копию и заместил:
 Объект = Объект.Скопировать(Объект.НайтиСтроки(Отбор)); | |||
| 18
    
        DCKiller 12.12.14✎ 11:32 | 
        (14) И?     | |||
| 19
    
        Ёпрст гуру 12.12.14✎ 11:33 | 
        (16) 
 Видишь суслика ? Нет И я не вижу, а он есть! ©ДМБ | |||
| 20
    
        Hикита 12.12.14✎ 11:41 | 
        НоваяСтрока.Вася = к;
 это что ? | |||
| 21
    
        DmitriyDI 12.12.14✎ 11:43 | 
        а почему бы не сделать запросом ?     | |||
| 22
    
        vicof 12.12.14✎ 11:43 | 
        (20) Это код     | |||
| 23
    
        Hикита 12.12.14✎ 11:44 | 
        (15) Вася это колонка что ли?     | |||
| 24
    
        Ёпрст гуру 12.12.14✎ 11:44 | 
        (20)
 Это пример заполнения таблицы значений с "дублями" строк. Чего, детский пример не в состоянии осилить ? | |||
| 25
    
        Ёпрст гуру 12.12.14✎ 11:44 | 
        (21) будет медленнее, если ТЗ уже создана     | |||
| 26
    
        Ёпрст гуру 12.12.14✎ 11:44 | 
        (23) догадливый.     | |||
| 27
    
        Hикита 12.12.14✎ 11:51 | 
        (26) Пишет ошибку "Нельзя изменять поле, содержащее объект данных формы"     | |||
| 28
    
        vicof 12.12.14✎ 11:54 | 
        (27) Обзови объект по-другому     | |||
| 29
    
        DmitriyDI 12.12.14✎ 11:57 | 
        (25) ясно)!     | |||
| 30
    
        Hикита 12.12.14✎ 12:00 | 
        (28) Помогло :) 
 Объект1 = Новый ТаблицаЗначений; Мы должны предварительно создать ТаблицуЗначений и назвать её "Объект1" ? | |||
| 31
    
        Ёпрст гуру 12.12.14✎ 12:02 | 
        (30) Да хоть Машей её назови, лишь бы не мяукала.
 ЗЫ: Домашку в школе задали что ле ? | |||
| 32
    
        Hикита 12.12.14✎ 12:08 | 
        (31) Да домашку  гдз нет     | |||
| 33
    
        Hикита 12.12.14✎ 12:09 | 
        (31) Ну я к тому что Объект1 -это название ТаблицыЗначений?     | |||
| 34
    
        Hикита 12.12.14✎ 12:19 | 
        сделал так 
 Объект1 = Новый ТаблицаЗначений; Объект1.Колонки.Добавить("Номенклатура"); Для к = 1 По 10 Цикл НоваяСтрока = Объект1.Добавить(); НоваяСтрока.Номенклатура = к; КонецЦикла; Для к = 1 По 5 Цикл НоваяСтрока = Объект1.Добавить(); НоваяСтрока.Номенклатура = к; КонецЦикла; Объект1.Колонки.Добавить("СлужебнаяКолонка"); Объект1.ЗаполнитьЗначения(1,"СлужебнаяКолонка"); Объект1.Свернуть("Номенклатура","СлужебнаяКолонка"); Отбор = Новый Структура("СлужебнаяКолонка",1); Объект1= Объект1.Скопировать(Объект1.НайтиСтроки(Отбор)); Объект1.ВыбратьСтроку(); Возврат; Что то не работает.......... так же создал таблицу значений с наименованием "Объект1" | |||
| 35
    
        Ёпрст гуру 12.12.14✎ 12:20 | 
        (34) чего не работает ?     | |||
| 36
    
        Hикита 12.12.14✎ 12:22 | 
        Ну кажет все строчки.     | |||
| 37
    
        Ёпрст гуру 12.12.14✎ 12:22 | 
        Кто калитку забыл прикрыть ?     | |||
| 38
    
        Ёпрст гуру 12.12.14✎ 12:22 | 
        (36) все, это какие ?     | |||
| 39
    
        Hикита 12.12.14✎ 12:28 | 
        Ну изначально я с двух таблиц (ТЗнач и ТЗнач2)  по кнопке копирую данные в одну таблицу (ТаблСравнения).
 ТЗнач и ТЗнач2 содержат одинаковые строки за исключением некоторых. В итоге в ТаблСравнения мы видим все строки из (ТЗнач и ТЗнач2). А хотелась бы видеть только различные строки. (38) Все, это строки из 2-х таблиц с одинаковыми Номенклатурами | |||
| 40
    
        vicof 12.12.14✎ 12:34 | 
        "Подскажите пожалуйста, как Удалять из Таблицы Значений одинаковые строки. Причем удалять не только дубликаты а удалять и оригинал. "
 "Ну изначально я с двух таблиц (ТЗнач и ТЗнач2) по кнопке копирую данные в одну таблицу (ТаблСравнения). ТЗнач и ТЗнач2 содержат одинаковые строки за исключением некоторых. В итоге в ТаблСравнения мы видим все строки из (ТЗнач и ТЗнач2). А хотелась бы видеть только различные строки." Автор, ты мысли свои можешь понятно излагать? | |||
| 41
    
        Ёпрст гуру 12.12.14✎ 12:34 | 
        Мот так будет понятнее ??
 ТаблицаЗначений = Новый ТаблицаЗначений;//создаем новую таблицу значений ТаблицаЗначений.Колонки.Добавить("Вася");//создаем колонку в ней Для к = 1 По 10 Цикл //делаем цикл от 1 до 10 НоваяСтрока = ТаблицаЗначений.Добавить();//добавляем новую строку в созданную ранее таблицу значений НоваяСтрока.Вася = "Мармелад "+к; //присваиваем новой строке в колонке Вася значение КонецЦикла;//заканчиваем цикл, когда к станет равным 10 Для к = 1 По 5 Цикл //делаем еще один цикл для создания "дублей" в колонке Вася НоваяСтрока = ТаблицаЗначений.Добавить();//добавляем новую строку НоваяСтрока.Вася = "Мармелад "+к;//присваиваем новой строке в колонке Вася значение КонецЦикла;//заканчиваем цикл, когда к станет равным 5 ТаблицаЗначений.ВыбратьСтроку();//погляди вниматочно на созданную таблицу значений //смотрим, смотрим - в ней есть одинаковые строки в колонке Вася!! ТаблицаЗначений.Колонки.Добавить("СлужебнаяКолонка"); //добавляем ЫШО одну колонку в нашу таблицу значений ТаблицаЗначений.ЗаполнитьЗначения(1,"СлужебнаяКолонка"); //заполняем нашу колоночку "единичками" ТаблицаЗначений.Свернуть("Вася","СлужебнаяКолонка");//сворачиваем табличку значений, суммируя по колонке "СлужебнаяКолонка" ТаблицаЗначений = ТаблицаЗначений.Скопировать(ТаблицаЗначений.НайтиСтроки( Новый Структура("СлужебнаяКолонка",1))); //убираем "дубли" //из таблички значений, делая отбор по колонке СлужебнаяКолонка, где значения=1 ТаблицаЗначений.ВыбратьСтроку(); //глядим вниматочно на результат //УРРА! Дублей больше нет, совсем. //наслаждаемся положительными эмоциями, //кушаем печенки. | |||
| 42
    
        vicof 12.12.14✎ 12:36 | 
        (41) Ты автора сейчас в кататонический ступор вогнал     | |||
| 43
    
        Ёпрст гуру 12.12.14✎ 12:38 | 
        (39) завязывай уже с наркотой.     | |||
| 44
    
        Filin 12.12.14✎ 12:39 | 
        (41)Мощно ! :)) Особенно про кушание печёнок :))     | |||
| 45
    
        riv40rus 12.12.14✎ 12:49 | 
        (41) воу, воу, воу, полегче кавбой! ©     | |||
| 46
    
        Hикита 12.12.14✎ 12:58 | 
        (41) Круто все понятно...только пишет Нельзя изменять поле, содержащее объект данных формы.     | |||
| 47
    
        Крошка Ру 12.12.14✎ 13:01 | 
        Круто. 
 Школа 1С. | |||
| 48
    
        Крошка Ру 12.12.14✎ 13:01 | 
        *Ясли 1С.     | |||
| 49
    
        Ёпрст гуру 12.12.14✎ 13:02 | 
        (46) полное описание ошибки в студию     | |||
| 50
    
        ssh2QQ6 12.12.14✎ 13:04 | 
        Наверное у него таблица значений - реквизит упр формы     | |||
| 51
    
        Aleksandr N 12.12.14✎ 13:06 | 
        Ура! Еще одна пятничная ветка открылась)))     | |||
| 52
    
        Hикита 12.12.14✎ 13:07 | 
        (49) {Обработка.СравнениеТаблиц.Форма.Форма.Форма(56)}: Ошибка при установке значения атрибута контекста (ТаблицаЗначений)
 ТаблицаЗначений = Новый ТаблицаЗначений;//создаем новую таблицу значений по причине: Нельзя изменять поле, содержащее объект данных формы | |||
| 53
    
        Hикита 12.12.14✎ 13:07 | 
        (50) ДА управляемые формы     | |||
| 54
    
        Ёпрст гуру 12.12.14✎ 13:09 | 
        (52) нажимаем Ctrl+H в пофигураторе, заменяем ТаблицаЗначений на Федя, исправляем строку
 Федя = Новый Федя;//создаем новую таблицу значений на Федя = Новый ТаблицаЗначений;//создаем новую таблицу значений сохраняем, запускаем, кушаем печенки | |||
| 55
    
        Hикита 12.12.14✎ 13:18 | 
        (54) Ошибки нету,   отбор серавно не загружается в таблицу "Федя"     | |||
| 56
    
        Ёпрст гуру 12.12.14✎ 13:19 | 
        чей-то ?     | |||
| 57
    
        vicof 12.12.14✎ 13:21 | 
        (56) Потому что надо писать
 Никита = Новый ТаблицаЗначений; | |||
| 58
    
        Hикита 12.12.14✎ 13:21 | 
        //Созд табл и отражаем то что нам нужно
 ТТаблицаЗначений = Новый ТаблицаЗначений;//создаем новую таблицу значений ТТаблицаЗначений.Колонки.Добавить("Номенклатура");//создаем колонку в ней Для к = 1 По 10 Цикл //делаем цикл от 1 до 10 НоваяСтрока = ТТаблицаЗначений.Добавить();//добавляем новую строку в созданную ранее таблицу значений НоваяСтрока.Номенклатура = "Номенклатура"+к; //присваиваем новой строке в колонке Номнклатура значение КонецЦикла;//заканчиваем цикл, когда к станет равным 10 Для к = 1 По 5 Цикл //делаем еще один цикл для создания "дублей" НоваяСтрока = ТТаблицаЗначений.Добавить();//добавляем новую строку НоваяСтрока.Номенклатура = "Номенклатура"+к; КонецЦикла;//заканчиваем цикл, когда к станет равным 5 ТТаблицаЗначений.ВыбратьСтроку(); ТТаблицаЗначений.Колонки.Добавить("СлужебнаяКолонка"); //добавляем одну колонку в нашу таблицу значений ТТаблицаЗначений.ЗаполнитьЗначения(1,"СлужебнаяКолонка"); //заполняем нашу колонку "единичками" ТТаблицаЗначений.Свернуть("Номенклатура","СлужебнаяКолонка");//сворачиваем табличку значений, суммируя по колонке "СлужебнаяКолонка" ТТаблицаЗначений = ТТаблицаЗначений.Скопировать(ТТаблицаЗначений.НайтиСтроки( Новый Структура("СлужебнаяКолонка",1))); //убираем "дубли" ТТаблицаЗначений.ВыбратьСтроку(); ошибка {Обработка.СравнениеТаблиц.Форма.Форма.Форма(56)}: Ошибка при установке значения атрибута контекста (ТТаблицаЗначений) ТТаблицаЗначений = Новый ТаблицаЗначений;//создаем новую таблицу значений по причине: Нельзя изменять поле, содержащее объект данных формы | |||
| 59
    
        Hикита 12.12.14✎ 13:22 | 
        ТТаблицаЗначений - Это реквизит с типом ТаблицаЗначений + сделал колонку "Номенклатура"     | |||
| 60
    
        vicof 12.12.14✎ 13:23 | 
        (59) Удали ее нах     | |||
| 61
    
        Diman000 12.12.14✎ 13:24 | 
        Выбрось управляемые формы с такими вопросами     | |||
| 62
    
        ssh2QQ6 12.12.14✎ 13:24 | 
        (59) 
 вместо ТТаблицаЗначений = Новый ТаблицаЗначений;//создаем новую таблицу значений ТТаблицаЗначений.Колонки.Добавить("Номенклатура");//создаем колонку в ней пиши: ТТаблицаЗначений = РеквизитФормыВзначение(ТТаблицаЗначений ); А в конце ЗначениеВРекизитФормы | |||
| 63
    
        vicof 12.12.14✎ 13:25 | 
        (62) Не осилит     | |||
| 64
    
        Ёпрст гуру 12.12.14✎ 13:26 | 
        Чорт, думаю..
 печенки - обломись, ходи голодный! | |||
| 65
    
        Hикита 12.12.14✎ 13:26 | 
        (62) {Обработка.СравнениеТаблиц.Форма.Форма.Форма(58)}: Ошибка при вызове метода контекста (РеквизитФормыВЗначение)
 ТТаблицаЗначений = РеквизитФормыВзначение(ТТаблицаЗначений ); по причине: Несоответствие типов (параметр номер '1') | |||
| 66
    
        ssh2QQ6 12.12.14✎ 13:27 | 
        (65) ТТаблицаЗначений = РеквизитФормыВзначение("ТТаблицаЗначений" );     | |||
| 67
    
        ssh2QQ6 12.12.14✎ 13:28 | 
        В кавычках имя реквизита должно быть     | |||
| 68
    
        Hикита 12.12.14✎ 13:33 | 
        (66) Та же самая ошибка     | |||
| 69
    
        vicof 12.12.14✎ 13:35 | 
        ТаблицаЗначений = РеквизитФормыВзначение("ТТаблицаЗначений" );
 (68) иди за метлой | |||
| 70
    
        Hикита 12.12.14✎ 13:39 | 
        (69) ТаблицаЗначений причем здесь  это если у нас переменная ТТаблицаЗначений ?     | |||
| 71
    
        vicof 12.12.14✎ 13:42 | 
        (70) Потому что сначала книжки надо читать, а потом уже программировать пытаться.
 Для начала дай определение реквизиту формы и объекту формы. | |||
| 72
    
        ssh2QQ6 12.12.14✎ 13:43 | 
        (70)  ты пытаешься изменить поле ТТаблицаЗначений, 
 ТТаблицаЗначений в контекстном серверном вызове это обращение к реквизиту формы. Платформа не дает его изменить, нельзя менять "Нельзя изменять поле, содержащее объект данных формы" Поэтому см (69) | |||
| 73
    
        Diman000 12.12.14✎ 13:44 | 
        Никит, детский сад тут устроил чесслово.
 Основный алгоритм тебе нарисовали, разбирайся дальше сам с управляемыми формами. Представляю у меня бы сын в третьем классе создал где-нить тему "делю столбиком, не получается, помогите". И на 3 страницы. | |||
| 74
    
        vicof 12.12.14✎ 13:46 | 
        (73) А ты почитай детские форумы, мож он так и поступает)     | |||
| 75
    
        Hикита 12.12.14✎ 13:47 | 
        Хорошо спасибо :)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |