В форме списка есть колонка с реквизитом типа булево (реквизит документа). Как редактировать его в форме списка? Т.е. без открытия формы документа.
ThargoN_SG
18.7.2008, 13:06
Насколько я понимаю, штатными средствами редактировать его непосредственно в списке, как список элементов справочника, нельзя. Значит, остается вариант добавить в командную панель кнопку которая получит для текущей строки списка объект документа, установит/снимет этот флаг и запишет документ с нужным режимом проведения. ИМХО только так...
Делаешь свою ФормуСписка.
Обрабатываешь событие выбор.
У меня получилось
Код
Процедура ДокументСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Колонка.Имя = "Реквизит1" Тогда
СтандартнаяОбработка = Ложь;
Док = ВыбраннаяСтрока.ПолучитьОбъект();
Док.Реквизит1 = НЕ Док.Реквизит1;
Док.Записать();
КонецЕсли;
КонецПроцедуры
Цитата(Komich @ 18.7.2008, 17:17)

Делаешь свою ФормуСписка.
Обрабатываешь событие выбор.
У меня получилось
Код
Процедура ДокументСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Колонка.Имя = \"Реквизит1\" Тогда
СтандартнаяОбработка = Ложь;
Док = ВыбраннаяСтрока.ПолучитьОбъект();
Док.Реквизит1 = НЕ Док.Реквизит1;
Док.Записать();
КонецЕсли;
КонецПроцедуры
Так и сделал. Спасибо.
А если наоборот.
Как в форму добавить колонку (тип булево), которая не содержит данных реквизитов документа, а просто визуально хранит значение в этой колонке?
Сколько долго хранит значение?
Цитата(Komich @ 23.7.2008, 16:30)

Сколько долго хранит значение?
Все время, пока строка существует.
Тогда какой смысл не создавать реквизит?
Цитата(Komich @ 23.7.2008, 16:47)

Тогда какой смысл не создавать реквизит?
Создать реквизит в документе? И потом получать объект по строке и записывать его, а если он проведен - то перепроводить?
Мегко говоря не лучший вариант.
Цитата(PsyTech @ 23.7.2008, 16:07)

Мегко говоря не лучший вариант.
При вызове метода Записать() без параметров ПРОВЕДЕНИЕ домумента НЕ ВЫПОЛНЯЕТСЯ.
Цитата(Komich @ 23.7.2008, 17:41)

Сам дебил.
При вызове метода Записать() без параметров ПРОВЕДЕНИЕ домумента НЕ ВЫПОЛНЯЕТСЯ.
Читай внимательней!
И поставь точку останова в обработке проведения, измени любой реквизит в проведенном документе и нажми кнопку ЗАПИСАТЬ.
Цитата(PsyTech @ 23.7.2008, 16:58)

И поставь точку останова в обработке проведения, измени любой реквизит в проведенном документе и нажми кнопку ЗАПИСАТЬ.
Я говорю о вызове метода Записать() без параметров в рамках предыдущего обсуждения, т.е. в обработчике события Выбор.
При нажатии на кнопку Записать на форме метод Записать вызывается с параметром Записать(РежимЗаписиДокумента.Проведение).
ПЕРЕД предыщум ответом я поставил точку останова и проверил
Так, оба получаете предупреждения.
Это форум, а не место, где можно оскорблять друг друга, не важно кто первый начал, в случае, если второй поддержал.
По теме:
1. Делаешь просто колонку с галочкой и непосредственным редактированием в форме списка (посмотреть на форуме как это сделать так же можно).
2. Хранить такое в реквизите документа не хорошо из-за перезаписи задним числом (все зависит от того, какой это документ - из описания не ясно), делаем регистр сведений вида:
Измерение: тип вашего документа, ведущее
Ресурс: название вашего реквизита, тип булево
3. При изменении этой галочки в форме списка - меняем ее в ресурсе регистра сведений
Так же такую галочку можно вывести на форму документа и при записи редактировать ее в регистре сведений. Если запись в регистре сведений не найдена, то можно ее создавать.Форма списка от этого будет работать медленнее, нужно будет при выводе строки тащить данные из регистра сведений, но не будет тормозить при изменении каждой галочки.
Аналогично, выведя галочку на форму, как просто элемент управления можно и документ перезаписывать, но при изменении галочки готовьтесь, что тормозить будет сильнее.
Попробовать можете и тот и другой вариант.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.