Как удалить из ТЗ пвторяющуюся строку #401565


#0 by Asdef
Народ, могли бы вы подсказать, как примерно реализовать следующее: Есть ТЗ с двумя колонками, примерно такая: Нужно как-то удалить строку, которая повторяется, в данном случае последнюю строку (1231 Петров).
#0 by Asdef
Народ, могли бы вы подсказать, как примерно реализовать следующее: Есть ТЗ с двумя колонками, примерно такая: Нужно как-то удалить строку, которая повторяется, в данном случае последнюю строку (1231 Петров).
#1 by VladZ
Какие еще колонки есть?
#2 by Asdef
еще одна, с окладом
#3 by VladZ
Кури в сторону "Свернуть".
#4 by VladZ
+3 МояТЗ.Свернуть("НеПонятныйКод, Сотрудник, оклад","")
#5 by Asdef
Свернуть будет суммировать оклады, что не гуд...
#6 by VladZ
Если оклад у сотрудника не изменялся - варинат . В противном случае тебе поможет только удаление перебором.
#7 by Shurjk
Наверное стоит для каждой строчки отобрать строчки с текущим наименованием если их получиться больше 1, то удалить лишние.
#8 by rem4755
Наверное так: МояТЗ.Свернуть("НеПонятныйКод, Сотрудник","оклад")
#9 by Asdef
попробовал на всякий случай ваш код, не получилось ( Таблица1.Свернуть("Табельный, Сотрудник, Оклад"); {Обработка.ПерерасчетыВДок1.Форма.Модуль}: Недостаточное число параметров передано при вызове функции/процедуры объекта
#10 by VladZ
Нет, не так. Оклад просуммируется. Внимательно смотри, что тебе пишут.
#11 by Chum
индексированнаятаблица умеет очень многое
#12 by Туц
Вопросы 1. Порядок строк должен сохраниться? 2. Насколько большая таблица. Количество строк. 3. Какие требования к скорости работы?
#13 by Asdef
ну да, примерно так нужно, тока оклад потом при свертке суммируется, что не нужно совсем )
#14 by VladZ
+12 Я бы еще добавил: Каким образом получена это ТЗ? Если запросом - то можно устранить проблему там.
#15 by Asdef
1. порядок не обязательно 2. таблица примерно тыщу строк содержит 3. скорость не имеет рещающего значения, главное чтобы получилась в итоге нормальная ТЗ
#16 by de Bug
Таблица1.Свернуть("Табельный, Сотрудник, Оклад",);
#17 by Дядя Васька
по слогам прочти, еще СП хорошо помогает...
#18 by Дядя Васька
Если оклады в разных строках одинаковые, взлетит. Если нет, то еще подумать надо, а стоит ли удалять...
#19 by Asdef
de Bug, оклады не получится свернуть, т.к. они всего чуть отличаются (на 1 рубль)
#20 by Asdef
Дядя Васька, оклады 3 столбще всего на рубль различаются )
#21 by Туц
Тебе строку обязательно последнюю нужно удалять? Что считается повторением? Когда обе колонки одинаковые или когда только сотрудники одинаковые?
#22 by VladZ
Тогда давай с самого начала: что ты хочешь в итоге получить?
#23 by Дядя Васька
С конца на начало перебирай тогда, как-то так:
#24 by Asdef
Туц, строка эта может в средине ТЗ быть. в итоге я хочу чтобы не было в ТЗ одинаковых табельных номеров )
#25 by VladZ
Ответь на
#26 by Sammo
Имхо, проблема не в том, чтобы удалить, а в том, чтобы определить двоения, да? Например, сортировать и пробежаться, сравнивая с предыдущей. Например, добавить колонку туда 1 и свернуть. Ну и дальше - что фантазия подскажет
#27 by Дядя Васька
Вместо сотрудника табельный номер тогда. Короче смысл ты понял...
#28 by Asdef
VladZ: в итоге я хочу чтобы не было в ТЗ одинаковых табельных номеров )
#29 by Туц
Я понимаю что она где угодно может быть. Я спрашиваю из двух одинаковых которую удалять имеет значение? А табельный номер у тебя в ТЗ есть?
#30 by Asdef
т.е. удалить строки с табельным, если он уже встречался )
#31 by Дядя Васька
Ну отсортируй по табельному и удаляй как в . В чем сложность-то?
#32 by VladZ
Это я понял. Как бы тебе объяснить...  Вот представь, ты строишь дом. И задаешь вопрос: "куда мне положить следующий кирпич".  А строишь-то ты что? В был вопрос вида "Что строишь?"...
#33 by Asdef
Дядя Васька, не получилось (
#34 by Asdef
Sammo, примерно так )
#35 by Asdef
Туц, из двух одинаковых не имеет знакчения какую удалять ) да, табельный в ТЗ есть
#36 by Туц
#37 by Андрюха
#38 by Туц
Телепаты в отпуске. Могу предположить, что нужно так.
#39 by Дядя Васька
Что конкретно не получилось?
#40 by Asdef
Дядя Васька: Если Таблица1.ПолучитьЗначение(-Сч-1, "Табельный")=Таблица1.Сотрудник Тогда {Обработка.ПерерасчетыВДок1.Форма.Модуль}: Номер за пределами значения!
#41 by Дядя Васька
ну как дите малое...
#42 by Туц
)))) ну да, там 0.
#43 by Asdef
Дядя Васька, написал код, запустил, однако он только отсортировал по Табельному и усе (
#44 by VladZ
Гы...  /* взял поп-корн */
#45 by Туц
Тоска и безнадега. *ушёл*
#46 by Skom
ВЕРНО
#47 by Asdef
сча код Туца попробую )
#48 by de Bug
Так, а как создается Таблица? Может, просто изначально не добавлять в нее повторящиеся строки?
#49 by Vitello
а я то думаю, где сегодня отжиг...
#50 by Дядя Васька
Это чо?  Если Таблица1.ПолучитьЗначение(-Сч-1, "Табельный")=Таблица1.Сотрудник Тогда
#51 by Asdef
Skom, не помогло, не свернулась (
#52 by VladZ
Я уже пытался спрашивать в ...  Зацени ответ автора...
#53 by Skom
сделай сначала как в просто после группируемых колонок ставишь ЗАПЯТУЮ... пробовать лень но если не сработает то вот так ТОЧНО сработает
#54 by Asdef
во как создаеццо:
#55 by Asdef
Skom:
#56 by Дядя Васька
оклады на рубль отличаются
#57 by VladZ
А лишние телодвижения зачем? Зачем после загрузки в таблицу значений удалять нулевые? Ну и не грузи их сразу. P.S. Что-то подсказывает мне, что у тебя получится не отчет, а "забавная зверушка в тыщи строк"...  :)
#58 by Дядя Васька
ЭТО ЧО? Если Таблица1.ПолучитьЗначение(-Сч-1, "Табельный")=Таблица1.СОТРУДНИК
#59 by Asdef
Дядя Вася, заметил ошибку, поменял, вот код, который работает    Таблица1.Сортировать("Табельный");
#60 by VladZ
Гы-гы-гы...  Ты ему десять раз повтори  - может тогда вкурит, в чем проблема...  :)
#61 by Туц
+1 Создал себе проблему, а теперь думает как ёе решить.
#62 by Туц
к
#63 by Дядя Васька
Все хорошо что хорошо кончается :)
#64 by Skom
по поводу свернуть
#65 by Дядя Васька
Да не, там как-то так:
#66 by Skom
это тебе по МЕТОДУ свернуть ТаблицаЗначений.Свернуть(<СворачиваемыеКолонки>,<Суммируемые>); вот сворачиваемые надо указывать а суммируемые НЕОБЯЗАТЕЛЬНО, но после сворачиваемых НАДО ЗАПЯТУЮ ОБЯЗАТЕЛЬНО
#67 by VladZ
Думаешь это все?  :) Следующие вопросы будут такие: 1. А что у меня с окладами? Бух (или кто-то у него заказчик) говорит, что оклады неправильные! 2. Я тут отчет писал (аж устал!) - получилось не то, что хотел. Что делать?  :)
#68 by Skom
тада пускай округлит оклады до ТЫСЯЧ
#69 by Asdef
насчет обработки Туца (код которой вверху), после запуска появляется поля для выбора строки, ну выбираю одного сотра, а дальше выводится ТЗ, только тама опять же есть повторяющиеся строки с табельными...
#70 by VladZ
аааа... Ржу не могу...   Пиши еще!!!
#71 by Дядя Васька
Вариант, но один черт строки перебирать. От свернуть уже никаких преимуществ в итоге.
#72 by Дядя Васька
+ Удаляя ручками просто переберет и походу удалит, а округляя сначала переберет, потом свертку еще. Имхо дольше будет, хотя на глаз и не заметно.
#73 by Skom
вот те примерный код для проверки всех полец таблицы
#74 by Asdef
VladZ оклады ж всего на рублю различаются )
#75 by Asdef
народ, а где вы так много кода берете?
#76 by VladZ
Кстати, замечание: автору все равно какую строчку удалять => значит инфа по колонке "Оклад" не имеет значения. В таком случае можно вообще сделать:
#77 by Skom
покурим чегой то...и из головы копипастим
#78 by VladZ
У нас есть генератор кода...
#79 by Asdef
аа, ясна, наработки свои и чужие показываете )
#80 by Дядя Васька
меня даже ангина отпустила :)))))))))
#81 by VladZ
+78 Причем выглядит так: Есть тестовое поле, куда пишешь, что хочешь на выходе и кнопка "Сгерерировать код".
#82 by Skom
счас конечно кричать все будут что лучче Индексированную таблицу использовать но это было сделано до того как появилась Индексированная таблица (кажисть)
#83 by Asdef
ээ, вы все подождите, какой код еще пробовать?
#84 by VladZ
+81 Т.е. пишешь: "Удалить задвоенные строки", а прога тебе ...
#85 by Skom
жгешь))))))
#86 by Дядя Васька
Глупо... На редкость неэффективное решение...
#87 by Туц
У меня есть аналогичная, но она быстрее работает. Принципом перестановки строк.
#88 by VladZ
Вот такой попробуй:
#89 by Skom
этот код используется для поиска в маленьких таблицах..... так что некритична скорость работы и повторяющихся значений 2-3 всего...
#90 by Туц
Код с использованием моего варианта в студию
#91 by Asdef
Свернуть("ТабельныйНомер,ФИО",); - не подходит, т.к. оклад нужен
#92 by VladZ
Какой из двух?
#93 by Дядя Васька
Знаешь поговорку: нет ничего более постоянного чем временные меры? Пишешь для маленькой, потом применяешь для большой, потому что некогда, и годами работает...
#94 by Туц
Автор ты ....... Сворачивается вспомогательная табличка. На неё можешь забить.
#95 by Asdef
Все, Туцу тоже спасибо, работает, последнюю строчку по комменты занес )
#96 by Skom
если бы вы увидели ВЕСЬ этот отчет (3078 строк) вы бы вообще обалдели...аж самому стыдно в него смотреть там столько всего лишнего и неоптимизированного... но особенность в том что приносят изменения по начислению зп манагерам продажникам сейчас и орут что почему до сих пор не сделано. так как зп подписывать через час у фиников... вот и делаешь что бы тока посчитать...тут уж не до гламура
#97 by Дядя Васька
А терь замерь производительность. Этот вариант работает в 10 раз долбше моего.
#98 by VladZ
3078 строк?  У тебя тоже генератор кода?  :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С