|   |   | 
| 
 | Изменение реквизита документа из формы списка | ☑ | ||
|---|---|---|---|---|
| 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) Попробуйте получить выделенные строки.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |