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

09.09.11

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

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

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

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

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

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

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

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

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

См. также

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

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

7200 руб.

02.08.2023    4108    14    1    

32

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

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

29400 руб.

29.06.2023    5907    14    5    

24

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    6621    73    10    

30

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

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    5243    dimanich70    15    

22

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

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

01.03.2024    6538    dimanich70    9    

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

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

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

а по теме - помимо "свойств" есть ещё и "категории" - с их помощью легко организуются реквизиты объектов типа "булево".
плюс - в конфигурациях имеется обработка "ЗначенияСвойствОбъекта", которая имеет два удобных экспортных метода:
"ПрочитатьЗаполнитьСвойстваИЗначения" и "ЗаписатьЗначенияСвойств". При вызове обработки заполняете её реквизиты, вызываете эти методы - и будет вам счастье
3. anderson 233 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 7929 09.09.11 18:43 Сейчас в теме
Если известна ссылка на объект (ОбъектСсылка) и имя свойства (ИмяСвойства), то значение свойства можно получить одной строкой кода:
ЗначениеСвойства = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Новый Структура("Объект, Свойство", ОбъектСсылка, ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(ИмяСвойства))).Значение;
Nuobu; biz-intel; brunen9; ivkor; zmaxp; +5 Ответить
7. Поручик 4692 09.09.11 22:03 Сейчас в теме
Ммдя. Полезная статья, слов нет. А это даже не читали.
Использование свойств объектов при доработке типовых конфигураций
http://infostart.ru/public/57375/

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

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

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

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

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



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

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

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

посему
Поручик пишет:
Запросы в 8.Х наше всё.
:)
Doomino; Ish_2; +2 Ответить
15. ildarovich 7929 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 194 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 106 14.05.12 09:12 Сейчас в теме
Все правильно! Плюсую.

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

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