Делалось для конфигурации Управление Аптечной Сетью (отраслевая доработка на базе УТ 11.4.6.166), тестировалось на платформе 8.3.13.1513 на момент разработки. Режим совместимости конфигурации и расширения 8.3.12. Расширение во вложении должно работать на всех версиях УТ/УАС начиная с версий 11.4.6.166 или более ранними, кроме задачи про КонтактнуюИнформацию, т.к. эта обработка часто изменяется разработчиками – если что-то не взлетит, то путем простых доработок Вы сами сможете поправить. Это моя первая статья, поэтому камнями прошу не бросаться. Если что-то нужно уточнить или добавить в описании пишите в комментариях я учту и дополню. Пока не умею вставлять программные коды, поэтому вся логика внутри файлов. Заранее благодарю. Приступим…
Задача №1 Хранить историю печатей, факсимиле, подписей различных должностных лиц организации для дальнейшего получения и использования действующих на заданную дату
- Добавить в Перечисление «ОтветственныеЛицаОрганизаций» свои значения недостающих факсимиле: ЗаведующийСкладом, Фармацевт, НачальникПриемногоОтдела.
- Создать новое Перечисление (или Справочник) – ДА_ВидыШтампов со значениями: ПодписьРуководителя, ПодписьБухгалтера, ПодписьФармацевт, ПодписьЗаведующегоСкладом, ПечатьФирмы, Бланк, ПодписьНа чПриемОтд
- Создать НеПериодический Независимый Регистр Сведений «ИсторияРеквизитов» с измерениями: СтруктурнаяЕдиница (тип: Справочник.Организации – можно увеличивать), ПериодДействия (Дата), ВидРеквизита (Перечисление.ВидыШтампов), Ресурс: Значение (тип: ОрганизацииПрисоединенныеФайлы), Реквизит: ДопЗначРеквизита (строка 100) может не быть или быть любого типа, мне для удобства нужен путь к файлу в томе, поэтому строка 100 куда будут записывать unc путь к файлу с расширением. У Регистра создать форму РедактированиеИстории. Модуль формы наполнить нужными обработчиками. См. картинку ФормаРегистра_РедактированиеИстории.JPG
- У регистра сведений создаем форму РедактированиеИстории, где будет происходить правка истории пользователем. Чтобы не рисовать с нуля воспользовался созданной в конфигурации БП/УТ готовой формой из РегистраСведений «УчетнаяПолитикаОрганизаций» и внес в неё изменения под свою задачу: вырезал лишнее и заменил вызовы общих модулей «ПериодическиеСведения****» на свои. ФормаСписка и ФормаЗаписи можно не переносить и оставить по-умолчанию.
Далее действия в расширении.
В модуле менеджера Справочника «Организации» создать обработчик гиперссылки История ИсторияРеквизитовФайлов
У справочника «Организации» создать реквизиты ДА_ФайлПодписьРуководителя, ДА_ФайлПодписьБухгалтера, ДА_ФайлПодписьФармацевт, ДА_ФайлПодписьЗаведующугоСкладом, ДА_ФайлПечатьФирмы, ДА_ФайлБланк, ДА_ФайлПодписьНачПриемОтд все типа СправочникСсылка.ОрганизацииПрисоединенныеФайлы
У справочника «Организации» в заимствованной ФормаЭлемента располагаем на форме нужные Элементы, добавляе м реквизиты, в модуле формы пишем обработчики событий нажатий на файлы, картинки, их очистки и т.п. и т.д. в части взаимодействия с Историей. см. ИсторияПечатей.gif
Задача №2 Хранить историю Контактной Информации (далее – КИ) в части Телефона, ПочтовогоАдреса и ФактическогоАдреса организации
В сети есть решения с использованием нового своего РегистраСведений, но мне захотелось реализовать на типовом механизме конфигурации справочника ВидыКонтактнойИнформации. Все действия выполняем на стороне Расширения.
Т.к. в типовой конфигурации хранение истории поддерживается только для Адресов, то чтобы иметь возможность поставить галку «ХранитьИсториюИзменений» у ТелефонаОрганизации чуть-чуть модифицируем ФормаЭлемента справочника ВидыКонтактнойИнформации процедуру ПриСозданииНаСервере и по методу &Вместо заменим на свою, сняв мешающее нам ограничение. Потом после установки галочки у Телефона можно эту процедуру удалить.
ОбщийМодуль УправлениеКонтактнойИнформацией переопределим методом &Вместо процедуру СоздатьДействие, чтобы срабатывали стандартные механизмы размещения кнопки ИсторияИзменений для вида КИ ТелефонОрганизации. см. ИсторияРеквизитовКИ2.gif
Ошибки в интерфейсе типового решения , имеющиеся в этой обработке не рассматриваем, а возьмем как есть и внедримся в существующий механизм, ну кроме одной явной ошибки, когда при изменении Адреса/Телефона результат изменения считается всегда Новым и переносится в строку НачальноеЗначение, рассчитываю, что эта ошибкабудет пофиксина в следующих релизах 1С.
Во-первых, нужно адаптировать форму ВводТелефона обработки ВводКонтактнойИнформации. Делаем через заимстование формы и добавления через интерфейс своих реквизитов и элементов (можно и лучше программно, но пока не дошли руки). Всего нужно скопировать из типового механизма работы с КИ вида "Адрес" с небольшими изменениями и вставить несколько своих около 15 процедур/функций, поэтому приводить их текст пока не буду – см. во вложенном расширении.
В форме ИсторияКонтактнойИнформации той же обработки ВводКонтактнойИнформации переопределить процедуру ОткрытьФормуРедактированияАдреса методом &Вместо и также написать свой обработчик Оповещения после закрытия формы как раз для исправления ошибки описанной выше. Пытался переопределить существующий в основной конфигурации метод-обработчик Оповещения, но при попытке добавить в расширение процедуры платформа у меня вылетает полностью без каких-либо ошибок и сообщений. Почему? Если кто-то знает буду рад прочитать комментарий. см. ИсторияТелефона.gif
Задача №3 Хранить историю КПП организаций: Создать историю КПП легко, т.к. это уже реализовано в конфигурациях БП/КА через хранение в ТЧ справочников Организации и Контрагенты. Ничего сложного там нет и потому было скопировано как есть из них в свою конфигурацию. Можете посмотреть сами в файле расширения, поэтому подробно описывать здесь эту часть здесь не буду.
Во вложениях файл основной конфигурации только с новыми объектами для уменьшения объема и простоты сравнения/объединения и файл расширения конфигурации с описанными изменениями. Использование расширения и конфигурации без понимания, что Вы делаете опасно. Никаких гарантий работоспособности у Вас мною не предоставляется ;)
Другие мои публикации на Инфостарте:
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.4.6.166