1С 8.3 Выделить текущую строку в отчете
Данные > Примеры кода 1С > 1С 8.3 Табличный документ / Макет
Перейти в основной раздел:
Программно выделить текущую строку в отчете можно с помощью механизма автоматического выделения текущей строки отчёта (той, на которой установлен курсор).
Пример №1 из модуля формы отчета в 1С 8.3 от Пaтриoт (infostart.ru/public/1535804):
&НаКлиенте
Перем ДанныеВыделенныхСтрок;
&НаКлиенте
Процедура ОтчетТабличныйДокументПриАктивизации(Элемент)
// Делаем через обработчик ожидания, чтобы дать возможность выделить несколько строк,
// т.к. событие срабатывает сразу при выделении первой ячейки.
ПодключитьОбработчикОжидания("ВыделитьТеущиеСтроки", 0.1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВыделитьТеущиеСтроки()
// 1. Найдём строки, где выделены ячейки
ТекВерх = ОтчетТабличныйДокумент.ТекущаяОбласть.Верх;
ТекНиз = ОтчетТабличныйДокумент.ТекущаяОбласть.Низ;
ОбластьТекСтроки = ОтчетТабличныйДокумент.Область(ТекНиз,,ТекВерх);
// 2. Скинем предыдущее обведение в состояние до нашего вмешательства
Если ДанныеВыделенныхСтрок <> Неопределено Тогда
//2.1. Если выделенные строки не менялись - ничего не делаем
Если ТекВерх = ДанныеВыделенныхСтрок.Верх И ТекНиз = ДанныеВыделенныхСтрок.Низ Тогда
Возврат;
КонецЕсли;
// 2.2. Вернём назад верхнюю границу
// Обнаружена багофича, что если строке целиком вернуть толщину, которая была у неё изначально, то результат будет отличаться от начального.
// Изначально для колонок идущих правее последней колонки (т.е. с номером больше, чем ШиринаТаблицы) Границы не отображаются.
// Но после установки новой границы, начнёт отображаться. Поэтому сначала полностью стираем границу, которую мы установили выделением,
// потом для колонок отчёта (с первой по ШиринаТаблицы) возвращаем сохранённую границу.
// Альтернативный вариант - можно выделять не всю строку, а только колонки с первой по ШиринаТаблицы - но он кажется менее функциональным и интуитивно понятным.
НевидимаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии);
СтрокаВерх = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Верх,, ДанныеВыделенныхСтрок.Верх);
СтрокаВерх.ГраницаСверху = НевидимаяЛиния;
ОбластьВерх = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Верх, 1, ДанныеВыделенныхСтрок.Верх, ОтчетТабличныйДокумент.ШиринаТаблицы);
Если ДанныеВыделенныхСтрок.ГраницаСверху <> Неопределено Тогда
ОбластьВерх.ГраницаСверху = ДанныеВыделенныхСтрок.ГраницаСверху;
Иначе
Для Каждого НастройкиЯчейки Из ДанныеВыделенныхСтрок.УникальныеНастройкиГраницыВерх Цикл
ТекЯчейкаВерх = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Верх, НастройкиЯчейки.НомерКолонки,
ДанныеВыделенныхСтрок.Верх, НастройкиЯчейки.НомерКолонки);
ТекЯчейкаВерх.ГраницаСверху = НастройкиЯчейки.ГраницаСверху;
КонецЦикла;
КонецЕсли;
// 2.3. Вернём назад нижнюю границу
СтрокаНиз = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Низ,, ДанныеВыделенныхСтрок.Низ);
СтрокаНиз.ГраницаСнизу = НевидимаяЛиния;
ОбластьНиз = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Низ, 1, ДанныеВыделенныхСтрок.Низ, ОтчетТабличныйДокумент.ШиринаТаблицы);
Если ДанныеВыделенныхСтрок.ГраницаСнизу <> Неопределено Тогда
ОбластьНиз.ГраницаСнизу = ДанныеВыделенныхСтрок.ГраницаСнизу;
Иначе
Для Каждого НастройкиЯчейки Из ДанныеВыделенныхСтрок.УникальныеНастройкиГраницыНиз Цикл
ТекЯчейкаНиз = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Низ, НастройкиЯчейки.НомерКолонки,
ДанныеВыделенныхСтрок.Низ, НастройкиЯчейки.НомерКолонки);
ТекЯчейкаНиз.ГраницаСнизу = НастройкиЯчейки.ГраницаСнизу;
КонецЦикла;
КонецЕсли;
КонецЕсли;
// 3. При выделении всего документа, дальнейшие действия не требуются.
// Более того, если не сделать эту проверку, то дальше упадём с ошибкой, при попытке получения ячейки с координатами (0,х,0,х)
ВыделенВесьТабДок = ТекВерх = 0 Или ТекНиз = 0;
Если ВыделенВесьТабДок Тогда
// обработка выделенных строк на прошлом шаге для случая, когда ВыделенВесьТабДок = Истина, инициирует событие ПриАктивизации.
// Чтобы не заходить в бесконечный цикл, очистим данные выделенных строк.
ДанныеВыделенныхСтрок = Неопределено;
Возврат;
КонецЕсли;
// 4. Запомним текущие значения обведённости строк
ДанныеВыделенныхСтрок = Новый Структура;
ДанныеВыделенныхСтрок.Вставить("Верх", ТекВерх);
ДанныеВыделенныхСтрок.Вставить("Низ", ТекНиз);
ДанныеВыделенныхСтрок.Вставить("ГраницаСверху", ОбластьТекСтроки.ГраницаСверху);
ДанныеВыделенныхСтрок.Вставить("ГраницаСнизу", ОбластьТекСтроки.ГраницаСнизу);
// В общем случае у разных ячеек строки могут быть разные настройки Границ (настройки обведения)
// и чтобы вернуть их назад, их надо запомнить.
// Свойство ГраницаСверху (и все остальные границы) для области будет иметь значение неопределено,
// если для разных ячеек области у этой границы будут отличаться толщина или тип границы
// Отмечу, что ЦветРамки при этом, может отличаться, и на Границы это никак не повлияет,
// т.к. ЦветРамки является самостоятельным свойством области, как и сама Граница.
УникальныеНастройкиГраницыВерх = Новый Массив;
ДанныеВыделенныхСтрок.Вставить("УникальныеНастройкиГраницыВерх", УникальныеНастройкиГраницыВерх);
Если ОбластьТекСтроки.ГраницаСверху = Неопределено Тогда
Для НомерКолонки = 1 По ОтчетТабличныйДокумент.ШиринаТаблицы Цикл
НастройкиЯчейки = Новый Структура("НомерКолонки, ГраницаСверху");
НастройкиЯчейки.НомерКолонки = НомерКолонки;
ЯчейкаВерх = ОтчетТабличныйДокумент.Область(ТекВерх, НомерКолонки, ТекВерх, НомерКолонки);
НастройкиЯчейки.ГраницаСверху = ЯчейкаВерх.ГраницаСверху;
УникальныеНастройкиГраницыВерх.Добавить(НастройкиЯчейки);
КонецЦикла;
КонецЕсли;
УникальныеНастройкиГраницыНиз = Новый Массив;
ДанныеВыделенныхСтрок.Вставить("УникальныеНастройкиГраницыНиз", УникальныеНастройкиГраницыНиз);
Если ОбластьТекСтроки.ГраницаСнизу = Неопределено Тогда
Для НомерКолонки = 1 По ОтчетТабличныйДокумент.ШиринаТаблицы Цикл
НастройкиЯчейки = Новый Структура("НомерКолонки, ГраницаСнизу");
НастройкиЯчейки.НомерКолонки = НомерКолонки;
ЯчейкаНиз = ОтчетТабличныйДокумент.Область(ТекНиз, НомерКолонки, ТекНиз, НомерКолонки);
НастройкиЯчейки.ГраницаСнизу = ЯчейкаНиз.ГраницаСнизу;
УникальныеНастройкиГраницыНиз.Добавить(НастройкиЯчейки);
КонецЦикла;
КонецЕсли;
// 5. Обведём текущие строки сверху и снизу самой толстой линией.
// Ограничения (встречаются крайне редко): если строка уже обведена самой толстой линией, то при установке курсора на ней, ничего не изменится.
// Избавиться от этого без побочных эффектов невозможно, потому что,
// если в таком случае наоборот убирать обведение, то строка перестанет выделяться на фоне остальных строк.
// Логика подсказывает, что выделенных строк в отчёте должно быть меньшинство, иначе теряется смысл их выделения.
// Поэтому даже если на практике и встретится такой отчёт (а вероятность этого мала),
// то выделение текущей строки в нём всё равно будет приносить, тот результат, которого мы и добивались.
НаибольшаяВозможнаяТолщинаЛинии = 3;//ограничение платформы
Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, НаибольшаяВозможнаяТолщинаЛинии);
СтрокаВерх = ОтчетТабличныйДокумент.Область(ТекВерх,,ТекВерх);
СтрокаВерх.ГраницаСверху = Линия;
СтрокаНиз = ОтчетТабличныйДокумент.Область(ТекНиз,,ТекНиз);
СтрокаНиз.ГраницаСнизу = Линия;
КонецПроцедуры
Перем ДанныеВыделенныхСтрок;
&НаКлиенте
Процедура ОтчетТабличныйДокументПриАктивизации(Элемент)
// Делаем через обработчик ожидания, чтобы дать возможность выделить несколько строк,
// т.к. событие срабатывает сразу при выделении первой ячейки.
ПодключитьОбработчикОжидания("ВыделитьТеущиеСтроки", 0.1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ВыделитьТеущиеСтроки()
// 1. Найдём строки, где выделены ячейки
ТекВерх = ОтчетТабличныйДокумент.ТекущаяОбласть.Верх;
ТекНиз = ОтчетТабличныйДокумент.ТекущаяОбласть.Низ;
ОбластьТекСтроки = ОтчетТабличныйДокумент.Область(ТекНиз,,ТекВерх);
// 2. Скинем предыдущее обведение в состояние до нашего вмешательства
Если ДанныеВыделенныхСтрок <> Неопределено Тогда
//2.1. Если выделенные строки не менялись - ничего не делаем
Если ТекВерх = ДанныеВыделенныхСтрок.Верх И ТекНиз = ДанныеВыделенныхСтрок.Низ Тогда
Возврат;
КонецЕсли;
// 2.2. Вернём назад верхнюю границу
// Обнаружена багофича, что если строке целиком вернуть толщину, которая была у неё изначально, то результат будет отличаться от начального.
// Изначально для колонок идущих правее последней колонки (т.е. с номером больше, чем ШиринаТаблицы) Границы не отображаются.
// Но после установки новой границы, начнёт отображаться. Поэтому сначала полностью стираем границу, которую мы установили выделением,
// потом для колонок отчёта (с первой по ШиринаТаблицы) возвращаем сохранённую границу.
// Альтернативный вариант - можно выделять не всю строку, а только колонки с первой по ШиринаТаблицы - но он кажется менее функциональным и интуитивно понятным.
НевидимаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии);
СтрокаВерх = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Верх,, ДанныеВыделенныхСтрок.Верх);
СтрокаВерх.ГраницаСверху = НевидимаяЛиния;
ОбластьВерх = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Верх, 1, ДанныеВыделенныхСтрок.Верх, ОтчетТабличныйДокумент.ШиринаТаблицы);
Если ДанныеВыделенныхСтрок.ГраницаСверху <> Неопределено Тогда
ОбластьВерх.ГраницаСверху = ДанныеВыделенныхСтрок.ГраницаСверху;
Иначе
Для Каждого НастройкиЯчейки Из ДанныеВыделенныхСтрок.УникальныеНастройкиГраницыВерх Цикл
ТекЯчейкаВерх = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Верх, НастройкиЯчейки.НомерКолонки,
ДанныеВыделенныхСтрок.Верх, НастройкиЯчейки.НомерКолонки);
ТекЯчейкаВерх.ГраницаСверху = НастройкиЯчейки.ГраницаСверху;
КонецЦикла;
КонецЕсли;
// 2.3. Вернём назад нижнюю границу
СтрокаНиз = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Низ,, ДанныеВыделенныхСтрок.Низ);
СтрокаНиз.ГраницаСнизу = НевидимаяЛиния;
ОбластьНиз = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Низ, 1, ДанныеВыделенныхСтрок.Низ, ОтчетТабличныйДокумент.ШиринаТаблицы);
Если ДанныеВыделенныхСтрок.ГраницаСнизу <> Неопределено Тогда
ОбластьНиз.ГраницаСнизу = ДанныеВыделенныхСтрок.ГраницаСнизу;
Иначе
Для Каждого НастройкиЯчейки Из ДанныеВыделенныхСтрок.УникальныеНастройкиГраницыНиз Цикл
ТекЯчейкаНиз = ОтчетТабличныйДокумент.Область(ДанныеВыделенныхСтрок.Низ, НастройкиЯчейки.НомерКолонки,
ДанныеВыделенныхСтрок.Низ, НастройкиЯчейки.НомерКолонки);
ТекЯчейкаНиз.ГраницаСнизу = НастройкиЯчейки.ГраницаСнизу;
КонецЦикла;
КонецЕсли;
КонецЕсли;
// 3. При выделении всего документа, дальнейшие действия не требуются.
// Более того, если не сделать эту проверку, то дальше упадём с ошибкой, при попытке получения ячейки с координатами (0,х,0,х)
ВыделенВесьТабДок = ТекВерх = 0 Или ТекНиз = 0;
Если ВыделенВесьТабДок Тогда
// обработка выделенных строк на прошлом шаге для случая, когда ВыделенВесьТабДок = Истина, инициирует событие ПриАктивизации.
// Чтобы не заходить в бесконечный цикл, очистим данные выделенных строк.
ДанныеВыделенныхСтрок = Неопределено;
Возврат;
КонецЕсли;
// 4. Запомним текущие значения обведённости строк
ДанныеВыделенныхСтрок = Новый Структура;
ДанныеВыделенныхСтрок.Вставить("Верх", ТекВерх);
ДанныеВыделенныхСтрок.Вставить("Низ", ТекНиз);
ДанныеВыделенныхСтрок.Вставить("ГраницаСверху", ОбластьТекСтроки.ГраницаСверху);
ДанныеВыделенныхСтрок.Вставить("ГраницаСнизу", ОбластьТекСтроки.ГраницаСнизу);
// В общем случае у разных ячеек строки могут быть разные настройки Границ (настройки обведения)
// и чтобы вернуть их назад, их надо запомнить.
// Свойство ГраницаСверху (и все остальные границы) для области будет иметь значение неопределено,
// если для разных ячеек области у этой границы будут отличаться толщина или тип границы
// Отмечу, что ЦветРамки при этом, может отличаться, и на Границы это никак не повлияет,
// т.к. ЦветРамки является самостоятельным свойством области, как и сама Граница.
УникальныеНастройкиГраницыВерх = Новый Массив;
ДанныеВыделенныхСтрок.Вставить("УникальныеНастройкиГраницыВерх", УникальныеНастройкиГраницыВерх);
Если ОбластьТекСтроки.ГраницаСверху = Неопределено Тогда
Для НомерКолонки = 1 По ОтчетТабличныйДокумент.ШиринаТаблицы Цикл
НастройкиЯчейки = Новый Структура("НомерКолонки, ГраницаСверху");
НастройкиЯчейки.НомерКолонки = НомерКолонки;
ЯчейкаВерх = ОтчетТабличныйДокумент.Область(ТекВерх, НомерКолонки, ТекВерх, НомерКолонки);
НастройкиЯчейки.ГраницаСверху = ЯчейкаВерх.ГраницаСверху;
УникальныеНастройкиГраницыВерх.Добавить(НастройкиЯчейки);
КонецЦикла;
КонецЕсли;
УникальныеНастройкиГраницыНиз = Новый Массив;
ДанныеВыделенныхСтрок.Вставить("УникальныеНастройкиГраницыНиз", УникальныеНастройкиГраницыНиз);
Если ОбластьТекСтроки.ГраницаСнизу = Неопределено Тогда
Для НомерКолонки = 1 По ОтчетТабличныйДокумент.ШиринаТаблицы Цикл
НастройкиЯчейки = Новый Структура("НомерКолонки, ГраницаСнизу");
НастройкиЯчейки.НомерКолонки = НомерКолонки;
ЯчейкаНиз = ОтчетТабличныйДокумент.Область(ТекНиз, НомерКолонки, ТекНиз, НомерКолонки);
НастройкиЯчейки.ГраницаСнизу = ЯчейкаНиз.ГраницаСнизу;
УникальныеНастройкиГраницыНиз.Добавить(НастройкиЯчейки);
КонецЦикла;
КонецЕсли;
// 5. Обведём текущие строки сверху и снизу самой толстой линией.
// Ограничения (встречаются крайне редко): если строка уже обведена самой толстой линией, то при установке курсора на ней, ничего не изменится.
// Избавиться от этого без побочных эффектов невозможно, потому что,
// если в таком случае наоборот убирать обведение, то строка перестанет выделяться на фоне остальных строк.
// Логика подсказывает, что выделенных строк в отчёте должно быть меньшинство, иначе теряется смысл их выделения.
// Поэтому даже если на практике и встретится такой отчёт (а вероятность этого мала),
// то выделение текущей строки в нём всё равно будет приносить, тот результат, которого мы и добивались.
НаибольшаяВозможнаяТолщинаЛинии = 3;//ограничение платформы
Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, НаибольшаяВозможнаяТолщинаЛинии);
СтрокаВерх = ОтчетТабличныйДокумент.Область(ТекВерх,,ТекВерх);
СтрокаВерх.ГраницаСверху = Линия;
СтрокаНиз = ОтчетТабличныйДокумент.Область(ТекНиз,,ТекНиз);
СтрокаНиз.ГраницаСнизу = Линия;
КонецПроцедуры
Пример №2 с использованием рисунка ТД типа "Прямая" в 1С 8.3 от Тimiс:
#Область ОписаниеПеременных
//&НаКлиенте
//Перем ПолеФормы;
&НаКлиенте
Перем ГраницаСлева;
&НаКлиенте
Перем ГраницаСправа;
&НаКлиенте
Перем ГраницаСверху;
&НаКлиенте
Перем ГраницаСнизу;
#КонецОбласти
&НаКлиенте
Процедура РезультатПриАктивизации(Элемент)
Если ТипЗнч(ПолеФормы.ТекущаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
Возврат;
КонецЕсли;
Лево = Мин(Макс(ПолеФормы.ТекущаяОбласть.Лево, 1), ПолеФормы.ШиринаТаблицы);
Право = Мин(ПолеФормы.ТекущаяОбласть.Право, ПолеФормы.ШиринаТаблицы);
Верх = Мин(Макс(ПолеФормы.ТекущаяОбласть.Верх, 1), ПолеФормы.ВысотаТаблицы);
Низ = Мин(ПолеФормы.ТекущаяОбласть.Низ, ПолеФормы.ВысотаТаблицы);
Если Право > ПолеФормы.ФиксацияСлева Тогда
ИнициализироватьГраницу(ГраницаСлева);
ГраницаСлева.Расположить(ПолеФормы.Область(1, Лево, ПолеФормы.ВысотаТаблицы, Лево));
ГраницаСлева.Ширина = 0;
ИнициализироватьГраницу(ГраницаСправа);
ГраницаСправа.Расположить(ПолеФормы.Область(1, Право, ПолеФормы.ВысотаТаблицы, Право));
Ширина = ГраницаСправа.Ширина;
ГраницаСправа.Ширина = 0;
ГраницаСправа.Лево = ГраницаСправа.Лево + Ширина + ?(Право = ПолеФормы.ШиринаТаблицы, 0.2, 0.6);
КонецЕсли;
Если Низ > ПолеФормы.ФиксацияСверху Тогда
ИнициализироватьГраницу(ГраницаСверху);
ГраницаСверху.Расположить(ПолеФормы.Область(Верх, 1, Верх, ПолеФормы.ШиринаТаблицы));
ГраницаСверху.Высота = 0;
ИнициализироватьГраницу(ГраницаСнизу);
ГраницаСнизу.Расположить(ПолеФормы.Область(Низ, 1, Низ, ПолеФормы.ШиринаТаблицы));
Высота = ГраницаСнизу.Высота;
ГраницаСнизу.Высота = 0;
ГраницаСнизу.Верх = ГраницаСнизу.Верх + Высота + ?(Низ = ПолеФормы.ВысотаТаблицы, 0.2, 0.6);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИнициализироватьГраницу(Граница)
Если Граница <> Неопределено Тогда
Возврат;
КонецЕсли;
Граница = ПолеФормы.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Прямая);
Граница.ЦветЛинии = Новый Цвет(50, 50, 50);
Граница.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.Сплошная, 2);
КонецПроцедуры
//&НаКлиенте
//Перем ПолеФормы;
&НаКлиенте
Перем ГраницаСлева;
&НаКлиенте
Перем ГраницаСправа;
&НаКлиенте
Перем ГраницаСверху;
&НаКлиенте
Перем ГраницаСнизу;
#КонецОбласти
&НаКлиенте
Процедура РезультатПриАктивизации(Элемент)
Если ТипЗнч(ПолеФормы.ТекущаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
Возврат;
КонецЕсли;
Лево = Мин(Макс(ПолеФормы.ТекущаяОбласть.Лево, 1), ПолеФормы.ШиринаТаблицы);
Право = Мин(ПолеФормы.ТекущаяОбласть.Право, ПолеФормы.ШиринаТаблицы);
Верх = Мин(Макс(ПолеФормы.ТекущаяОбласть.Верх, 1), ПолеФормы.ВысотаТаблицы);
Низ = Мин(ПолеФормы.ТекущаяОбласть.Низ, ПолеФормы.ВысотаТаблицы);
Если Право > ПолеФормы.ФиксацияСлева Тогда
ИнициализироватьГраницу(ГраницаСлева);
ГраницаСлева.Расположить(ПолеФормы.Область(1, Лево, ПолеФормы.ВысотаТаблицы, Лево));
ГраницаСлева.Ширина = 0;
ИнициализироватьГраницу(ГраницаСправа);
ГраницаСправа.Расположить(ПолеФормы.Область(1, Право, ПолеФормы.ВысотаТаблицы, Право));
Ширина = ГраницаСправа.Ширина;
ГраницаСправа.Ширина = 0;
ГраницаСправа.Лево = ГраницаСправа.Лево + Ширина + ?(Право = ПолеФормы.ШиринаТаблицы, 0.2, 0.6);
КонецЕсли;
Если Низ > ПолеФормы.ФиксацияСверху Тогда
ИнициализироватьГраницу(ГраницаСверху);
ГраницаСверху.Расположить(ПолеФормы.Область(Верх, 1, Верх, ПолеФормы.ШиринаТаблицы));
ГраницаСверху.Высота = 0;
ИнициализироватьГраницу(ГраницаСнизу);
ГраницаСнизу.Расположить(ПолеФормы.Область(Низ, 1, Низ, ПолеФормы.ШиринаТаблицы));
Высота = ГраницаСнизу.Высота;
ГраницаСнизу.Высота = 0;
ГраницаСнизу.Верх = ГраницаСнизу.Верх + Высота + ?(Низ = ПолеФормы.ВысотаТаблицы, 0.2, 0.6);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИнициализироватьГраницу(Граница)
Если Граница <> Неопределено Тогда
Возврат;
КонецЕсли;
Граница = ПолеФормы.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Прямая);
Граница.ЦветЛинии = Новый Цвет(50, 50, 50);
Граница.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.Сплошная, 2);
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник