Хранение сканов договоров контрагентов

23.09.14

Задачи пользователя - Адаптация типовых решений

Cлучилось то, что время от времени случается с каждым из нас, кроме самых лучших: появилась необходимость привязывать сканы к договорам

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
СканыДоговоровКонтрагентов v2.epf
.epf 32,67Kb
35 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Итак, случилось то, что время от времени случается с каждым из нас, кроме самых лучших: появилась необходимость привязывать сканы к договорам.

Как известно, в любой типовой конфигурации имеется механизм, предназначенный для привязки к объектам ИБ файлов и изображений. Однако, как это обычно бывает, штатный механизм показался неудобным и было решено использовать костыли собственной разработки.
Для конкретики возьмем конфигурацию Управление производственным предприятием 1.3, в ней штатный механизм привязки изображений выглядит так, как нарисовано на первом скриншоте. Не устроил он в основном тем, что в нем нет возможности НЕ загружать в базу файлы (а ведь для хранения файлов уже давно был изобретен файлсервер, причем с разграничением прав доступа!). В своё оправдание могу сказать, что сканы на сетевом ресурсе к этому времени уже хранились (для каждого договора своя папка с произвольным количеством сканов), нужно было только обеспечить к ним быстрый доступ из 1С, а во вторых не хотелось увеличения размеров базы, бэкапов и обменов РИБ.
Итак, в первой попытке я, как котстылеписатель-рецидивист, написал обработку (она осталась с тех пор практически неизменной, кроме двух функций) и к ней в комплект - регистр сведений. Так же для работы нужно было немного изменить форму элемента справочника ДоговорыКонтрагентов. Вот комментарий из этотй версии:

//Для работы нужен регистр сведений
//ПутиКСканам
//Измерения:    Объект (Тип:ЛюбаяСсылка)
//Ресурсы:        Путь (Тип: Строка(100))

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

а вот соответственно функции чтения/записи:

Функция ПолучитьПутьКСканам(Объект) Экспорт    
    Запрос = Новый Запрос("ВЫБРАТЬ
                          |    ПутиКСканам.Путь
                          |ИЗ
                          |    РегистрСведений.ПутиКСканам КАК ПутиКСканам
                          |ГДЕ
                          |    ПутиКСканам.Объект = &Объект");
    Запрос.УстановитьПараметр("Объект", Объект);
    Выборка = Запрос.Выполнить().Выбрать();
    Если (Выборка.Следующий()) Тогда
        Если (прав(Выборка.Путь,1)="\") Тогда
            возврат Выборка.Путь;
        Иначе
            возврат Выборка.Путь+"\";
        КонецЕсли;
    Иначе
        возврат "";
    КонецЕсли;
КонецФункции

Функция УстановитьПутьКСканам(Объект, Путь) Экспорт
    МенеджерЗаписи = РегистрыСведений.ПутиКСканам.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Объект = Объект;
    МенеджерЗаписи.Путь = Путь;
    МенеджерЗаписи.Записать();
КонецФункции

Видно, что для работы обработки необходимо добавление одного регистра, самой обработки и изменение формы. Но, во-первых, я нахожусь в РИБ, отстальные узлы мою разработку могут не оценить, во-вторых, это несколько затруднит обновление. Пробуем подойти к проблеме с другой стороны. Справочник ХранилищеДополнительнойИнформации имеет всё необходимое для счастья, нужно только немного изменить приведенные функции:

Функция ПолучитьПутьКСканам(Объект, ПолучитьСсылку = Ложь) Экспорт
    //храним только путь к папке, поэтому тип - файл.
    Запрос = Новый Запрос("ВЫБРАТЬ
                          |    ХранилищеДополнительнойИнформации.ИмяФайла КАК Путь,
                          |    ХранилищеДополнительнойИнформации.Ссылка
                          |ИЗ
                          |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
                          |ГДЕ
                          |    ХранилищеДополнительнойИнформации.Объект = &Объект
                          |    И ХранилищеДополнительнойИнформации.ВидДанных = ЗНАЧЕНИЕ(Перечисление.ВидыДополнительнойИнформацииОбъектов.Файл)
                          |    И ХранилищеДополнительнойИнформации.ПометкаУдаления = ЛОЖЬ
                          |    И ХранилищеДополнительнойИнформации.Наименование = ""ПутьКСканам""");
    Запрос.УстановитьПараметр("Объект", Объект);    
    Выборка = Запрос.Выполнить().Выбрать();
    Если (Выборка.Следующий()) Тогда
        Если (ПолучитьСсылку) Тогда
            возврат Выборка.Ссылка;
        КонецЕсли;
        Если (прав(Выборка.Путь,1)="\") Тогда
            возврат Выборка.Путь;
        Иначе
            возврат Выборка.Путь+"\";
        КонецЕсли;
    Иначе        
        возврат "";
    КонецЕсли;
КонецФункции

Функция УстановитьПутьКСканам(Объект, Путь) Экспорт
    Если (не ЗначениеЗаполнено(Путь)) Тогда
        возврат 0;
    КонецЕсли;
    СпрСсылка = ПолучитьПутьКСканам(Объект, Истина);
    Если (не ЗначениеЗаполнено(СпрСсылка)) Тогда
        Спр = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        Спр.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
        Спр.Объект = Объект;
        Спр.Наименование = "ПутьКСканам";
    Иначе
        Спр = СпрСсылка.ПолучитьОбъект();
    КонецЕсли;
    Спр.ИмяФайла = Путь;    
    Спр.Записать();
КонецФункции

Регистр нам больше не нужен, отсталось куда-то прицепить саму обработку. Я её переделал во внешнюю печатную форму для справочника Контрагенты, для чего пришлось внести еще немного изменений - изначально форма показывала сканы только одного договора, пришлось добавить выбор договоров текущего контрагента. Естественно, при такой реализации есть особенность (а для кого-то может и недостаток): договор необходимо записать отдельно, в другой форме, перед тем, как пользоваться обработкой.
Как выглядит результат, можно посмотреть на скриншоте №2.

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

Прикладываю обработку, которая совершенно точно работает в УПП 1.3.51.4. Для работы в несовместимой конфигурации достатотчно изменить приведенные две функции (добавив регистр сведений, от которого я отказался, либо использовав регистр ЗначенияСвойствОбъектов - лично мне показалось, что строка в нем коротковата).

Вступайте в нашу телеграмм-группу Инфостарт

хранение изображений внешняя печатная форма

См. также

Разработка Адаптация типовых решений Учетные задачи Производство готовой продукции (работ, услуг) Розничная торговля 1С:Управление торговлей 10 Россия Платные (руб)

Доработка для 1С:Управление торговлей 10.3 (релиз 10.3.88.3) добавляет поддержку маркировки новых категорий товаров согласно постановлениям Правительства РФ 2025–2026 гг. Конфигурация УТ 10.3 снята с поддержки — новые маркируемые категории в типовую поставку больше не попадают. Доработка закрывает этот пробел: новые виды номенклатуры, обмен с ГИС МТ «Честный Знак». Поставляется в виде файла .cf

14640 руб.

23.04.2026    809    5    9    

7

Адаптация типовых решений 1С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

32330 руб.

29.06.2023    12328    35    15    

42

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    870    1    0    

2

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

6000 руб.

07.02.2023    13216    118    23    

74

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

9760 руб.

17.06.2025    3662    9    0    

8

Адаптация типовых решений 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Расширение для вывода информации об остатках и ценах номенклатуры в форме списка и выбора номенклатуры. (УТ 11, КА 2, ERP). Позволяет получать информацию о ценах, остатках и доступности в разрезе складов и характеристик номенклатуры, информацию по документам резерва.

7930 руб.

16.10.2025    1384    2    0    

2
Для отправки сообщения требуется регистрация/авторизация