Добавить реквизит, не изменяя конфигурацию

09.09.11

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

Заказчик поставил задачу - есть в организации сотрудники - иностранцы. Для них необходимо печатать расчетные листки на английском языке, поскольку русского они вовсе не знают.

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

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

Я реализовавыла задачу для конфигурации "Зарплата и управление персоналом", но этот метод подойдет и в любую другую.

На помощь пришли "Свойства". Вот такой нехитрый запрос возвращает значание свойства для конкретного элемента справочника:

ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Значение
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
    ЗначенияСвойствОбъектов.Свойство.Код = &Код
    И ЗначенияСвойствОбъектов.Объект = &Объект

Остальное - дело техники. Можно строить отчеты, использовать в печатных формах (эти же свойства я использовала потом для печати трудового договора на английском языке).

PS: казалось бы, что может быть проще. Однако, раз за разом сталкиваюсь с тем, что многие программисты забывают о такой возможности, вносят неоправданные изменения в конфигурации, усложняя их дальнейшее обновление. Встречаю такое и у новичков, которые, видимо, еще не изобрели этот велосипед; и у маститых "семерочников", которые, видимо, так привыкли. Так что скромно надеюсь, что кому-то это будет полезно.

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

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

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

29400 руб.

29.06.2023    4453    9    4    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    2954    4    0    

19

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1282    dimanich70    6    

13

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    1994    13    avmartynov    10    

43

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2071    21    progmaster    7    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. anderson 230 09.09.11 15:30 Сейчас в теме
А как быть с объектами, на формы которых не вынесены свойства? Или предлагаете пользователю лезть в регистр и править данные там?
2. WolfKgn 09.09.11 15:51 Сейчас в теме
anderson пишет:

А как быть с объектами, на формы которых не вынесены свойства? Или предлагаете пользователю лезть в регистр и править данные там?

ничто не мешает сделать
а)внешнюю печатную форму
б)обработку заполнения таб.части
и в каком-нибудь из этих вариантов реализовать заполнение нужных свойств

а по теме - помимо "свойств" есть ещё и "категории" - с их помощью легко организуются реквизиты объектов типа "булево".
плюс - в конфигурациях имеется обработка "ЗначенияСвойствОбъекта", которая имеет два удобных экспортных метода:
"ПрочитатьЗаполнитьСвойстваИЗначения" и "ЗаписатьЗначенияСвойств". При вызове обработки заполняете её реквизиты, вызываете эти методы - и будет вам счастье
3. anderson 230 09.09.11 15:55 Сейчас в теме
(2) Это понятно, просто название статьи претендует на универсальность, а, к сожалению, в каждом конкретном случае приходиться извращаться по-своему
26. frc 18.07.12 14:15 Сейчас в теме
(2) SpiderRu,
а по теме - помимо "свойств" есть ещё и "категории"

а еще есть регистры соответствий :)
(4)
автор, покурите лучше, как Фиксин добавляет программно реквизиты в форму.
27. Doomino 53 24.07.12 22:29 Сейчас в теме
(26) frc, Спасибо за совет, куда уж мы без столь ценных советов!
Программное добавление реквизитов на форму, конечно, прямо согласуется с условием "не изменяя конфигурацию"...
Но оставим иронию. В моей профессиональное практике свойства и категории занимают почетное место, пользуюсь этим методом достаточно часто. Всех проблем такой подход, конечно, не решает, но область применения очень широка. И вот ни разу я не столкнулась с ограничением в 50 символов. Ни разу!
4. Doomino 53 09.09.11 16:09 Сейчас в теме
Собственно, пользователю полагается работать с документами и справочниками - и именно к этим объектам применимо понятие "реквизит". К регистрам напрямую я бы никакого пользователя не подпустила, на всякий случай:)
По-своему, это, конечно. Универсальных способов быть не может. Даже при решении описанной задачи не все удалось сделать так "изящно" - например, названия самих начислений пришлось переводить "на лету". Зато конфигурация осталась под замком.
25. frc 18.07.12 14:07 Сейчас в теме
(4)
да какой "Свойство" реквизит! так, набор предопределенных значений, список.
И как обойдете ограничение на строку в 50 символов в вашем свойстве, не правя конфу?
5. ildarovich 7850 09.09.11 18:43 Сейчас в теме
Если известна ссылка на объект (ОбъектСсылка) и имя свойства (ИмяСвойства), то значение свойства можно получить одной строкой кода:
ЗначениеСвойства = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Новый Структура("Объект, Свойство", ОбъектСсылка, ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(ИмяСвойства))).Значение;
Nuobu; biz-intel; brunen9; ivkor; zmaxp; +5 Ответить
7. Поручик 4670 09.09.11 22:03 Сейчас в теме
Ммдя. Полезная статья, слов нет. А это даже не читали.
Использование свойств объектов при доработке типовых конфигураций
http://infostart.ru/public/57375/

Модернизация механизма свойств категорий для типовых конфигураций (УТ, УПП)
http://infostart.ru/public/15843/

(5) Запросы в 8.Х наше всё.
Nuobu; dkprim; artbear; +3 Ответить
6. tango 506 09.09.11 20:51 Сейчас в теме
извинения, блин, приняты
8. Aragorn 10.09.11 14:46 Сейчас в теме
да раскручивание свойств и категорий дает интересные мысли
9. mtv:) 1027 11.09.11 09:40 Сейчас в теме
А для чего в запросе строчка:
И ЗначенияСвойствОбъектов.Свойство.НазначениеСвойства = &НазначениеСвойства

Мне думается, что она лишняя.
13. echo77 1868 14.09.11 21:43 Сейчас в теме
(9) Согласен - устанавливать отбор по НазначениеСовйства - на хер не надо

(0) В статье, кроме мысли о конкретном использовании свойств объектов ничего полезного
10. Doomino 53 12.09.11 00:14 Сейчас в теме
ildarovich пишет:

Если известна ссылка на объект (ОбъектСсылка) и имя свойства (ИмяСвойства), то значение свойства можно получить одной строкой кода:



Можно и так (просто запросы мне лично больше нравятся:). Только не нравится мне "НайтиПоНаименованию" - и поменяться это наименование "внезапно" может, и не уникально оно.
12. romansun 193 14.09.11 19:27 Сейчас в теме
(10)

добавлю, что у НайтиПоНаименованию есть замечательный второй аргумент <Точное соответствие>, который по-умолчанию установлен в Ложь...

+ если когда-нить в базе будет заюзано РЛС на данной таблице, то все вот эти НайтиПоНаименованию, НайтиПоКоду и пр. в таком духе выдадут ошибку доступа к данным. Нужно будет переписывать на запрос с РАЗРЕШЕННЫЕ

посему
Поручик пишет:
Запросы в 8.Х наше всё.
:)
Doomino; Ish_2; +2 Ответить
15. ildarovich 7850 15.09.11 02:33 Сейчас в теме
(10) НайтиПоНаименованию или НайтиПоКоду - небольшая разница. Есть еще предопределенные элементы.

(12) А вот по-поводу запросов (в этой задаче) скажу так:
Наши люди на такси в магазин не ездят!


Использовать запрос для получения единственного значения? Сформировать запрос, определить текст, установить параметры, выполнить, выбрать? - Код получится громоздким, малоинформативным и, скорее всего, будет банально медленнее! - Не верите? - Проверьте сами!

Ну а уж если РЛС - тогда делать нечего, придется париться в этом "много букв".
11. Doomino 53 12.09.11 00:16 Сейчас в теме
mtv:),
Возможно. Осталось от реализации конкретной задачи. Но надо бы проверить уникальность кодов в справочнике свойств...
14. Damian 909 14.09.11 22:31 Сейчас в теме
В целом согласен с автором. Не так давно приходилось реализовать альтернативный подбор номенклатуры с пересчетом из штук в метры, а из метров в палеты.
Заюзав свойства, конфигурацию удалось оставить "под замком".
Борода, конечно, с теми конфигурациями, где свойства явно не видны на форме.
То есть придется пользователю помнить, что для установки дополнительного реквизита надо запустить обработку, а это, ох как неявно :)
Например, в "Бухгалтерии для Украины" для справочника "Номенклатура" какое-либо свойство придется устанавливать внешней обработкой (даже не заполнения табличных частей, поскольку у номенклатуры из табличных частей только "Единицы измерения"), что существенно усложняет жизнь пользователя и мою, когда мне скажут:
- У нас два товара. Один попадает в отчет, другой нет. В чем причина?
или, что еще хуже:
- Ваш отчет не работает! Два одинаковых товара неправильно попадают в отчет! Платить не будем!!!
16. romansun 193 15.09.11 22:16 Сейчас в теме
ildarovich пишет:
Использовать запрос для получения единственного значения? Сформировать запрос, определить текст, установить параметры, выполнить, выбрать? - Код получится громоздким, малоинформативным и, скорее всего, будет банально медленнее! - Не верите? - Проверьте сами!
- Не верите? - Проверьте сами!

Ну а уж если РЛС - тогда делать нечего, придется париться в этом "много букв".


Дык, думаете я был рад, когда первый раз наткнулся? :) А еще повалилось куча кода, если не ошибаюсь, при открытии форм списков -там была какая-то раскраска в ПриПолученииДанных, ориентированная на ".Родитель". В целом, везде где идёт прямое или косвеннное обращение к данным прокажённой таблицы (всё, что влечет запрос к sql базе) - всё валится в красноту.

а шо поделаешь...
17. Alexey55 16.09.11 12:35 Сейчас в теме
Спасибо! полезная инфа!
18. dkprim 5 17.09.11 08:39 Сейчас в теме
полезность статьи сомнительна, весьма сомнительна.
19. Doomino 53 20.09.11 16:12 Сейчас в теме
Почему запрос, а не напрямую? Я исходила из таких соображений. Едва ли значение свойства или категории понадобится кому-то само по себе. Зачем?
Вероятно, сей доп.реквизит должен будет попасть в отчет или в печатную форму. Для формирования и того и другого чаще всего используется запрос, в который можно добавить фрагмент, приведенный в статье, - и будет счастье.
brunen9; Анатолий50; +2 Ответить
20. 1cKiller 105 14.05.12 09:12 Сейчас в теме
Все правильно! Плюсую.

Использование ПВХ избавляет от необходимости создания кучи реквизитов.

А вставить приведенный в публикации запрос в готовый запрос отчета не представляет большого труда.
21. XelOla 17 16.05.12 08:32 Сейчас в теме
Жалко, что в документы не так легко добавляются реквизиты. И доп.свойства или категории справочника нельзя отобразить в документе без изменения.
22. Doomino 53 16.05.12 11:01 Сейчас в теме
Конечно, такой механизм всех проблем не решает, но частенько спасает. А что касается документов, то там, как правило, требуется справочник "Номенклатура", в нем есть характеристики, которые можно вывести в документы без изменений.
23. ErrorEd88 53 16.07.12 14:29 Сейчас в теме
А как после этого получать бабосы за обновления нетиповых?)
24. Doomino 53 16.07.12 14:39 Сейчас в теме
(23) ErrorEd88, Можно (чтобы не обидно) получать неплохие деньги за приведение конфы к типовой и перенос "ненужных реквизитов" в свойства и категории. И кучу дописанного функционала часто можно перенести в подписки на события, например. И получить на выходе типовую / практически типовую конфу. И решать действительно интересные задачи, вместо рутинного обновления форм вручную :)
28. SunShinne 633 03.08.16 12:46 Сейчас в теме
Соблазнился на заголовок, а тут всё банально... для начинающих пользователей )
Оставьте свое сообщение