|
Работа с ТЧ обработки в Управляемых формах | ☑ | ||
---|---|---|---|---|
0
НоваяВолна
31.08.16
✎
19:24
|
Доброго всем времени суток!
Стоит задача, решение которой только немного продвинет мои навыки программирования в 1С. Задача из 5-ти пунктов. Требуется: 1. Создать обработку и процедуру заполнения её табличной части. В табличную часть заполняются строки указанной длины произвольным набором символов в указанном количестве. Количество строк и длина в символах каждой строки должны задаваться на форме. 2. Подсвечивать строки в заполненной таблице, содержащие указанную в отдельном поле формы комбинацию символов. 3. Создать процедуру обратного отражения порядка строк (сортировки по номеру строки в обратном порядке. Например номер строки был 1 ae1234 2 bc5678 стал 10000 ae1234 9999 bc5678 4. Создать процедуру обратного отражения символов в каждой строке. Например строка была eab790 стала 097bae 5. Создать процедуру поиска дублей по заполненным значениям, с перечислением номеров строк попарно. При этом номера строк не должны повторяться, например 1023 и 6740 6740 и 1023. Это про задачу. Теперь вопросы, Пункты 1, 4, 5 я уже реализовал. Остались два вопроса: 1) (по пункту № 3) Как ТЧ обработки "перевернуть" по номерам в обратном порядке. Понятно, что для данной задачи надо просто Сортировать Таблицу по УБЫВанию или ВОЗРастанию. Непонятно другое. Если я ТЧ выгружаю в ТаблицуЗначений. а ее пытаюсь сортировать как мне надо, то как в ТаблицеЗначений мне поймать в какую сторону (убыв / возр) её сортировать? ... По значению номера первой строки? ... 2) (по пункту № 2) В табличной части надо найти сочетание символов (вводится на форме) и если оно есть подсветить все найденные строки цветом например.... Найти в ТЧ я смогу все строчи совпадения. А вот как их раскрасить цветом ? |
|||
1
Cyberhawk
31.08.16
✎
19:46
|
Сколько платят за решение задачи?
|
|||
2
НоваяВолна
31.08.16
✎
20:01
|
(1) Ответ простой.. платят ноль! Эту задачу на Delphi я решаю за 20 минут... А тут уже два часа зависаю. Пытаюсь поднять свой уровень в 1С. Это самообучение, можно сказать, что задачу я сам себе придумал. Нужна помощь как новичку в 1С.
|
|||
3
НоваяВолна
31.08.16
✎
20:05
|
(2) + Причем на ОФ в 1С тоже мне было бы просто, проблема именно с УФ... так как слабо понимаю передачу объектов с Клиента на Сервер и обратно..
|
|||
4
НоваяВолна
31.08.16
✎
20:10
|
(0) Кстати, вопрос к модераторам форума (которые запрещают пользователям редактировать собственные сообщения)... В (0) я написал всё как есть. старался напичсать понятно, ПРОВЕРИЛ перед отправкой на форум.... И вот те на....
Строка "10000 ae1234" выделилась как код (жёлтым), исправить я это не могу. Хотя хотелось бы! дайте хотя бы 2 минуты на исправление собственных сообщений. после отправки!!! |
|||
5
Кокос
31.08.16
✎
20:15
|
вообще не вижу проблем в задаче. по 2. юзай условное оформление. 3. 5 секунд
|
|||
6
Glenas
31.08.16
✎
20:15
|
(4) Считай, что на экзамене, а на черновике нет места
|
|||
7
НоваяВолна
31.08.16
✎
20:22
|
(6) Это косяк движка форума. Почему он строку определяет как тэг с кодом? ... Нет там кода и тэг я не описывал
|
|||
8
НоваяВолна
31.08.16
✎
20:28
|
(5) По 2. Хорошо, найду я все строчки в ТЧ обработки, которые идентичны тому что я ищу. Условное оформление (как я понимаю) я могу использовать только ко всей ТЧ. Т.е. предложение по новой пройти все записи ТЧ (а их может быть 10000) и нужные мне две-три пометить нужным цветом выделения?... А как-то сразу при нахождении нужной строки пометить ее не возможно. Чтобы опять в цикл не ударяться?
|
|||
9
Кокос
31.08.16
✎
20:33
|
(8) не. условное оформление на то оно и условное. оно может применяться к конкретному полю или строке.
|
|||
10
Garykom
гуру
31.08.16
✎
20:37
|
1) добавь еще одну колонку с "исходными" номерами строк
2) в поиск "1с уф условное оформление" |
|||
11
Garykom
гуру
31.08.16
✎
20:38
|
||||
12
НоваяВолна
31.08.16
✎
21:12
|
Беру ТЧ из обработки &НаКлиенте, загоняю её &НаСервер,
далее НаСервере {code} НоваяТЗ = Новый ТаблицаЗначений; НоваяТЗ = ТЗ.Выгрузить(); ЗаполняемыйСписок = НоваяТЗ.Сортировать("НомерСтроки убыв"); {code} и это работает! Осталось только передать ЗаполняемыйСписок обратно &НаКлиент и там очистить Тч формы, и заполнить его новым ЗаполняемыйСписок ... ВОТ ЭТО У МЕНЯ НЕ ВЫХОДИТ |
|||
13
Мимохожий Однако
31.08.16
✎
21:14
|
Делай всё это на сервере
|
|||
14
НоваяВолна
31.08.16
✎
21:17
|
(13) Но ведь это обработка! Внешняя. Данных из нее на Сервере нет, так как они не записаны в базу... ИЛИ Я ЧТО-ТО НЕ ПОНИМАЮ?
|
|||
15
НоваяВолна
31.08.16
✎
21:22
|
(14) Да и ТаблицуЗначений я на Клиенте создать не могу
Кто вообще это всё придумал? |
|||
16
НоваяВолна
31.08.16
✎
21:35
|
{code}
&НаСервере Процедура ОбратноеОтображениеПорядкаСтрокНаСервере() ТЗ = Объект.Таб; Если ТЗ.Количество() = 0 Тогда Возврат; Иначе НоваяТЗ = Новый ТаблицаЗначений; НоваяТЗ = ТЗ.Выгрузить(); ЗаполняемыйСписок = НоваяТЗ.Сортировать("НомерСтроки Убыв"); КонецЕсли; ТЗ.Очистить(); ...... ...... // не дописана вставка КонецПроцедуры {code/} Выдаёт ошибку: {Обработка.СлучайныеСимволы.Форма.Форма.Форма(103)}: Обращение к процедуре объекта как к функции (Сортировать) ЗаполняемыйСписок = НоваяТЗ.Сортировать("НомерСтроки Убыв"); ... В чем дело? ..куда теперь копать? (13) |
|||
17
Garykom
гуру
31.08.16
✎
21:37
|
(16) "Объект.Таб" это у тя шо?
|
|||
18
Garykom
гуру
31.08.16
✎
21:41
|
||||
19
НоваяВолна
31.08.16
✎
21:43
|
(17) Таб - это ТЧ на форме обработки
... там ещё одна процедура к команде привязана {code} &НаКлиенте Процедура ОбратноеОтображениеПорядкаСтрок(Команда) ОбратноеОтображениеПорядкаСтрокНаСервере(); КонецПроцедуры {code/} |
|||
20
Garykom
гуру
31.08.16
✎
21:44
|
ТС пойми что когда пишешь на УФ то это как с дельфи перейти на html/css/php/js и думать типа за 20 минут сделаю.
Задачки типа (0) решаются все за 5-10 минут, если вычесть время на понимание и обдумывание. Проф это обзывают "написать ТЗ" )) |
|||
21
Garykom
гуру
31.08.16
✎
21:44
|
(19)
Обработка = РеквизитФормыВЗначение("Объект"); НоваяТЗ = Обработка.Таб.Выгрузить(); |
|||
22
НоваяВолна
31.08.16
✎
21:46
|
(20) Это я понимаю, поэтому и прошу ткнуть меня носом в обучалку, или тупо помочь... синтаксисом...
|
|||
23
Мимохожий Однако
31.08.16
✎
21:47
|
Почитай Радченко
|
|||
24
НоваяВолна
31.08.16
✎
21:50
|
(21)
&НаСервере Процедура ОбратноеОтображениеПорядкаСтрокНаСервере() ТЗ = Объект.Таб; Если ТЗ.Количество() = 0 Тогда Возврат; Иначе Обработка = РеквизитФормыВЗначение("Объект"); НоваяТЗ = Обработка.Таб.Выгрузить(); НоваяТЗ = ТЗ.Выгрузить(); ЗаполняемыйСписок = НоваяТЗ.Сортировать("НомерСтроки Убыв"); КонецЕсли; ТЗ.Очистить(); КонецПроцедуры &НаКлиенте Процедура ОбратноеОтображениеПорядкаСтрок(Команда) ОбратноеОтображениеПорядкаСтрокНаСервере(); КонецПроцедуры Та же ошибка |
|||
25
Garykom
гуру
31.08.16
✎
21:50
|
извини но кто то тупит... убери НоваяТЗ = ТЗ.Выгрузить();
|
|||
26
Garykom
гуру
31.08.16
✎
21:51
|
Процедура ОбратноеОтображениеПорядкаСтрокНаСервере()
Обработка = РеквизитФормыВЗначение("Объект"); Если Обработка.Таб.Количество() = 0 Тогда Возврат; Иначе НоваяТЗ = Обработка.Таб.Выгрузить(); ЗаполняемыйСписок = НоваяТЗ.Сортировать("НомерСтроки Убыв"); КонецЕсли; Обработка.Таб.Очистить(); КонецПроцедуры |
|||
27
НоваяВолна
31.08.16
✎
21:56
|
(26) Убрал свою процедуру полностью ЗАМЕНИЛ НА (26)...
результат ОШИБКА: {Обработка.СлучайныеСимволы.Форма.Форма.Форма(113)}: Обращение к процедуре объекта как к функции (Сортировать) ЗаполняемыйСписок = НоваяТЗ.Сортировать("НомерСтроки Убыв"); НИЧЕГО НЕ ИЗМЕНИЛОСЬ |
|||
28
Неверный Параметр И
31.08.16
✎
21:57
|
(27) http://v8.1c.ru/metod/books/book.jsp?id=441
Я настаиваю. |
|||
29
Garykom
гуру
31.08.16
✎
21:59
|
(27) У тебя было куча ошибок, парочку исправил думаешь что то поменялось?
"Сортировать" это процедура... а не функция |
|||
30
Garykom
гуру
31.08.16
✎
22:00
|
Точно "новая волна"... хотя не не так... "НоВаЯ ВоЛнА!!!!!"
|
|||
31
НоваяВолна
31.08.16
✎
22:14
|
(30) Хорошо.. объясни мне вот эти две строчки кода
НоваяТЗ = Обработка.Таб.Выгрузить(); ЗаполняемыйСписок = НоваяТЗ.Сортировать("НомерСтроки Убыв"); НоваяТЗ имеет Тип ТаблицаЗначений, в нее попадает вся ТЧ из обработки (проверил по "Вычислить Значение". и это правильно) .... КАК Я МОГУ ТАБЛИЦУЗНАЧЕНИЙ сортировать по убыванию? ... Вот в чём я не прав? |
|||
32
НоваяВолна
31.08.16
✎
22:17
|
(30) Кстати я не спорю... что я НоВаЯ ВоЛнА! ... Я не стесняюсь того, что много не знаю в 1С, но думаю именно для этого форум и создан, чтобы СПРАШИВАТЬ ...
|
|||
33
НоваяВолна
31.08.16
✎
22:22
|
(28) Радченко - это хорошо, спасибо, почитаю обязательно. Но объясните мне зачем я 30 часов видео уроков GROOVY смотрел по управляемым формам? На обычных формах я бы эту задачу тоже просто решил... А тут УФ и не у кого адекватного ответа на простой вопрос нет.
|
|||
34
НоваяВолна
31.08.16
✎
22:30
|
фуууууууууу СПАСИБО всем ... догадался!!!!
|
|||
35
НоваяВолна
31.08.16
✎
22:35
|
&НаСервере
Процедура ОбратноеОтображениеПорядкаСтрокНаСервере() Обработка = РеквизитФормыВЗначение("Объект.Таб"); Если Обработка.Количество() = 0 Тогда Возврат; Иначе НоваяТЗ = Обработка.Выгрузить(); НоваяТЗ.Сортировать("НомерСтроки Убыв"); КонецЕсли; Обработка.Очистить(); Обработка.Загрузить(НоваяТЗ); КонецПроцедуры Вот так сработало всё что я хотел.... Вот я тупил то!!!! Это не Функция.. а процедура )))) ЕЩЁ РАЗ СПАСИБО ВСЕМ! |
|||
36
hhhh
31.08.16
✎
22:45
|
(35) ну, хорошо, а то мы даже подумали, что дельфи не умеет таблицы сортировать. Сортирует только вместе с копированием.
|
|||
37
НоваяВолна
01.09.16
✎
00:15
|
(36) А проблема была не в Делфи. и даже не в 1С. А с моим непониманием директив управляемых форм 1С. Их всего то несколько:
&НаКлиенте &НаСервере &НаСервереБезКонтекста &НаКлиентеНаСервереБезКонтекста Надо будет мне про это почитать повнимательнее. чтобы таких косяков не было ))) |
|||
38
НоваяВолна
01.09.16
✎
02:25
|
&НаКлиенте
Процедура ПоискСтроки(Команда) Если Объект.ПоискСоответствия = Неопределено ИЛИ Объект.ПоискСоответствия = "" Тогда Возврат; КонецЕсли; Для каждого Стр Из Объект.Таб Цикл Если Стр.Символ = Объект.ПоискСоответствия Тогда Сообщить("Значение найдено в строке № " + Стр.НомерСтроки); // В Этом месте я нашел нужную мне строку (или строки) ТЧ внешней обработки // Объект.Таб - это и есть ТЧ обработки // КАК МНЕ ДЛЯ НАЙДЕНОЙ СТРОКИ ПРИСВОИТЬ УСЛОВНОЕ ОФОРМЛЕНИЕ ЦВЕТОМ? // ПОМОГИТЕ СИНТАКСИСОМ !!! КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
39
Горогуля
01.09.16
✎
03:12
|
>КАК МНЕ ДЛЯ НАЙДЕНОЙ СТРОКИ ПРИСВОИТЬ УСЛОВНОЕ ОФОРМЛЕНИЕ ЦВЕТОМ?
в свойствах формы >ПОМОГИТЕ СИНТАКСИСОМ !!! можно и без него |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |