Имя: Пароль:
1C
1С v8
Создание ручного отчета с расшифровкойи возможностью редактировать ячейки
0 lighthead9288
 
05.02.14
15:59
Здравствуйте, уважаемые эксперты! Передо мной стоит следующая задача: сформировать отчет с предоставлением пользователю возможности внесения в него ручных изменений(всего в одной ячейке) и с возможностью расшифровки значений некоторых столбцов
Что сделано:
1. Макет с областями "Шапка" и "Строка".
2. Заданы параметры в области "Строка", в которые будут выводиться результаты запроса
3. У столбца, для которого нужно обеспечить возможность редактирования, установлено свойство "Защита = Ложь". У остальных ячеек Защита=Истина
4. На форме отчета создан ТабличныйДокумент, куда и будет выводиться отчёт.
5. Свойство ТолькоПросмотр табличного документа установлено в значение "Истина".
6. Сформирован отчет следующим кодом:
&НаКлиенте
Процедура Сформировать(Команда)
    // Вставить содержимое обработчика.

Если (Элементы.Организация.ВыделенныйТекст<>"") И (Элементы.Склад.ВыделенныйТекст<>"") И (Элементы.Дата.ВыделенныйТекст<>"") тогда
    //ТабДок.ТолькоПросмотр = Истина;
    ПечатьВДокумент(ТабДок);
ТабДок.ОтображатьСетку = Ложь;
//ТабДок.Защита = Ложь;
//ТабДок.Защита = истина;
//ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = ложь;
ЭтаФорма.Элементы.Расчет.Доступность = Истина;    
Иначе Сообщить("Не все поля заполнены!"); КонецЕсли;

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

&НаСервере
Процедура ПечатьВДокумент(ТабДок)
ТабДок.Очистить();
Макет = Отчеты.ПРОБА_инвентаризационная_ведомость1.ПолучитьМакет("Макет");
Шапка = Макет.ПолучитьОбласть("Шапка");
ТабДок.вывести(Шапка);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
               |    спрНоменклатура.Ссылка КАК НаименованиеТовара,
               |    спрНоменклатура.ЕдиницаИзмерения КАК Единица,
               |    ЦеныНоменклатурыСрезПоследних.Цена КАК УчетнаяЦена,
               |    ПРОБА_движения_товаровОстатки.КоличествоОстаток КАК УчетныйОстаток,
               |    спрНоменклатура.Ссылка КАК Ссылка,
               |    спрНоменклатура.ЕдиницаИзмерения.Ссылка КАК СсылкаЕдиницаИзмерения
               |ИЗ
               |    Справочник.Номенклатура КАК спрНоменклатура
               |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
               |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПРОБА_движения_товаров.Остатки(
               |                    &Дата,
               |                    Склад = &Склад
               |                        И Организация = &Организация) КАК ПРОБА_движения_товаровОстатки
               |            ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ПРОБА_движения_товаровОстатки.Товар.Ссылка
               |        ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = спрНоменклатура.Ссылка)
               |ГДЕ
               |    спрНоменклатура.Услуга = ЛОЖЬ
               |
               |УПОРЯДОЧИТЬ ПО
               |    НаименованиеТовара";
             Запрос.УстановитьПараметр("Дата",Отчет.Дата);
               Запрос.УстановитьПараметр("Склад", Отчет.Склад);
            Запрос.УстановитьПараметр("Организация", Отчет.Организация);

Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() > 0 Цикл
    Область = Макет.ПолучитьОбласть("Строка");
    Область.Защита = Ложь;
    Область.параметры.Наименование = Результат.наименованиеТовара;
    Область.параметры.ЕдИзмер = Результат.Единица;
    Область.параметры.УчетнаяЦена = Результат.УчетнаяЦена;
    Область.Параметры.УчетныйОстаток = Результат.УчетныйОстаток;
    Область.Параметры.РасшифровкаТовара = Результат.Ссылка;
    Область.параметры.РасшифровкаЕдИзмер = Результат.СсылкаЕдиницаИзмерения;
    
    ТабДок.Вывести(Область);
КонецЦикла;

7. Указаны параметры расшифровки:
Область.Параметры.РасшифровкаТовара = Результат.Ссылка;
    Область.параметры.РасшифровкаЕдИзмер = Результат.СсылкаЕдиницаИзмерения;



Результат: Расшифровка прекрасно работает, а ячейка не редактируется, хотя и её свойство Защита = Ложь.
В чём проблема? Играет ли какую-то роль свойство "Защита"?
Что интересно, свойство Табличного документа ТолькоПросмотр не изменяется программно. Меняется, если только в конфигураторе галку поставить/убрать. А программно - никак (((

Помогите, пожалуйста. Заранее спасибо.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой