|
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
|
Хорошо спасибо :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |