![]() |
![]() |
![]() |
|
Создание ручного отчета с расшифровкойи возможностью редактировать ячейки | ☑ | ||
---|---|---|---|---|
0
lighthead9288
05.02.14
✎
15:59
|
Здравствуйте, уважаемые эксперты! Передо мной стоит следующая задача: сформировать отчет с предоставлением пользователю возможности внесения в него ручных изменений(всего в одной ячейке) и с возможностью расшифровки значений некоторых столбцов
Что сделано: 1. Макет с областями "Шапка" и "Строка". 2. Заданы параметры в области "Строка", в которые будут выводиться результаты запроса 3. У столбца, для которого нужно обеспечить возможность редактирования, установлено свойство "Защита = Ложь". У остальных ячеек Защита=Истина 4. На форме отчета создан ТабличныйДокумент, куда и будет выводиться отчёт. 5. Свойство ТолькоПросмотр табличного документа установлено в значение "Истина". 6. Сформирован отчет следующим кодом: &НаКлиенте Процедура Сформировать(Команда) // Вставить содержимое обработчика. Если (Элементы.Организация.ВыделенныйТекст<>"") И (Элементы.Склад.ВыделенныйТекст<>"") И (Элементы.Дата.ВыделенныйТекст<>"") тогда //ТабДок.ТолькоПросмотр = Истина; ПечатьВДокумент(ТабДок); ТабДок.ОтображатьСетку = Ложь; //ТабДок.Защита = Ложь; //ТабДок.Защита = истина; //ТабДок.ТолькоПросмотр = Истина; ТабДок.ОтображатьЗаголовки = ложь; ЭтаФорма.Элементы.Расчет.Доступность = Истина; Иначе Сообщить("Не все поля заполнены!"); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПечатьВДокумент(ТабДок) ТабДок.Очистить(); Макет = Отчеты.ПРОБА_инвентаризационная_ведомость1.ПолучитьМакет("Макет"); Шапка = Макет.ПолучитьОбласть("Шапка"); ТабДок.вывести(Шапка); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | спрНоменклатура.Ссылка КАК НаименованиеТовара, | спрНоменклатура.ЕдиницаИзмерения КАК Единица, | ЦеныНоменклатурыСрезПоследних.Цена КАК УчетнаяЦена, | ПРОБА_движения_товаровОстатки.КоличествоОстаток КАК УчетныйОстаток, | спрНоменклатура.Ссылка КАК Ссылка, | спрНоменклатура.ЕдиницаИзмерения.Ссылка КАК СсылкаЕдиницаИзмерения |ИЗ | Справочник.Номенклатура КАК спрНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПРОБА_движения_товаров.Остатки( | &Дата, | Склад = &Склад | И Организация = &Организация) КАК ПРОБА_движения_товаровОстатки | ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ПРОБА_движения_товаровОстатки.Товар.Ссылка | ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = спрНоменклатура.Ссылка) |ГДЕ | спрНоменклатура.Услуга = ЛОЖЬ | |УПОРЯДОЧИТЬ ПО | НаименованиеТовара"; Запрос.УстановитьПараметр("Дата",Отчет.Дата); Запрос.УстановитьПараметр("Склад", Отчет.Склад); Запрос.УстановитьПараметр("Организация", Отчет.Организация); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() > 0 Цикл Область = Макет.ПолучитьОбласть("Строка"); Область.Защита = Ложь; Область.параметры.Наименование = Результат.наименованиеТовара; Область.параметры.ЕдИзмер = Результат.Единица; Область.параметры.УчетнаяЦена = Результат.УчетнаяЦена; Область.Параметры.УчетныйОстаток = Результат.УчетныйОстаток; Область.Параметры.РасшифровкаТовара = Результат.Ссылка; Область.параметры.РасшифровкаЕдИзмер = Результат.СсылкаЕдиницаИзмерения; ТабДок.Вывести(Область); КонецЦикла; 7. Указаны параметры расшифровки: Область.Параметры.РасшифровкаТовара = Результат.Ссылка; Область.параметры.РасшифровкаЕдИзмер = Результат.СсылкаЕдиницаИзмерения; Результат: Расшифровка прекрасно работает, а ячейка не редактируется, хотя и её свойство Защита = Ложь. В чём проблема? Играет ли какую-то роль свойство "Защита"? Что интересно, свойство Табличного документа ТолькоПросмотр не изменяется программно. Меняется, если только в конфигураторе галку поставить/убрать. А программно - никак ((( Помогите, пожалуйста. Заранее спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |