Дополнительные реквизиты справочников 7.7.: альтернатива.


Никакого вмешательства в конфигурацию. Никаких дополнительных компонент.
Вполне понятно, что не всегда в справочниках есть все нужные пользователям реквизиты. И естественно, в конфигуратор каждый раз лезть не хочется, да и методически это неправильно – в дальнейшем вероятны проблемы с обновлениями (правда, для семерки это не очень актуально).

В публикации Решение: Дополнительная информация в справочниках 1С (7.7) я обнаружил интересную идею – использовать механизм ВПФ для вывода на экран дополнительных реквизитов. Но как быть, если ВПФ для справочника не предусмотрены или, еще круче, в конфигурации сам механизм ВПФ отсутствует?

Словом, написал я свою обработку. Можно ее зарегистрировать как ВПФ для тех справочников, для которых предусмотрено (естественно, тогда обработка должна лежать в папке PrnForms). Можно вызывать ее через Файл-Открыть. А можно вызвать программно, передав в списке параметров к качестве значения «Контекст» ссылку на элемент справочника – тогда после закрытия формы из списка ее параметров методом Знач = СЗ.Получить(<ИдентификаторДопРеквизита>) можно извлечь значения этих реквизитов. Пример на картинке Вызов.

Интерфейс обработки достаточно нагляден. Для дополнительных реквизитов поддерживаются типы «Строка», «Число», «Дата» — как правило, этого достаточно. Впрочем, несложно расширить набор допустимых типов, скажем, на Справочники, Документы и т.п. Отредактировать тип реквизита можно после двойного клика по таблице реквизитов в поле идентификатора; значение редактируется/копипастится двойным кликом в поле значения.

Для экономии места, пустые наборы доп. реквизитов не хранятся (Скрин, кнопка «Очистить доп. рекв.»). Синхронизация доступа пользователей к доп. реквизитам не предусмотрена, т.е. если редактированием одновременно занимаются два пользователя, результат сохранится только один.

Версия 2:

1) Исправлена ошибка при удалении реквизита (комм. 6)

2) Если при программном вызове в списке параметров установить «Действие» в «Вернуть», форма не будет открываться.

 

Версия 3 (15.09.2011):

1) Исправлена ошибка при возврате реквизитов с коротким идентификатором.

26 Comments

  1. Арчибальд

    А прокомментировать?

    Reply
  2. Alraune

    (1) ЧТО комментировать?

    Reply
  3. Шёпот теней

    Комментирую: «ИДЕЯ» использования «таблиц» или внешних файлов для хранения данных не нова …

    … для учёта такие данные, которые никак и ни кем не контролируются, вредны …

    плюс поставил потому, что «Арчибальд» — молод душой и мыслями и его идеи всегДА в копилку знАний …

    … ВОТ …

    п.с. зачем нужны «сторонние» реквизиты ??? в программе учЁта …

    Reply
  4. newbas

    Что означает «ВПФ»?

    Понял сам — внешняя печатная форма

    Reply
  5. Ish_2

    (3) Подозрительно часто ты стал формулировать четко и верно.

    Reply
  6. Trinitron

    при удалении реквизита ошибка:

    м_ТЗХранения.ТабЭлемент.УдалитьКолонку(рд_ТабРекв.Идент);

    {F:TEMPДЛЯЗАГРУЗКИДОПОЛНИТЕЛЬНЫЕ РЕКВИЗИТЫ СПРАВОЧНИКОВ 7.7ADDINGREC.ERT(199)}: Неверный идентификатор колонки!

    Reply
  7. Арчибальд

    (6) Спасибо, исправлено во 2-й версии

    Reply
  8. Арчибальд

    (3)

    зачем нужны «сторонние» реквизиты ??? в программе учЁта

    Таки приведу пример. Конкретный. Вот сейчас все озаботились новой транспортной накладной (Прилож. 4), клепают для нее печатные формы (тиражируют при этом ошибку 1С, но все равно рейтинги хороши)… А туда нужно вносить данные о сторонних организациях, которых нет в справочнике «Контрагенты». Если контрагентов немного (они повторяются), то почему бы не завести им доп. реквизиты, а в ВПФ транспортной накладной их спокойно не получать, обращаясь к моей обработке?

    Reply
  9. artbear

    Напрягся, вспомнил 77:

    Как раз для 77 доп.справочник ни на что не повлияет 🙂

    Спокойно его заводишь, делаешь обновления через «Объединить конфигурации» и все, твой справочник никогда не пропадет.

    Reply
  10. Арчибальд

    (8) Для восьмерки аналогично… Если сравнить, объединить с конфигурацией из файла.

    Ограничение было — чтобы вовсе в конфигуратор не лезть. А так — «неразрушающее конфигурирование» я в http://infostart.ru/public/19784/ описывал.

    Reply
  11. Шёпот теней

    … уписаться можно: «неразрушающее конфигурирование» … до чего довела 1С …

    … на семерке пол-страны ваяли «свои» конфигурации — это была норма !

    … а на восьмерке — «неразрушающее конфигурирование» — уффф… это уже НОРМА !

    … вотИГРАвотЦИВИЛИЗАЦИИвот …

    Reply
  12. Арчибальд

    (11) Это на семерке у меня было. Ваять свои — это одно, вдребезги уродовать типовые — это другое. слишком привольно было.

    На восьмерке конфигурирование окружили всяческими затычками и ограничениями преднамеренно — чтобы непрофессионал быстренько утонул и побежал со своими деньгами в франчу (в конечном итоге, к Нуралиеву).

    Reply
  13. Шёпот теней

    (12) … аха …

    всегДА и везДЕ есть «критический уровень» … в 8-ке количество кода, и самое главное взаимовлияющих флажков (понатыканных из желания прижать программистов), зашкаливает за «разумные пределы» …

    содержать всЮ эту «гору кода» не подсилу даже франчам с численностью в несколько человек … а стоимость этих услуг выражается только матом …

    … какая ууужжж тууут производительность … вот …

    Reply
  14. reshenie

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

    Решение: Дополнительная информация в справочниках 1С(7.7) теперь распространяется БЕСПЛАТНО* в рамках акции.

    Акция Бесплатно* означает, что всем желающим до конца этого, 2011 года мы предоставляем возможность активировать рабочую версию программы БЕСПЛАТНО. Неограниченное количество копий. Техническая поддержка таких программ будет осуществляться на договорной основе, исходя из потребностей и возможностей клиента (платно, в отличие от обычной рабочей версии). Программные продукты, приобретенные ранее дают пользователю право на бесплатную техническую поддержку.

    Помните! Если Вы скачали программу — Вы уже имеете право обратиться с вопросами по ее работе. Для этого не нужно ее сначала покупать. Выясните все тонкости у разработчика!

    Мы заботимся о наших клиентах!

    Reply
  15. Арчибальд

    (14) Хочу все же уточнить, что от этой публикации мной взят только «бантик» — визуализация с помощью механизма ВПФ.

    Я не скачивал то решение. Однако, судя по описанию, оно будет хорошим подспорьем пользователям, особенно, с учетом многообразия поддерживаемых типов доп. реквизитов — справочники, документы и др. Всем рекомендую — впрочем, мой плюсик за ту публикацию как раз и означает «рекомендую».

    Reply
  16. reshenie

    (15) Идея — это не бантик. Бантик — это красивая картинка на Вашем решении.

    Reply
  17. Арчибальд

    (16) Идея — это идея. В своем комментарии там я так ее и назвал. Для моей обработки она суть дополнение, поскольку некритична. Публикация отвечает на вопрос, как быть с доп. реквизитами, если нет ВПФ вообще. Так что ВПФ здесь — бантик. Необязательный.

    Reply
  18. reshenie

    (17) В случае, когда использование ВПФ не предусмотрено средствами конфигурации, приходится напрягаться: либо программисту, либо пользователю.

    Можно реализовать механизм хранения данных вне вызова внешней печатной формы, исключительно в диалоговом окне некой формы… В этом случае саму форму надо куда-то встраивать. И тогда задумаешься — нужно ли это…

    Reply
  19. Арчибальд

    (18) Ну я же выложил: как программный, так и диалоговый вызов обработки получения доп. реквизитов. Насчет нужно/не нужно — см. пост 8.

    Reply
  20. Ish_2

    (19) По теме сказать нечего , но мне на скачку $m не хватает.

    Можно я у тебя в теме потолкаюсь ?

    Reply
  21. Арчибальд

    (20) Не ври, у тебя безлимит. Но потолкаться можешь 😉

    Reply
  22. login95

    Удобно, спасибо

    Reply
  23. Sergey_Murzinov

    Очень полезно, спасибо!

    Reply
  24. stardog

    Отлично. Автор молодец

    Reply
  25. maks5115

    Спасибо!!!

    Reply
  26. nurislam

    Ничего.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *