1с очистить параметры области макета
Для того, чтобы появилась возможность использовать свойство "Значение", необходимо явно присвоить свойству ячейки "СодержитЗначение" значение Истина или установить флажок "Содержит значение" в палитре свойств.
Для ячейки, у которой установлен признак "СодержитЗначение", можно задать тип значения, размещаемого в ячейке.
Следующий фрагмент демонстрирует, как можно управлять этими свойствами из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"
Для ячейки табличного документа можно задавать формат вывода данных. Для этого используется свойство "Формат", которое содержит форматную строку. Приемы работы с форматной строкой полностью совпадают с функцией Формат()
Для ячейки, у которой установлен признак "СодержитЗначение", можно также задать элемент управления, который будет использоваться для редактирования этого значения.
Элемент управления можно назначить через палитру свойств или из встроенного языка с помощью метода "УстановитьЭлементУправления()". Чтобы проверить в программе, установлен ли элемент управления для конкретной ячейки, можно использовать свойство "ЭлементУправления", которое возвращает элемент управления, назначенный для ячейки.
Элементы управления, встроенные в ячейку, отображаются только при входе в режим редактирования значения. На приведенном ниже рисунке редактируемая ячейка обведена овалом и в ней отображается флажок:
Ниже показан пример установки элемента управления типа "Флажок" из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"
Для элементов управления, расположенных в табличном документе, расширяется набор свойств, методов и событий:
Свойство "ВстроенВЯчейку" имеет тип "булево" и говорит о том, что элемент управления встраивается в ячейку или просто привязывается к ней, о чем было рассказано выше.
Свойство "Значение" предоставляет доступ к значению, которое редактируется в элементе управления. Оно используется только для элементов управления, поддерживающих связь с данными.
Метод "Расположить" позволяет разместить элемент управления в конкретной области ячеек табличного документа. Именно этот метод был использован в вышеприведенном примере.
Добрый день!
Есть два похожих отчета.
В 1-ом отчете 6 колонок, во 2-ом отчете 5 колонки из 1-го отчета: с 1-ой по 4-ю и 6-ая, т.е. без 5-ой.
Создаю один макет на два отчета (не СКД) из 6 колонок (рис. 1).
Можно ли теперь при выводе 2-го отчета программно удалить/скрыть 4 колонку?
Не хочется ведь создавать два макета из-за таких мелких различий.
Нашел только метод Очистить() у макета, но он очищает текст толкько, а пустое место остается при выводе (рис.2)
Например так -
ТабличныйДокумент (SpreadsheetDocument)
УдалитьОбласть (DeleteArea)
Синтаксис:
УдалитьОбласть(, )
Параметры:
(обязательный)
Тип: ОбластьЯчеекТабличногоДокумента. Удаляемая область.
(необязательный)
Тип: ТипСмещенияТабличногоДокумента. Определяет смещение ячеек таблицы при удалении.
Значение по умолчанию: БезСмещения
Описание:
Удаляет область из табличного документа.
Пример:
Смещать = ТипСмещенияТабличногоДокумента.ПоВертикали;
Область = ТабДок.Область("R2C2:R2C2");
ТабДок.УдалитьОбласть(Область, Смещать);
Хотя если, честно не понимаю зачем удалять - в типовых например счетах - чертова уйма колонок и ты думаешь они удаляются? Они просто выводятся тогда, когда надо.(ТабДок.Вывести())
ЗЫ Пользуй справку.
cool.vlad4 пишет:
Хотя если, честно не понимаю зачем удалять - в типовых например счетах - чертова уйма колонок и ты думаешь они удаляются? Они просто выводятся тогда, когда надо.(ТабДок.Вывести())
Но при Вывести() в шапке например напечатается 5-я колонка, как же я ее НЕ выведу/скрою? Нужно удалять ее перед выводом.
VirusB13; user1008893; user712426; guerro; user609070_grigorevvan2; burni4; mnitsi; Огонек; kar911; kotlovD; AllexSoft; + 11 – Ответить
Насколько мне известно, то нельзя. Это для тебя это "колонка", а для машины - это горизонтальные секции. Можно сделать еще и вертикальные секции, и выводить в отчет необходимые пересечения горизонтальных и вертикальных секций. Но лучше все-таки сделать еще один макет.
(4) Почему нельзя? Я удалял. Только горизонтальную область - нужно было в некоторых случаях удалять и создавать программно, но так, чтобы пользователи не смогли содрать макет (шел сразу на печать).
(5) Я не то имел виду - к примеру Счет на оплату покупателю - если есть скидка, то выводится колонка со скидками, если их нет, но ничего не выводится и документ получается как если бы этой колонки и не было. Работать надо с областями, а не с колонками.
(8) Это не страшно, но все же проще через стандартный механизм.
К примеру в Счете при формировании таб документа - строчки
Если ПараметрыПечати.ЕстьСкидки Тогда
ТабДокумент.Присоединить(ОбластьСкидок);
КонецЕсли;
Т.е. надо формировать таб документ ТабДокумент = Новый ТабличныйДокумент;
Затем получать макет Макет = ПолучитьМакет("ИмяМакета");
А затем стандартная посекционная процедура ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
ТабДокумент.Вывести(ОбластьМакета);
Затем уже ТабДокумент.Присоединить(
В интерфейсе поля формы, или редактора Табличного документ в контекстном меню есть пункт "удалить формат строк". Действия этой кнопки можно повторить программно?
Бывает что на выходе получаем табличный документ, в котором содержаться области, со своими форматами строк. Иногда у пользоватлей при редактировании такого табличного документ возникают нюансы..
В довесок еще вопрос. Как можно определить группы областей со своим собственным форматом строк программно? ведь такие области могут находится не сплошняком а с разрывом.
Итак , результат изысканий:
На программном уровне функции , такие как "Удалить формат строк" и расчет автоширины колонок, не реализованы.
Но найдено два способа обходных путей.
1. сериализация , изменение сериализованного объекта , и обратная десериализация
Пример:
Данный метод хорош тем, что полностью может отработать НаКлиенте . Но при больших размерах данных в табличном документе время выполнения будет задерживаться в сериализации и десериализации. Так же данный способ позволяет ответить на мой второй вопрос : Найти строки с одинаковым форматом строк. Строки у которых будет одинаковый формат будут ссылаться на один и тот же ID колонок. Пример приводить не буду, пока сильной необходимости нету. А так же метод пока не отлажен, и кто его знает какие есть подводные камни.
Спасибо за идею из (9) и (14) . В (14) считаю излишне перегонять это в xml или json. И тем более перебирать строки. Лучше наверное работать в "объектной" модели.
2. Копирование области в пустую часть, и удаление области с собственным форматом
Пример:
Минус данного метода, что он выполняется только на НаСервере . На больших данных наблюдается задержка как раз при вызове сервера, а так же при удалении области. Так же минусом будет то, что "полетят" высоты строк
Еще "фишка" данного способа, все "невидимые" строки отобразятся. Иногда это полезно
PS
Можете спросить а для чего это вообще может понадобиться.
1. Когда предоставляешь пользователю редактировать документ, а он при этом сформирован внешними функциями или отчетом, то иногда пользователь может недоумевать, почему "плывут колонки", или почему я не могу вставить нормально строки.
2. При чтении в табличный документ например из эксель, листы эксель читаются именованными областями, каждая из которых имеет собственный формат строк. А для корректного, последующего чтения данных из табличного документа нужно как раз что бы все было видно достаточно прозрачно.
3. При сохранении табличного документа в эксель, что бы не добавлялись лишние колонки в самом эксель.
QR код в 1С 20
Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура РасчетШириныКолонок(Табличный Ввод договоров ГПХ в ЗУП (счет 76) 9
Часто меня спрашивают: Как правильно отразить договор ГПХ в ЗУП? Ниже небольшая, последовательная инструкция: Прием на работу Сведения о физическом лице, выполняющем работы по договору подряда, должны быть внесены в справочник Сотрудники организ Ввод документа на основании - Программно 11
НовДок = Документы.ПеречислениеНДФЛвБюджет.СоздатьДокумент(); //Заполнить - вызывает ОбработкаЗаполнения(Основание) в документе ПеречислениеНДФЛвБюджет НовДок.Заполнить(ЭлементыФормы.ДокументСписок.ТекущаяСтрока); НовДок.ПолучитьФорму().Открыть() Ввод по строке - поиск по первым символам или в любом месте наименования 6
При разработке конфигурации, для упрощении ввода документов потребовалось настроить ввод номенклатуры по совпадению любой части наименования! В 1С 8.3 по умолчанию настройки справочника номенклатуры такие: При такой настройке, механизм поиска в Посмотреть все результаты поиска похожих
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32
// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Посмотреть все в категории Табличный документ
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом:
Код 1C v 8.х Код 1C v 8.х Код 1C v 8.х Код 1C v 8.х
Для того, чтобы появилась возможность использовать свойство "Значение", необходимо явно присвоить свойству ячейки "СодержитЗначение" значение Истина или установить флажок "Содержит значение" в палитре свойств.
Для ячейки, у которой установлен признак "СодержитЗначение", можно задать тип значения, размещаемого в ячейке.
Следующий фрагмент демонстрирует, как можно управлять этими свойствами из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"
Для ячейки табличного документа можно задавать формат вывода данных. Для этого используется свойство "Формат", которое содержит форматную строку. Приемы работы с форматной строкой полностью совпадают с функцией Формат()
Элемент управления в табличном документе
Для ячейки, у которой установлен признак "СодержитЗначение", можно также задать элемент управления, который будет использоваться для редактирования этого значения.
Элемент управления можно назначить через палитру свойств или из встроенного языка с помощью метода "УстановитьЭлементУправления()". Чтобы проверить в программе, установлен ли элемент управления для конкретной ячейки, можно использовать свойство "ЭлементУправления", которое возвращает элемент управления, назначенный для ячейки.
Элементы управления, встроенные в ячейку, отображаются только при входе в режим редактирования значения. На приведенном ниже рисунке редактируемая ячейка обведена овалом и в ней отображается флажок:
Ниже показан пример установки элемента управления типа "Флажок" из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"
Для элементов управления, расположенных в табличном документе, расширяется набор свойств, методов и событий:
Разберем самые важные свойства и методы:
Свойство "ВстроенВЯчейку" имеет тип "булево" и говорит о том, что элемент управления встраивается в ячейку или просто привязывается к ней, о чем было рассказано выше.
Свойство "Видимость" позволяет показать или скрыть элемент управления.
Свойство "Значение" предоставляет доступ к значению, которое редактируется в элементе управления. Оно используется только для элементов управления, поддерживающих связь с данными.
Метод "Расположить" позволяет разместить элемент управления в конкретной области ячеек табличного документа. Именно этот метод был использован в вышеприведенном примере.
Похожие FAQ
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32
// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Функция загружает весь табличный документ в таблицу значений 6
// Вариант 1 // По переданному табличному документу возвращает таблицу значений, // при условии что в первой строке таблицы - идентификаторы колонок // Автор : dimoff Функция ПолучитьТЗИзМакета(ТабДок, КолонкаИндекса = 1) Экспорт ТаблицаДанн Посмотреть все в категории Табличный документ
Читайте также: