|
Изменение реквизита документа из формы списка | ☑ | ||
---|---|---|---|---|
0
maptbln
26.04.18
✎
10:27
|
Всем добрый день, задача заключается в том , что бы можно было из формы списка менять реквизит документа
У поля в форме есть свойства БыстрыйВыбор,РежимВыбораИзСпискак, но судя по тому,что никакой выбор при нажатие на поле не появляется,разговор не об этом Перелопатил гугл, рекомендуют добавить кнопку на форму , в ней получить ссылку и там менять реквизит.Написал следующий код &НаКлиенте Процедура ПриоритетНажатие(Элемент) Строки=ЭлементыФормы.Список.ТекущиеДанные; Если НЕ Строки.Ссылка.Пустая() Тогда ВыполненНаСервере(Строки.Ссылка); ЭлементыФормы.Список.Обновить(); КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Процедура ВыполненНаСервере(Ссылка) Объект=Ссылка.ПолучитьОбъект(); Объект.ПриоритетПлатежа=ОченьВажный; Объект.Записать(); КонецПроцедуры но при попытке зайти в форму , выдаёт что Ошибка инициализации модуля: Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма по причине: {Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма(42,9)}: Процедура или функция с указанным именем не определена (ВыполненНаСервере) <<?>>ВыполненНаСервере(Стр.Ссылка); странно , ведь всё определено подскажите,что я делаю не так , или всё таки возможно менять реквизит документа из формы списка иным способом? Заранее спасибо. |
|||
1
unregistered
26.04.18
✎
10:49
|
(0) На что-то другое ругается.
У тебя вызов ВыполненНаСервере(Строки.Ссылка), а ругеается на ВыполненНаСервере(Стр.Ссылка). В месте вызова СТРОКИ, а там, где ругается - СТР. Ты где-то еще вызов этой процедуры воткнул. |
|||
2
maptbln
26.04.18
✎
10:57
|
(1) да это я просто переименовал переменную после того как ошибка вылезла,так то же самое
Ошибка инициализации модуля: Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма по причине: {Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма(42,9)}: Процедура или функция с указанным именем не определена (ВыполненНаСервере) <<?>>ВыполненНаСервере(Строки.Ссылка); |
|||
3
Mankubus
26.04.18
✎
11:02
|
(2) убери безконтекста
|
|||
4
maptbln
26.04.18
✎
11:21
|
(3) не помогло
|
|||
5
maptbln
26.04.18
✎
11:35
|
забыл сказать,что форма обычная..в этом может быть дело?
|
|||
6
Mankubus
26.04.18
✎
11:36
|
(5) разумеется. в обычных формах нельзя использовать директивы компиляции
|
|||
7
maptbln
26.04.18
✎
11:42
|
(6) понял , засунул всё в одну процедуру без директив
но теперь вопрос в следующем , ОченьВажный - это значение перечисления , правильно ли я ссылаюсь на него , или нужно через Перечисления. итд потому что сейчас ошибка {Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма(43,34)}: Переменная не определена (ОченьВажный) докОбъект.ПриоритетПлатежа = <<?>>ОченьВажный; |
|||
8
1Сергей
26.04.18
✎
11:43
|
(7) неправильно
|
|||
9
maptbln
26.04.18
✎
12:53
|
(8)
Процедура Кнопка1Нажатие(Элемент) текДанныеСписок = ЭлементыФормы.ДокументСписок.ТекущиеДанные; если текДанныеСписок <> Неопределено тогда докОбъект = текДанныеСписок.ПолучитьОбъект(); докОбъект.ПриоритетПлатежа = Перечисления.ИС_Приоритеты.ОченьВажный; попытка докОбъект.Записать(); исключение Сообщить("Что-то не так при записи!"); конецпопытки; конецесли; КонецПроцедуры переписал,жалуется на {Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма(41)}: Метод объекта не обнаружен (ПолучитьОбъект) докОбъект = текДанныеСписок.ПолучитьОбъект(); это ведь стандартный метод,что может не нравится? |
|||
10
Сти
26.04.18
✎
13:34
|
(0) не нравится то, что текДанныеСписок это строка данных и у нее нет метода ПолучитьОбъект. Объект надо получать из текДанныеСписок.Ссылка
|
|||
11
maptbln
26.04.18
✎
13:46
|
(10)
всем огромное спасибо , чтобы я делал без вас и волшебного форума! а где можно подробнее об этих нюансах почитать , разработка управляемого приложения? |
|||
12
maptbln
26.04.18
✎
13:48
|
а если я хочу чтоб изменялось не в одной строке,а в нескольких
получать необходимо массив? |
|||
13
Михаил Козлов
26.04.18
✎
13:55
|
(12) Если эту операцию нужно проделать со всеми документами из списка (могут быть фильтры), то Вам нужно получить список документов.
Список документов - это не коллекция, поэтому обойти ее (как массив) не удастся. Сделать можно так: построитель = Новый ПосторительОтчета; построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписок); выборка = Построитель.Выбрать(); ПОКА выборка.Следующий() Цикл // в выборка.Ссылка будет документ - вызвать нужную процедуру КонецЦикла; |
|||
14
maptbln
26.04.18
✎
13:58
|
(13)
не со всеми хочу проделать , а с выбранными при множественном выделении,фильтры не годятся , такое возможно? условно пользователь через ctrl выбирает нужные в списке.и там меняется реквизит в каждом |
|||
15
Михаил Козлов
26.04.18
✎
14:01
|
(14) Попробуйте получить выделенные строки.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |