bdd2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

См. также

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