Скрепка в списках документов (всех или почти всех) УТ 11.5
Учетные задачи - Учет документов
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
В конфигурации УТ 11.5 неожиданно исчезла скрепка, показывающая наличие прикрепленных файлов к документу, которая многим нужна.
Но есть решение: это или других коллег по инфостарту.
Данное отличается тем, что оно относительно универсальное и скрепка отображается практически во всех списках документов, для которых предусмотрено прикрепление файлов.
Как и у других решений, данное основано на изменении запроса динамического списка путем соединения с регистром сведений НаличиеФайлов.
Относительная универсальность решения достигается за счет использования объекта СхемаЗапроса.
Кому интересно, алгоритм следующий:
В УТ есть общий модуль МодификацияКонфигурацииПереопределяемый, в котором среди прочих реализована процедура ПриСозданииНаСервере, вызываемая из открываемых форм. Перехватываем данный метод в расширении с директивой &После
Использование такого способа не требует перехвата самих форм списков документов и не конфликтует с возможными другими доработками этих форм.
И так. Программно находим реквизит динамического списка документов. Для этого я использую способ, который попался мне у @ASHkins. В нем определяется имя реквизита списка простым перебором реквизитов (Источник: //infostart.ru/1c/articles/2191423/). Здесь выбирается первый реквизит с типом "Динамический список".
Я не проверял все формы, но думаю, в большинстве вариантов, найдем именно интересующий нас список документов.
Также проверим стандартное имя для такой скрепки "ЕстьФайл". И если на форме уже есть такой реквизит, то выходим из процедуры
Далее проверяем в метаданных наличие справочника с присоединенными файлами для интересующего нас вида документов. В типовой УТ имя строится по схеме:
ИмяСправочника = ИмяДокумента + "ПрисоединенныеФайлы",
т.е. например "СчетНаОплатуКлиентуПрисоединенныеФайлы" или "РеализацияТоваровУслугПрисоединенныеФайлы"
Можно бы соединятся с конкретными справочниками, но УТ поддерживает РегистрСведений.НаличиеФайлов, с которым и следует соединиться левым соединением.
Для наибольшей универсальности, воспользуемся объектом СхемаЗапроса. В схеме возьмем первый пакет запросов, в нем первый оператор и первый источник, т.к. основная таблица списка обычно ставится первой. (В случае выявление исключений, их можно быстро учесть в данном алгоритме).
Например, в одной из форм при построении в запросе соединения с основной таблицей необходимо соединяться не с полем "Ссылка", а с полем "ДокументПоступления". При выявлении таких нюансов их нужно учесть в коде, пишите, буду корректировать расширение.
Оформляем на форме колонку со скрепкой. Указываем картинку для шапки и для значения.
Если выявите ошибку, прошу писать, буду стараться устранять проблемы относительно оперативно.
Проверено на следующих релизах:
11.5.20.66;
11.5.24.43
Не забываем отключить безопасный режим у расширения.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.24.43, 11.5.20.66
Вступайте в нашу телеграмм-группу Инфостарт