gifts2017

Возвращение к старому или развитие по спирали! (платформа 8.2.14, общий реквизит)

Опубликовал Алексей Портнов (boffart) в раздел Программирование - Практика программирования

Не так давно перед нами поставилм задачу: для каждого документа в конфигурации "бухгалтерия предприятия 2.0" необходимо добавить некий реквизит "Х". C первого взгляда задача не очень сложна, но изменять каждый документ конфигурации как то не сильно хотелось по следующим причинам:

Не так давно перед нами поставилм задачу: для каждого документа в конфигурации "бухгалтерия предприятия 2.0" необходимо добавить некий реквизит "Х". C первого взгляда задача не очень сложна, но изменять каждый документ конфигурации как то не сильно хотелось по следующим причинам: 

1. В бухгалтерии более ста видов документов. 
2. Т.к. Эта конфигурация нуждается в регулярном и своевременном обновлении, то стоит задача внести минимум изменений! 

Семерошники бы сразу сказали: "Не страшно! Добавим общий реквизит!", на что программист восьмерошник ответил бы " увы коллега, это невозможно, в восьмерке нет этого объекта метаданных"/ 

Есть один вариант довольно универсален: можно использовать свойства объектов. Этот вариант был отсечен в силу специфики конкретно этой задачи. 

Но выход все же есть! 

В середине лета вышла новая редакция платформы 1С предприятие 8.2.14... В этой редакции представленно множество нововведений, такие как: работа с внешними источниками данных, эволюционировавшая система компоновки данных, доработанный механизм сравнения и объединения конфигураций.  

Среди всего множества новшеств новой платформы числится также "общий реквизит". К слову: он отнюдь не ограничен функционалом который имелся в семерке, на его основе разработан довольно сложный и мощный механизм "разделения" (подробнее можно ознакомиться в документации, доступной на сайте http://v8.1c.ru/buhv8/". 
Итак приступим smile:) 

1. Первое, что я сделал, добавил общий реквизит, установив для него следующие состав и свойства: 
Свойство "автоиспользование" установим в значение "Использовать" 
Для документов в составе определим "автоматически". 

 

3. Программно вынес на каждую форму реквизит: 




Причем тут есть небольшая хитрость, которая облегчает жизнь: код по добавлению общего реквизита на форму я вынес в общий модуль в функцию "установка заголовка формы" эта процедура вызавается практически для всех документов, этим самым я свел к минимому вносимые изменения! Теперь при обновлении при сравнении и объединении конфигураций ни один из моих документов не подсветиться измененным и какдое такое обновление будет проще, быстрее и дешевле для наших клиентов smile:).

См. также

Подписаться Добавить вознаграждение

Комментарии

0. Алексей Портнов (boffart) 22.09.11 12:43
Не так давно перед нами поставилм задачу: для каждого документа в конфигурации "бухгалтерия предприятия 2.0" необходимо добавить некий реквизит "Х". C первого взгляда задача не очень сложна, но изменять каждый документ конфигурации как то не сильно хотелось по следующим причинам:

Перейти к публикации

1. Алексей Константинов (alexk-is) 22.09.11 12:43
Дело в том, что на данный момент сообщество 1С (по крайней мере некоторая его часть) с нетерпением ожидает выхода новой редакции платформы 1С предприятие 8.2.14...
Хм. Очень интересно. Вообще-то вышло уже 3 официальных сборки версии 8.2.14.х (519, 528, 533).
2. Сергей Ожерельев (Поручик) 22.09.11 13:00
(1) Статья написана 17-06-2011 17:09, автор только сейчас решил сюда запостить. Видно захотелось что-то скачать, а писать тупые комменты нет желания.
3. Astor (boffart) 22.09.11 13:31
Статья писалась в середине лета ), актуализировал, спасибо!
4. Александр Рытов (Арчибальд) 22.09.11 14:07
Скоро в восьмерке тоже будет все, как в семерке :))
leasing; marsohod; +2 Ответить
5. Сергей Семенов (cerg110) 22.09.11 14:52
6. Сергей Рудаков (fishca) 22.09.11 15:04
(подробнее можно ознакомиться в документации, доступной на сайте http://v8.1c.ru/buhv8/".

может надо подправить так:
(подробнее можно ознакомиться в документации, доступной на сайте http://v8.1c.ru/overview/release_8_2_14/ ?
7. Артур Аюханов (artbear) 22.09.11 16:58
(0) 1 .Автору хорошо бы все-таки привести официальные комментарии Нуралиева по поводу использования общих реквизитов - типа не рекомендуется их юзать как раз для решения общей задачи.
2. Привел бы пример использования подобных общих реквизитов в запросах и/или объектной модели.
ildarovich; Rustig; +2 Ответить
8. Илья (i132) 22.09.11 17:38
С общим реквизитом можно делать более интересные вещи -если использовать его для разделения данных,
например можно создавать два разных элемента справочника с разными общими реквизитами разделения, но одинаковыми UUID, ввобще можно работать будо в в одном 1CD две базы, с полностью совпадающими конфигурациями
Правда в ошибках последнего релиза сказанно:
10085888 Разделитель ссылочного типа
Проблема:
При использовании в конфигурации разделителя ссылочного типа при обращении к таблице в базе данных, соответствующей объекту метаданных, разделенному этим разделителем, происходит ошибка

Из текущего сеанса недопустимо использовать указанные значения разделителей

если значение разделителя не задано (принимает значение по умолчанию).
Дата публикации: 2011-09-01
9. Дмитрий Чекунов (cdb) 22.09.11 20:24
Лично мне идея с использованием "установка заголовка формы" понравилась. Большое спасибо за идею.
10. Ю М (mtv:)) 22.09.11 20:59
Поставил плюс за подсказку на счет использования функции "УстановитьЗаголовокФормыДокумента" общего модуля "РаботаСДиалогами". Хорошая идея. Пригодится...
11. Аркадий Кучер (Abadonna) 23.09.11 11:36
(10) Во-во! Как раз думал как с наименьшими трудозатратами на форму впихнуть общий реквизит, а оно тут как тут ;)
Тоже плюс
12. Сергей (ildarovich) 25.09.11 09:35
Попытаюсь развить мысль (7): разработчики предполагали использование общего реквизита совсем для других целей и поэтому не рекомендовали его использовать так, как описано в статье. Для чего же тогда нужен общий реквизит? Вот для чего:
Если просмотреть содержимое баз у десятков тысяч разных пользователей, мы увидим колоссальное дублирование информации: дублируются метаданные, регламентированная отчетность, справочники и регистры сведений валют, адресные классификаторы, классификаторы единиц измерения, профессий, да и много еще чего, даже справочники номенклатуры и контрагентов при желании можно записать в этот ряд. Думаю, во многих случаях, собственные данные пользователя занимают небольшой процент от всего размера базы. На подходе "облака" и появляется возможность сэкономить, устранить дублирование, загрузив данные разных пользователей в одну базу и дав им возможность использовать общие таблицы и метаданные. Как же адресовать данные конкретного пользователя в этой базе? - Тут и будет использоваться общий реквизит.

То есть общие реквизиты дают платформе возможности "Multi-tenancy", которых ей не хватало для облаков. В БП3 это будет использоваться именно так!
Ну а забивать гвозди логарифмической линейкой? - На здоровье! - Но я бы использовал свойства.
13. Доржи Балбаров (Angeros) 26.09.11 06:28
Честно сказать пока не доверяю я еще 14ой платформе, хотя-бы потому, что сами 1сники не выпускают под нее конфиги.
Но и 13ая по стабильности уступает 8.1.15.
14. Ирина Киселева (irishka77) 26.09.11 09:27
Согласна. Последняя бухия вышла "только по 13 релизом". Но новые возможности беру на заметку. Автору спасибо.
15. Сергей (ildarovich) 26.09.11 10:30
(12) Минус поставил, выступив в роли персонажа из "Джентльмены удачи": - "Ты туда не ходи! - Сюда ходи! - А то снег башка попадет - совсем мертвый будешь!".
Однако последующие плюсы еще раз показывают, что у нас единственный запрещающий знак - это большой бетонный блок посреди дороги (.
16. Аркадий Кучер (Abadonna) 26.09.11 10:53
(12)
разработчики предполагали использование общего реквизита совсем для других целей

А если так: надо поставить признак "не переносить" в любом доке для перегрузки в другую базу. Не нравится
бухам (хоть убейся!) работать с псевдожурналом, который потом прописывает свойство в соотв. регистр.
"ХАЧУ СРАЗУ крыжик ставить!!!!".
И как тут обойтись без общего реквизита, программно вставленного в форму документа?
17. Александр (a1ex.5k) 26.09.11 12:21
Плюс за публикации идеи программного добавления реквизита. Я этим балуюсь уже давно. Очень упрощает обновление конфигураций. К сказанному выше хочу еще добавить вот что:
1. по максимуму все изменения добавляем при открытии формы
2. лучше использовать стандартную процедуру "ИзменитьПредставлениеКнопкиВыбораСвойств". Она вызывается почти из всех форм справочников и документов.
3. для стандартных отчетов (например в бухгалтерии) можно задействовать процедуру "ЗаполнитьТаблицуЭлементов". Вызывается при открытии стандартных отчетов.
4. В общих процедурах ("ИзменитьПредставлениеКнопкиВыбораСвойств" и "ЗаполнитьТаблицуЭлементов") вставляем одну строку, ссылку на свою процедуру (МойОбщийМодуль.ДействияПриОткрытииОтчетов и МойОбщийМодуль.ДействияПриОткрытииОбъектов) в добавленном общем модуле.

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

ЗЫ: возможно для кого-то будет удобнее использовать другие процедуры, например процедура вставки пункта меню в объекте по редактированию номера/кода
ЗЫЫ: идея использовать общие процедуры появилось у меня давно, когда появились подписки на события, но в них не оказалось подписки ПриОткрытииОбъекта
novosys; boffart; +2 Ответить
18. jacksonp (jacksonp) 28.09.11 10:01
В бухгалтерии 2.0 есть у каждого документа Дополнительные реквизиты, которые хранятся в регистре сведений Значения дополнительных реквизитов. Часть задач можно решить вообще без конфигурирования.
19. Александр (a1ex.5k) 28.09.11 10:59
(18) Не всегда удобно пользоваться дополнительными реквизитами. Зависит от конкретной задачи.
20. Светлана (Соня) 28.09.11 11:38
Очень удобно. Так же чудесные горизонты открываются при установлении в бухгалтерии(БАЗОВОЙ) дополнительного реквизита, потом делаешь внешнюю печатную форму, на неё из регистра выводишь нужные значения. Красота. И конфигурация не меняется, и править можно.
21. Александр Иванов (dkprim) 29.09.11 17:26
полезная статья - кратко и по делу. хотя, к сожалению, не возникало потребности применить механизм общих реквизитов в своей практике :(
22. Сергей (Seregalink) 26.10.11 00:24
Спасибо, очень полезная статья.
23. Аркадий Кучер (Abadonna) 26.10.11 01:00
(18)
В бухгалтерии 2.0 есть у каждого документа Дополнительные реквизиты

Ну и фигли? А в КА есть дополнительные свойства, а вот в Подрядчик строительства 1.6 - нет ни того, ни другого.
24. Илья (i132) 23.12.11 15:47
Еще отличе общих реквизитов от 7.7: У общих реквизитов есть большой недостаток -их нельзя указать в качестве графы журнала документа, нельзя использовать как критерий отбора.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа