К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как удалить картинку из табличного документа в 1С

Как удалить картинку из табличного документа 1С: через интерфейс и программно. Очистка области, удаление рисунков, типичные ошибки и проверка результата.

Картинки в табличных документах 1С появляются по-разному: их вставляют вручную в макет, выводят программно при формировании отчёта или печатной формы, переносят из внешних файлов. Соответственно и удалить изображение можно несколькими способами — от простого выделения области в режиме просмотра до очистки свойства «Картинка» у области ячеек в коде. Выбор зависит от того, где находится картинка: в макете конфигурации, в готовом табличном документе на форме или в файле MXL.

Важно понимать, что в табличном документе 1С изображение существует в двух видах: как отдельный объект «Рисунок» (элемент коллекции рисунков табличного документа) и как картинка, назначенная непосредственно ячейке через её свойство. Это принципиально разные сущности, и удаляются они по-разному. Если пытаться убрать рисунок методами очистки ячеек — ничего не получится, и наоборот.

Ниже разобраны оба сценария: работа через пользовательский интерфейс конфигуратора и программное удаление на встроенном языке, а также типичные ошибки, из-за которых картинка «не удаляется».

Как определить, как именно вставлена картинка

Прежде чем удалять, выясните, с каким типом изображения вы имеете дело. Откройте табличный документ (макет или результат вывода) и кликните по картинке. Если она выделяется как цельный объект с рамкой и маркерами по углам — это рисунок, объект коллекции «Рисунки». Если же клик выделяет ячейку или диапазон ячеек, а изображение «привязано» к ним — картинка задана как свойство области.

Второй способ проверки — палитра свойств. Выделите объект и посмотрите свойства: у рисунка будут свойства «Имя», «Верх», «Лево», «Ширина», «Высота», «Картинка». У ячейки с картинкой в палитре свойств среди прочих (текст, шрифт, рамка) будет заполненное свойство «Картинка».

Программно различие проверяется так: переберите коллекцию ТабДок.Рисунки — если рисунок там есть, значит это объект. Если коллекция пуста, но изображение видно — ищите область с заполненным свойством Картинка.

Картинка выделяется как объект с рамкойЭто рисунок табличного документа

Удалять через коллекцию Рисунки или клавишей Delete

Выделяется ячейка, а не картинкаКартинка — свойство области ячеек

Очищать свойство Картинка у области

Картинка возвращается после перевыводаОна задана в макете или коде формирования

Править нужно источник: макет или процедуру вывода

Удаление картинки вручную через интерфейс

Если вы работаете с макетом в конфигураторе или с табличным документом, открытым на редактирование, удаление рисунка выполняется элементарно. Кликните по изображению, чтобы оно выделилось, и нажмите клавишу Delete. Альтернативно — правый клик по рисунку и выбор пункта удаления в контекстном меню (набор пунктов зависит от версии платформы).

Если картинка задана как свойство ячейки, выделите нужную ячейку или диапазон, откройте палитру свойств (правый клик — «Свойства»), найдите свойство «Картинка» и очистите его, нажав крестик в поле значения или выбрав пустое значение. После этого ячейка останется, а изображение исчезнет.

Особенности редактирования результата на форме

Табличный документ, показанный пользователю в режиме 1С:Предприятие, часто доступен только для просмотра. Чтобы удалить картинку вручную, документ должен быть открыт с возможностью редактирования — например, через команду «Изменить» (если она предусмотрена в конфигурации) или при отключённой защите. В типовых отчётах редактирование результата обычно заблокировано, и правильнее изменять макет или код формирования.

Программное удаление рисунка из коллекции

Рисунки табличного документа хранятся в коллекции Рисунки. Чтобы удалить конкретный рисунок, найдите его по имени или индексу и вызовите метод Удалить(). Пример удаления по имени:

ТабДок = Новый ТабличныйДокумент;

// ... формирование документа ...

Рисунок = ТабДок.Рисунки.Найти("Логотип");

Если Рисунок <> Неопределено Тогда

ТабДок.Рисунки.Удалить(Рисунок);

КонецЕсли;

Если нужно удалить все рисунки разом, используйте метод Очистить() у коллекции:

ТабДок.Рисунки.Очистить();

Учтите, что обращение к коллекции по имени через ТабДок.Рисунки.ИмяРисунка вызовет ошибку, если рисунка с таким именем нет. Безопаснее сначала выполнять поиск методом Найти() и проверять результат на Неопределено.

bsl
// Удаление всех рисунков табличного документа
ТабДок.Рисунки.Очистить();

// Удаление конкретного рисунка по имени
Рисунок = ТабДок.Рисунки.Найти("Штамп");
Если Рисунок <> Неопределено Тогда
    ТабДок.Рисунки.Удалить(Рисунок);
КонецЕсли;

Программная очистка картинки, заданной в ячейке

Когда изображение назначено ячейке через свойство, удаление сводится к очистке этого свойства у области. Получите область по имени или по координатам и присвойте свойству пустую картинку:

Область = ТабДок.Область("R5C3");

Область.Картинка = Новый Картинка;

Если картинка задана в макете и выводится вместе с областью через ПолучитьОбласть() и Вывести(), то очистка свойства в уже выведенном результате сработает, но при следующем формировании изображение появится снова. В этом случае правильный путь — открыть макет в конфигураторе и очистить свойство «Картинка» у соответствующей ячейки там.

Альтернативный вариант — не удалять, а не выводить: если картинка выводится условно (например, логотип только при заполненной настройке), логичнее обернуть вывод области с картинкой в условие, чем выводить и потом стирать.

Маршрут решения

Как выбрать действие

Картинка — объект в коллекции РисункиУдалите через ТабДок.Рисунки.Удалить() или Очистить()
Картинка — свойство ячейки в уже сформированном документеПолучите область и присвойте Область.Картинка = Новый Картинка
Картинка задана в макете и появляется при каждом выводеОчистите свойство Картинка у ячейки макета в конфигураторе
Картинка выводится кодом условноДобавьте условие вокруг вывода области вместо удаления после формирования

Удаление картинки из макета конфигурации

Самый частый практический случай: нужно убрать логотип или подпись из печатной формы навсегда. Для этого откройте конфигуратор, найдите нужный макет (обычно это макет типа «Табличный документ» у документа, справочника или общего макета) и откройте его.

Далее действуйте по типу картинки: рисунок выделите кликом и удалите клавишей Delete; картинку-свойство ячейки очистите через палитру свойств. После сохранения конфигурации печатная форма будет формироваться уже без изображения.

Типичные ошибки и проверка результата

Самая распространённая ошибка — попытка удалить рисунок через очистку ячеек. Метод Очистить() у области табличного документа не затрагивает коллекцию рисунков: объект «висит» поверх ячеек и остаётся на месте. Обратная ошибка — попытка найти картинку ячейки в коллекции Рисунки: её там нет.

Вторая частая ситуация — картинка «удалилась», но после перепроведения документа или повторного формирования печатной формы появилась снова. Это верный признак того, что изменён был результат, а не источник. Ищите место формирования: макет, процедуру печати, обработку формирования отчёта.

Третья ошибка — обращение к рисунку по имени, которого не существует, без проверки. Это приводит к ошибке выполнения. Всегда используйте Найти() с проверкой на Неопределено.

Типичные ошибки
01
Очистка области ячеек вместо удаления рисунка — изображение остаётся на месте
02
Правка готового результата вместо макета — картинка возвращается при повторном формировании
03
Обращение к рисунку по имени без проверки — ошибка выполнения, если рисунка нет
04
Удаление макета целиком вместо одной картинки — ломается вся печатная форма

После удаления проверьте результат: сформируйте печатную форму заново и убедитесь, что изображения нет, а соседние элементы (текст, рамки, таблицы) не пострадали. Если картинка была единственным содержимым области, проверьте, не осталось ли пустой строки с лишней высотой — иногда после удаления логотипа имеет смысл уменьшить высоту строки в макете.

Контрольные точки

Как проверить результат

Повторное формирование печатной формы
Норма

Картинки нет, остальные элементы на месте

Тревожный признак

Картинка появилась снова — правился результат, а не макет

Коллекция Рисунки после удаления
Норма

ТабДок.Рисунки.Количество() уменьшилось

Тревожный признак

Количество не изменилось — удалялся не тот объект

Соседние ячейки и рамки
Норма

Форматирование не пострадало

Тревожный признак

Сбились границы или высота строк — задета область

FAQ

Как удалить все картинки из табличного документа одним действием?

Для рисунков вызовите ТабДок.Рисунки.Очистить() — это удалит всю коллекцию. Картинки, заданные как свойства ячеек, этим методом не удаляются: их придётся очищать по каждой области отдельно, либо перебрать используемые области макета и сбросить свойство Картинка.

Почему картинка не удаляется клавишей Delete в режиме предприятия?

Скорее всего, табличный документ открыт в режиме «Только просмотр» или защищён от редактирования. В типовых отчётах и печатных формах результат редактировать нельзя — изменения нужно вносить в макет или код формирования через конфигуратор.

Можно ли удалить картинку из файла MXL без конфигуратора?

Файл MXL можно открыть через «Файл — Открыть» в режиме 1С:Предприятие, если у пользователя есть соответствующие права. Далее рисунок удаляется выделением и Delete, а результат сохраняется обратно в файл. Картинки-свойства ячеек очищаются через палитру свойств.

Как убрать логотип из печатной формы только для одной организации?

Удалять картинку из общего макета не нужно. Добавьте в процедуру формирования условие: если организация не та — либо не выводить область с логотипом, либо после вывода удалить рисунок через коллекцию Рисунки. Так настройка будет работать выборочно.

Чем отличается метод Очистить у области от удаления рисунка?

Метод Очистить() у области ячеек сбрасывает содержимое и (в зависимости от параметра) форматирование самих ячеек, но не трогает объекты коллекции Рисунки, которые расположены поверх. Рисунки удаляются только через ТабДок.Рисунки.Удалить() или Очистить() у самой коллекции.

Удалил картинку из макета, а при печати она всё равно выводится. Почему?

Вероятные причины: изменения сохранены, но конфигурация базы данных не обновлена; печатная форма формируется из другого макета (например, из общего или из макета внешней печатной формы); картинка выводится программно. Проверьте, какой именно макет используется, и нет ли в коде строки, добавляющей рисунок.

Итог

Что важно запомнить

Сначала определите тип картинки: объект коллекции Рисунки удаляется методами Удалить/Очистить, картинка-свойство ячейки — очисткой свойства у области. Для постоянного результата правьте макет или код формирования, а не готовый документ, и перед изменением типовой конфигурации делайте резервную копию.