Вход | Регистрация


Изменение реквизита документа из формы списка

Изменение реквизита документа из формы списка
Я
   maptbln
 
26.04.18 - 10:27
Всем добрый день, задача заключается в том , что бы можно было из формы списка менять реквизит документа
У поля в форме есть свойства БыстрыйВыбор,РежимВыбораИзСпискак,
но судя по тому,что никакой выбор при нажатие на поле не появляется,разговор не об этом
Перелопатил гугл, рекомендуют добавить кнопку на форму , в ней получить ссылку и там менять реквизит.Написал следующий код

&НаКлиенте
Процедура ПриоритетНажатие(Элемент)
    Строки=ЭлементыФормы.Список.ТекущиеДанные;
    Если НЕ Строки.Ссылка.Пустая() Тогда 
        ВыполненНаСервере(Строки.Ссылка);
        ЭлементыФормы.Список.Обновить();
    КонецЕсли;  

КонецПроцедуры

&НаСервереБезКонтекста
Процедура ВыполненНаСервере(Ссылка)
    Объект=Ссылка.ПолучитьОбъект();
    Объект.ПриоритетПлатежа=ОченьВажный;
    Объект.Записать();
КонецПроцедуры

но при попытке зайти в форму , выдаёт что 
Ошибка инициализации модуля: Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма
по причине:
{Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма(42,9)}: Процедура или функция с указанным именем не определена (ВыполненНаСервере)
        <<?>>ВыполненНаСервере(Стр.Ссылка);
странно , ведь всё определено

подскажите,что я делаю не так , или всё таки возможно менять реквизит документа из формы списка иным способом?

Заранее спасибо.
 
 
   unregistered
 
1 - 26.04.18 - 10:49
(0) На что-то другое ругается.
У тебя вызов ВыполненНаСервере(Строки.Ссылка), а ругеается на ВыполненНаСервере(Стр.Ссылка). В месте вызова СТРОКИ, а там, где ругается - СТР.

Ты где-то еще вызов этой процедуры воткнул.
   maptbln
 
2 - 26.04.18 - 10:57
(1) да это я просто переименовал переменную после того как ошибка вылезла,так то же самое
Ошибка инициализации модуля: Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма
по причине:
{Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма(42,9)}: Процедура или функция с указанным именем не определена (ВыполненНаСервере)
        <<?>>ВыполненНаСервере(Строки.Ссылка);
   Mankubus
 
3 - 26.04.18 - 11:02
(2) убери безконтекста
   maptbln
 
4 - 26.04.18 - 11:21
(3) не помогло
   maptbln
 
5 - 26.04.18 - 11:35
забыл сказать,что форма обычная..в этом может быть дело?
   Mankubus
 
6 - 26.04.18 - 11:36
(5) разумеется. в обычных формах нельзя использовать директивы компиляции
   maptbln
 
7 - 26.04.18 - 11:42
(6) понял , засунул всё в одну процедуру без директив
но теперь вопрос в следующем ,
ОченьВажный - это значение перечисления , правильно ли я ссылаюсь на него , или нужно через Перечисления. итд
потому что сейчас ошибка 
{Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма(43,34)}: Переменная не определена (ОченьВажный)
    докОбъект.ПриоритетПлатежа = <<?>>ОченьВажный;
   1Сергей
 
8 - 26.04.18 - 11:43
(7) неправильно
   maptbln
 
9 - 26.04.18 - 12:53
(8)
Процедура Кнопка1Нажатие(Элемент)
     текДанныеСписок = ЭлементыФормы.ДокументСписок.ТекущиеДанные;
    
    если текДанныеСписок <> Неопределено тогда
        докОбъект = текДанныеСписок.ПолучитьОбъект();
        
    докОбъект.ПриоритетПлатежа = Перечисления.ИС_Приоритеты.ОченьВажный;
        
    попытка
        докОбъект.Записать();
    исключение
        Сообщить("Что-то не так при записи!");  
    конецпопытки;   

    конецесли;

КонецПроцедуры

переписал,жалуется на {Документ.ИС_ЗаявкаНаРасходДС.Форма.ФормаСписка.Форма(41)}: Метод объекта не обнаружен (ПолучитьОбъект)
        докОбъект = текДанныеСписок.ПолучитьОбъект();
это ведь стандартный метод,что может не нравится?
   Сти
 
10 - 26.04.18 - 13:34
(0) не нравится то, что текДанныеСписок это строка данных и у нее нет метода ПолучитьОбъект. Объект надо получать из текДанныеСписок.Ссылка
 
 Рекламное место пустует
   maptbln
 
11 - 26.04.18 - 13:46
(10)
всем огромное спасибо , чтобы я делал без вас и волшебного форума!
а где можно подробнее об этих нюансах почитать , разработка управляемого приложения?
   maptbln
 
12 - 26.04.18 - 13:48
а если я хочу чтоб изменялось не в одной строке,а в нескольких
получать необходимо массив?
   Михаил Козлов
 
13 - 26.04.18 - 13:55
(12) Если эту операцию нужно проделать со всеми документами из списка (могут быть фильтры), то Вам нужно получить список документов.
Список документов - это не коллекция, поэтому обойти ее (как массив) не удастся.
Сделать можно так:
построитель = Новый ПосторительОтчета;
построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписок);
выборка = Построитель.Выбрать();
ПОКА выборка.Следующий() Цикл
// в выборка.Ссылка будет документ - вызвать нужную процедуру

КонецЦикла;
   maptbln
 
14 - 26.04.18 - 13:58
(13)
не со всеми хочу проделать , а с выбранными при множественном выделении,фильтры не годятся , такое возможно?
условно пользователь через ctrl выбирает нужные в списке.и там меняется реквизит в каждом
   Михаил Козлов
 
15 - 26.04.18 - 14:01
(14) Попробуйте получить выделенные строки.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует