|
|
|
v7: Как создать автоматический ввод новой строки? | ☑ | ||
|---|---|---|---|---|
|
0
xxxkosta
02.11.06
✎
22:39
|
Люди обрые помогите.
Представьте документ по списанию некоторых элементов. В конце месяца нужно списатьодним документом около 9000 элементов. Поэтому дя упрощения работы я пытаюсь облегчить движения пользователя, что б при окончании редактирования строки , сразу актовизировалась следующая строка (не через Ins) |
|||
|
1
Стрелок
02.11.06
✎
22:48
|
Свойства ТЧ поставь галку "Автоматически ввод новой строки"
|
|||
|
2
Стрелок
02.11.06
✎
22:48
|
а в БЗ рекомендовать не надо
|
|||
|
3
xxxkosta
02.11.06
✎
22:49
|
Спасибо друг, а ты не работал с процедурой Актовизировать и активизировать строку?
|
|||
|
4
Lals1
02.11.06
✎
22:49
|
открой в конфе этот документ. (который тебе нужен). Выбери форма - диалог в диалоге сделай выделеной табличную часть и в свойствах поставь галочку "автоматический ввод новой строки"
|
|||
|
5
xxxkosta
02.11.06
✎
22:50
|
уже сделал и работает, не догадался, хотя мысля насчет этого возникала
|
|||
|
6
Lals1
02.11.06
✎
22:50
|
(3)а зачем тебе ее активизировать?
|
|||
|
7
Стрелок
02.11.06
✎
22:51
|
(3) работал
|
|||
|
8
xxxkosta
02.11.06
✎
22:52
|
расскажи как ею пользоваться я попытался у меня не получилось. Строка прыгала в ТЧ, да и почему она работает из обработкиподбора, по другому никак?
|
|||
|
9
Токс2
02.11.06
✎
22:53
|
(2) А че, там это уже есть?
|
|||
|
10
xxxkosta
02.11.06
✎
22:54
|
и гле я могу найти более интересную книгу по 1с предприятие, просто у меня есть книги но они однотипные, хотелось бы почитать и посмотреть на реальные примеры
|
|||
|
11
Стрелок
02.11.06
✎
22:54
|
АктивизироватьСтроку(<?>);
Синтаксис: АктивизироватьСтроку(<НомСтроки>) Назначение: Установить курсор на указанной строке многострочной части документа. Параметры: <НомСтроки> - необязательный параметр. Номер строки, которую следует активизировать. Если параметр опущен, то активизируется текущая строка многострочной части документа. Замечание: Метод доступен только в Модуле формы документа и работает с документом доступным в локальном контексте. АктивизироватьСтроку(<?>); Синтаксис: АктивизироватьСтроку(<НомСтроки>) Назначение: Установить курсор на указанной строке многострочной части документа. Параметры: <НомСтроки> - необязательный параметр. Номер строки, которую следует активизировать. Если параметр опущен, то активизируется текущая строка многострочной части документа. Замечание: Метод доступен только в Модуле формы документа и работает с документом доступным в локальном контексте. так что работает и там и там |
|||
|
12
Стрелок
02.11.06
✎
22:55
|
(9) ну мне кажется есть...
|
|||
|
13
xxxkosta
02.11.06
✎
22:57
|
да нет , он так не пашет я и давал заранее новую строку не хочет.у меня в хелпе пишется он вызывается из под процедуры ОбработкаПодбора
|
|||
|
14
Стрелок
02.11.06
✎
23:00
|
(13) читай внимательно - "Номер строки, которую следует активизировать" - если ты с её помощью пытался активизировать новую строку - естественно не работает
|
|||
|
15
xxxkosta
02.11.06
✎
23:02
|
вот что я написал
Процедура Проокончанииредактированиястроки() преме ч НоваяСтрока() ч=количаствострок(); активизировать(ч) КонецПроцедуры не работает |
|||
|
16
Стрелок
02.11.06
✎
23:04
|
не вздумай это применять
|
|||
|
17
xxxkosta
02.11.06
✎
23:05
|
почему?
|
|||
|
18
Токс2
02.11.06
✎
23:05
|
Не удивительно...
|
|||
|
19
Стрелок
02.11.06
✎
23:06
|
(17) подумай что будет если юзер захочет отредактировать строку в документе?
|
|||
|
20
xxxkosta
02.11.06
✎
23:06
|
можно все это обойти и применить , но только через обработкуподбора
|
|||
|
21
xxxkosta
02.11.06
✎
23:07
|
да тут правильно. вдруг он захочет исправить одну и тут же создастся другая
|
|||
|
22
xxxkosta
02.11.06
✎
23:09
|
и еще подскажи как создавать на лету секции в таблице документа при печати. у меня есть примеры но я сам не догоняю
|
|||
|
23
Стрелок
02.11.06
✎
23:09
|
"на лету" это как?
|
|||
|
24
xxxkosta
02.11.06
✎
23:11
|
представь у меня зарезервировани несколько столобцов для такого же количества элементов, но вдруг добавляется еще элемент, и что б каждый раз не перерисовывать таблицу, можно добавить автоматически сецию (присоединитьсекцию()), просто напиши что выпаолняет каждый оператор
|
|||
|
25
Стрелок
02.11.06
✎
23:12
|
(24) глянь любую печатную форму в твоей конфигурации
|
|||
|
26
xxxkosta
02.11.06
✎
23:13
|
ну и
|
|||
|
27
Стрелок
02.11.06
✎
23:13
|
ВывестиСекцию(<?>); - выводит новую секцию с левого края на НОВОЙ строке
ПрисоединитьСекцию(<?>); - присоединяет секцию к последней выведенной (присоединённой) справа |
|||
|
28
xxxkosta
02.11.06
✎
23:14
|
да но как это объясняется
Таб.ПрисоединитьСекцию("ОТ|ИтогоНач"); |
|||
|
29
Стрелок
02.11.06
✎
23:15
|
(28) до вертикальной черты - секция по горизонту, после - по вертикалу
а эта запись означает вывести секцию на пересечении указанных |
|||
|
30
xxxkosta
02.11.06
✎
23:16
|
понятно, спасибо
мне просто никто этого не объяснял и поэтому до всего сам докумекиваю |
|||
|
31
xxxkosta
02.11.06
✎
23:17
|
у тебя ася есть?
|
|||
|
32
Стрелок
02.11.06
✎
23:17
|
(30) Не вопрос - в карточке есть аська - если будут вопросы - милости прошу
|
|||
|
33
xxxkosta
02.11.06
✎
23:18
|
спаисбо за помощь
|
|||
|
34
Стрелок
02.11.06
✎
23:18
|
НМЗЩО
|
|||
|
35
xxxkosta
02.11.06
✎
23:25
|
Процедура Выполнить()
Перем х, д, д1; хх=СоздатьОбъект("ТаблицаЗначений"); хх.НоваяКолонка("КА", "Справочник.Контрагенты"); хх.НоваяКолонка("Дог", "Справочник.Договора"); СписТалонов=СоздатьОбъект("Документ.СписаниеТалонов"); СписТалонов.ВыбратьДокументы(НачМесяца(Дата1), КонМесяца(Дата1)); СФ1.ПорядокНаименований(); СФ1.ВыбратьЭлементы(); Д1=Строка(Лев(Дата1,2)+Сред(Дата1,4,2)+Прав(Дата1,2)); ТЗ=СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Наименование","Строка",26,,"Наименование",); Пока СФ1.ПолучитьЭлемент()=1 Цикл Если Д1=Лев(СФ1.Наименование,6) Тогда ТЗ.НоваяСтрока(); ТЗ.Наименование=Лев(СФ1.Наименование,21); КонецЕсли; КонецЦикла; ТЗ.ВыбратьСтроки(); Пока СписТалонов.ПолучитьДокумент()=1 Цикл Пока СписТалонов.ПолучитьСтроку()=1 Цикл Хх.НоваяСтрока(); Хх.КА = СписТалонов.Контрагент; Хх.Дог = СписТалонов.Договор; КонецЦикла; хх.Свернуть("КА, Дог",); хх.ВыбратьСтроки(); Пока хх.ПолучитьСтроку()=1 Цикл Если хх.КА=Константа.СобстОрганизация Тогда Продолжить; КонецЕсли; Д=Строка(Лев(СписТалонов.ДатаДок,2)+Сред(СписТалонов.ДатаДок,4,2)+Прав(СписТалонов.ДатаДок,2)); Д=Д+Строка(ДополнитьСтроку(СокрЛП(СписТалонов.НомерДок),0,5,1)); Д=Д+ДополнитьСтроку(Хх.КА.Код,0,5,1); Д=Д+ДополнитьСтроку(Хх.Дог.Код,0,5,1); Д=Д+Строка("00000"); тут ошибка не находит- Если ТЗ.НайтиЗначение(Д,х,"Наименование")=1 Тогда Продолжить; КонецЕсли; Если СФ1.НайтиПоНаименованию(Д,1,1)=1 Тогда Продолжить; Иначе СФ.Новый(); СФ.Наименование=Д; СФ.Записать(); КонецЕсли; Д=""; КонецЦикла; хх.удалитьстроки(); КонецЦикла; КонецПроцедуры |
|||
|
36
Vippi
03.11.06
✎
00:03
|
(36)
тут ошибка не находит- Если ТЗ.НайтиЗначение(Д,х,"Наименование")=1 Тогда х=0; Если ТЗ.НайтиЗначение(Д,х,"Наименование")=1 Тогда Ты так и говоришь, как пишешь? ;) |
|||
|
37
xxxkosta
03.11.06
✎
00:26
|
в смысле
я это оставил стрелку, я его попросил просмотреть эту обработку, в с строке где написано про ошибку мне дает оператор 0, а нужно 1 |
|||
|
38
Vippi
03.11.06
✎
00:32
|
(37) Ты и правда говоришь, как пишешь.:))
Обнуляй переменную х для правильного приема найденной строки. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |