|
Команда в Управляемых формах | ☑ | ||
---|---|---|---|---|
0
H737
16.12.15
✎
10:37
|
Приветствую всех участников форума!
1С 8.3.6.2299 тонкий клиент. В УТ 11.1 в документ ЧекККМ добавил команду и обработку команды. Но строка добавляется только со 2-го нажатия на кнопку. Как добиться, чтобы срабатывало с 1-го раза? &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ТабЧасть = ПараметрыВыполненияКоманды.Источник.Объект.Товары; НоваяСтрока = ТабЧасть.Добавить(); НоваяСтрока.Номенклатура = ПолучитьНоменклатуруНаСервере(); НоваяСтрока.Количество = 999999; НоваяСтрока.КоличествоУпаковок = 999999; НоваяСтрока.Цена = 999999; КонецПроцедуры &НаСервере Функция ПолучитьНоменклатуруНаСервере() Возврат Справочники.Номенклатура.НайтиПоНаименованию("Аренда автомобиля"); КонецФункции |
|||
1
hhhh
16.12.15
✎
10:42
|
может забываешь форму обновить? Там есть такая кнопка Обновить в виде колесика, или на командной панели, или в Еще.
|
|||
2
H737
16.12.15
✎
10:47
|
(1) обновление не помогает.
И при 2-м нажатии на кнопку команды (и при любом количестве нажатий тоже) строка добавляется и без обновления. |
|||
3
Timon1405
16.12.15
✎
10:48
|
(0) свойство команды "Изменяет данные"
|
|||
4
H737
16.12.15
✎
10:56
|
(3) свойство команды "Изменяет данные" тоже пробовал.
Тогда новая строка на форме вообще не появляется. |
|||
5
Ymryn
16.12.15
✎
11:00
|
А если просто использовать
ТабЧасть = Объект.Товары; ? |
|||
6
Ymryn
16.12.15
✎
11:02
|
(5) и замени у ПолучитьНоменклатуруНаСервере() директиву &НаСервере на &НаСервереБезКонтекста. Таскать полностью объект на сервак для получения номенклатуры - некрасиво :)
|
|||
7
H737
16.12.15
✎
11:13
|
(5) В модуле команды
{(1,1)}: Переменная не определена (Объект) (6) Да, спасибо за замечание про "НаСервереБезКонтекста" |
|||
8
H737
16.12.15
✎
11:15
|
(6) {Документ.ЧекККМ.Команда.Заполнить11.МодульКоманды(8,29)}: Процедура или функция с указанным именем не определена (ПолучитьНоменклатуруНаСервере)
НоваяСтрока.Номенклатура = <<?>>ПолучитьНоменклатуруНаСервере(); (Проверка: Тонкий клиент) |
|||
9
Nuobu
16.12.15
✎
11:20
|
(8) В команде могут быть только процедуры и ф-и "НаКлиенте".
Всю остальную логику выноси в другие модули. |
|||
10
H737
16.12.15
✎
11:30
|
(9) тем не менее процедура с меткой "НаСервере" в модуле команды работает.
|
|||
11
Ymryn
16.12.15
✎
11:31
|
И только сейчас я врубился, что это команда, а не команда формы. Блин, косяк, приношу извинения.
Тогда замечание про контекст было кривым, как и совет с объектом. |
|||
12
H737
16.12.15
✎
11:31
|
(11) вот-вот
|
|||
13
Ymryn
16.12.15
✎
11:32
|
(12) кстати, а если не секрет, а почему через команду, а не команду формы это реализуется?
|
|||
14
Nuobu
16.12.15
✎
11:33
|
(10) Ну, возови её здесь же, в команде.
|
|||
15
H737
16.12.15
✎
11:34
|
(13) Такое условие было поставлено, чтобы было проще обновлять
|
|||
16
H737
16.12.15
✎
11:34
|
(14) ну так и вызывается же
|
|||
17
Nuobu
16.12.15
✎
11:35
|
(16) Процедура или функция с указанным именем не определена (ПолучитьНоменклатуруНаСервере)
НоваяСтрока.Номенклатура = <<?>>ПолучитьНоменклатуруНаСервере(); (Проверка: Тонкий клиент) |
|||
18
H737
16.12.15
✎
11:39
|
(17) Ну так она НЕ определена, если использовать предложенную директиву &НаСервереБезКонтекста, а с оригинальной директивой &НаСервере - определена.
|
|||
19
H737
16.12.15
✎
11:40
|
(17) и это было признано в (11)
|
|||
20
Nuobu
16.12.15
✎
11:43
|
(19) Я тоже тупанул. Признаю.
|
|||
21
H737
16.12.15
✎
11:49
|
(20) бывает...
|
|||
22
H737
16.12.15
✎
11:51
|
(1) нашел решение проблемы обходным путем:
вызываю из модуля команды обработку и в ней делаю заполнение табличной части. Строки добаляются с 1-го раза. Но всеже хотелось бы обойтись без обработки, т.е. чтобы строки добавлялись прямо из модуля команды. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |