![]() |
#1 |
Участник
|
Работа с формами
У меня несколько вопросов по созданию и работе с формами, которые у меня что-то совсем не получается решить самому:
1. Как обратится к форме, с которой вызвана диаложка в обработке клика ОК (clicked) диалога? 2. Как на форме отобразить поле NAME по ContactPersonID таблицы ContactPerson, если в моей таблице есть только поле ContactPersonID? 3. Как сделать выборку (фильтр) в грид формы, например, по выбранной дате в контроле? 4. Как обратиться к отдельному контролу на форме, считать его значение, т.д.? 5. Как обработать создание (Ctrl+N) новой записи в таблице? Буду очень благодарен за детальные объяснения, так как с Аксаптой работаю совсем недавно. Спасибо |
|
![]() |
#2 |
NavAx
|
Re: Работа с формами
1. Как обратится к форме, с которой вызвана диаложка в обработке клика ОК (clicked) диалога?
element.args().caller() 2. Как на форме отобразить поле NAME по ContactPersonID таблицы ContactPerson, если в моей таблице есть только поле ContactPersonID? используя display метод 3. Как сделать выборку (фильтр) в грид формы, например, по выбранной дате в контроле? а нада? ![]() 4. Как обратиться к отдельному контролу на форме, считать его значение, т.д.? установить у него свойство AutoDeclaration = Yes и далее в коде по имени... 5. Как обработать создание (Ctrl+N) новой записи в таблице? а нада? ![]() P.S. 3 и 5 пункт на данном этапе лишние, используйте встроенное поведение системы. ИМХО. ![]()
__________________
И все они создания природы... |
|
![]() |
#3 |
Участник
|
Спасибо, Lazy_Tiger. Очень помог.
А по-поводу вопроса №5. (обработка Ctrl+N) Проблема в следующем. У меня в таблице есть уникальный ID, который мне соответсвенно нужно наращивать при добавлении записи в таблицу. И я думаю, что это надо делать именно в обработке создания записи. Или нет? Как можно тогда по-другому сделать? Заранее спасибо |
|
![]() |
#4 |
NavAx
|
перекрыть метод initValue() у таблицы и заполнить поля
__________________
И все они создания природы... |
|
![]() |
#5 |
1C
|
Цитата:
Изначально опубликовано kashperuk
У меня в таблице есть уникальный ID, который мне соответсвенно нужно наращивать при добавлении записи в таблицу. И я думаю, что это надо делать именно в обработке создания записи. Или нет? Как можно тогда по-другому сделать? |
|
![]() |
#6 |
NavAx
|
прямо таки само?
![]()
__________________
И все они создания природы... |
|
![]() |
#7 |
1C
|
стоп. Что то я не понял. Вроде бы нужно просто при вставке или удалении записи изменять ID. Вроде как программно не нужно ничего получать. При правильной настройке номерной серии все должно делаться автоматически.
|
|
![]() |
#8 |
Участник
|
Цитата:
Используйте непрерывные номерные серии. Система сама автоматически будет увеличивать/уменьшать при вставке/удалении записи.
Спасибо |
|
![]() |
#9 |
Участник
|
Цитата:
Изначально опубликовано kashperuk
А не могли бы вы еще и рассказать, как именно они используются? (где их настроить). Спасибо Основное\Настройка\Номерная серия (в 2.5 вместо Основное будет Разное) |
|
![]() |
#10 |
NavAx
|
примерно так:
NumberSeq::newGetNumFromCode("Пост01", true, false).num(); не уверен что именно так рекомендуют лучшие собаководы, но видел кучу мест в системе где именно так. например вот для таблички клиентов... custTable.AccountNum = NumberSeq::newGetNum(CustParameters::numRefCustAccount()).num() Допускаю что есть какой то механизм, буду рад узнать как правильно
__________________
И все они создания природы... |
|
![]() |
#11 |
1C
|
2Lazy_Tiger:
Правильно, NumberSeq::newGetNumFromCode("Пост01", true, false).num(); - это механизм программного изменения номерной серии. Иногда возникает такая необходимость при вставке записи из кода. А при Ctrl+N номерная серия отрабатывается автоматически. ![]() |
|
![]() |
#12 |
Участник
|
Цитата:
Изначально опубликовано YVAS
2Lazy_Tiger: Правильно, NumberSeq::newGetNumFromCode("Пост01", true, false).num(); - это механизм программного изменения номерной серии. Иногда возникает такая необходимость при вставке записи из кода. А при Ctrl+N номерная серия отрабатывается автоматически. ![]() Ну, прям даже не знаю что и подумать... Открой, что ли, третий проект, таблицу доверенностей. Метод InitValue. Это и есть "ctrl + N"...
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
![]() |
#13 |
1C
|
Цитата:
Изначально опубликовано Anais
Опа! Ну, прям даже не знаю что и подумать... Открой, что ли, третий проект, таблицу доверенностей. Метод InitValue. Это и есть "ctrl + N"... |
|
![]() |
#14 |
Участник
|
Цитата:
Изначально опубликовано YVAS
Этот модуль именно я и делал. Там нет программного изменения ном. серии. А вот в импорте из клиент-банков я именно newGetNumFromCode использовал, потому что Ax материлась. А записи вставлял в LJT. Поэтому для LJT получение номера номерной серии осуществляется не через метод InitValue таблицы, а через метод initValue на DS форм, в которых используется LJT (для Банка - форма LedgerJournalTransRCash). PS На самом деле там тоже не все так просто. Конкретный номер номерной серии хранится в журнале (таблице LedgerJournalTable, поле VoucherSeries). А это поле, в свою очередь, инициализируется из Названий журналов при создании журнала. PPS Но НИКОГДА номерные серии не отрабатывают автоматически, без дополнительных телодвижений со стороны программиста.
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
![]() |
#15 |
NavAx
|
Цитата:
Изначально опубликовано Anais
Но НИКОГДА номерные серии не отрабатывают автоматически, без дополнительных телодвижений со стороны программиста. ![]()
__________________
И все они создания природы... |
|
![]() |
#16 |
Участник
|
Цитата:
Изначально опубликовано Lazy_Tiger
огорчили блин... а так хотелось чуда... ![]() ![]()
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
![]() |
#17 |
1C
|
Цитата:
Изначально опубликовано Anais
Но НИКОГДА номерные серии не отрабатывают автоматически, без дополнительных телодвижений со стороны программиста. даже возмем тот же Модуль доверенностей и программно выполним insert(), поле, которому прикручена ном. серия пустое. А если явно задавать PHP код:
|
|
![]() |
#18 |
Участник
|
Цитата:
Изначально опубликовано YVAS
тогда нормально. То есть при ctrl+N initValue() отрабатывает, а при insert() нет. Если нужно добавить строку из кода, то initValue вызывается вручную. Или не вызывается - это уж в зависимости от обстоятельств.
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
![]() |
#19 |
1C
|
Цитата:
Изначально опубликовано Anais
Конечно, не вызывается. Это разные методы таблицы, и вызываются они в разные моменты..... Если нужно добавить строку из кода, то initValue вызывается вручную |
|
![]() |
#20 |
Участник
|
delete()
2YVAS
Цитата:
За тебя это делает метод initValue() и delete(), где и прописана обработка номерной серии.
PHP код:
|
|
Теги |
number sequence, номерная серия |
|
![]() |
||||
Тема | Ответов | |||
Доступ к меню "Работа с документами" | 4 | |||
Совместная работа заказчика и исполнителя в разных или одном слое? | 6 |
|