gifts2017

Хранение реквизитов вне конфигурации

Опубликовал Дуб (Дуб) в раздел Обработки - Обработка справочников

Добавление реквизитов без включения возможности редактирования конфигурации.

Сразу уточняю: как и раньше - решал тактическую задачу. Возможно, кому-нибудь пригодится моё решение.

Решение не претендует на универсальность и не является всеобъемлющим, применимым для любой смежной задачи.

Итак: была задача добавить в типовую бухгалтерию новые реквизиты (в справочнике "Номенклатура", тип - текст). Формат хранения бухгалтерской базы - файловый. В дальнейшем реквизит должен был отображаться в некоторых печатных формах. Заполнять реквизиты должен один человек. Всё.

Ради этого включать возможность редактирования я посчитал излишним.

В качестве решения использовал пару: внешняя обработка и файл (в моём случае *.dbf). Во внешней обработке две рабочие формы: форма списка номенклатуры и форма элемента номенклатуры (нетиповые).

При открытии формы элемента дополнительные реквизиты заполняются по данным из файла *.dbf. Если файла не существует, то он создаётся. Состав полей файла определяется перечнем дополнительных реквизитов формы. В данном решении имена реквизитов начинаются с "z_". При записи элемента выполняется запись в файл данных. Соответственно: если записи не было - она добавляется, если запись была - она обновляется.

В качестве ключа - внутренний идентификатор 1С.

Вводит данные оператор, используя обработку.

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

Собственно, это всё.

Если кому пригодится - хорошо. Не пригодится - тоже неплохо.

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.1232450657 15,80Kb
25.09.09
115
.1232450657 15,80Kb 115 Бесплатно

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

1. artem666 Bogomaz (artem666) 20.01.09 21:53
По моему личному мнению и опыту,проблемы будут с бэкапом и производительностью, так что лучше обходить такие способы решения) Это личное ИМХО повторяюсь...
2. Igоr Sаulеviсh (gutentag) 21.01.09 11:41
(1) А что мешает делать архивные копии "внешним архиватором" ?
Проблема если и будет, то с "лечением" dbf-файла
3. Дуб (Дуб) 21.01.09 14:07
(1) если бы было хоть несколько изменений - тогда и говорить не о чем: на то 1С и имеет открытый код. Но ради одной модификации иметь гемор с обновлениями - лениво. Кроме того - было интересно попробовать механизм. Я отдельно упомянул, что база файловая. Так что бэкаплю я внешним архиватором весь каталог.
(2) это как раз поправимо. Более или менее геморройно, но при наличии бэкапов - поправимо.
4. Роман Ершов (MRAK) 22.01.09 12:09
Молодца, +. Мне вроде не пригодится, но идея, однако)))
5. Дуб (Дуб) 23.01.09 08:21
(4) а вообще - довольно редкая задача. Как правило - если модификации пошли - то проще прямо в объекте кидать новые формы (копии текущих), заводить новые реквизиты, или добавлять регистры сведений и лепить подобные связки. И будет это более правильно, чем сабж. Просто иногда (очень редко) нужны совершенно мизерные доработки. И ради этого потом при каждом обновлении учитывать, что там у меня изменено... Можно, конечно. Но сложнее.
Опять таки - если бы речь шла о постоянно и массово используемых доработках - тогда, пожалуй, усложнение пошло бы уже в геометрической прогрессии (формы списков, формирование и обновление собственного кэша, блокировки записи, модификации отчётов и т.п.)
6. Roman Biblbox (mr zafod) 24.01.09 10:06
+ конечно за идею, но тут можно решить с помощью ПланаВидовХарактеристик, пары справочников и одного регистра сведений, причем можно будет хранить бесконечное множество дополнительных характеристик и не только строковых для любого ссылочного объекта конфигурации. При обновлении тоже проблем никаких не будет. 3 объекта бахнуть как из основной конфигурации при объединении по-моему особого труда не составляет.
7. Дуб (Дуб) 24.01.09 20:39
(6) не, ты не понял. Мне нравится механизм обновления с сайта 1С в автоматическом режиме. Вообще голову включать не надо. И клиента в этом плане можно научить на пару кнопок нажать.
А по поводу типов реквизитов - тут всё вплоть до ссылочного типа замутить можно (по внутреннему идентификатору, опять таки). А уж тип Число или Булево - вообще без проблем. Только сложность будет расти непропорционально. Это уже будет искусство ради искусства... И нафига оно надо?..
На самом деле - просто интересно было попробовать механизм. Попробовал - в заданных условиях работает. Вот, делюсь :)
8. Роман Ершов (MRAK) 16.05.09 07:26
(6) Можно для базовых прикрутить, где конфу менять нельзя...
9. Roman Biblbox (mr zafod) 17.05.09 10:21
недавно кстати понадобился подобный механизм. Задачу решили через внешнюю обработку. Сохранение ключей и значений через сохраненный настройки пользователя - такой механизм предусмотрен для каждой типовой конфигурации. Идея - через внешн. обработку читать / записывать в регистр настроек по измерению ИмяОбъекта = УИД-Ссылка на объект конфигурации, в ресурс СохраненнаяНастройка = Структура, структура произольных параметров. Для удобства в измерение ИмяНастройки писали тип метаданных, допустим "Документ.АвансовыйОтчет", при редактировании значений структуры объекта с таким же типом метаданных делали выборку ключей сохраненных структур по упомянутому значению измерения ИмяНастройки и давали пользователю списком для облегчения жизни. В общем получили безразмерный массив ключей и значений для любого объекта метаданных.
10. Roman Biblbox (mr zafod) 17.05.09 10:26
P.S. в регистр СохраненныеНастройки мы писали значения структур дополнительных реквизитов по Измерению Пользователь = ПустаяСсылка. Т.е. такая сохраненная настройка доступна для чтения любым пользователем, хотя это измерения можно так же использовать для ограничения доступа к определенным дополнительным реквизитам проводя запись в регистр по Измерению Пользователь = Определенной ГруппеПользователей, таким образом ограничивая пользователей других групп от доступа к данным сохраненным в данной настройке
11. Антон Котов (Attest) 04.12.11 20:48
Прикольная идея, автору респект!
12. Владимир Клименко (KliMich) 07.08.12 13:53
Спасибо автору! Что-то подобное тоже применял
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа