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

23.07.12

Разработка - Механизмы платформы 1С

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

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

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

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

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

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

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

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

 

Итак приступим  

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




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




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

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4509    dsdred    53    

71

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    5287    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6408    dsdred    36    

111

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18470    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12087    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8817    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6279    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15983    SeiOkami    31    

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

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

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

может надо подправить так:
(подробнее можно ознакомиться в документации, доступной на сайте http://v8.1c.ru/overview/release_8_2_14/ ?
7. artbear 1448 22.09.11 16:58 Сейчас в теме
(0) 1 .Автору хорошо бы все-таки привести официальные комментарии Нуралиева по поводу использования общих реквизитов - типа не рекомендуется их юзать как раз для решения общей задачи.
2. Привел бы пример использования подобных общих реквизитов в запросах и/или объектной модели.
ildarovich; RustIG; +2 Ответить
12. ildarovich 7850 25.09.11 09:35 Сейчас в теме
Попытаюсь развить мысль (7): разработчики предполагали использование общего реквизита совсем для других целей и поэтому не рекомендовали его использовать так, как описано в статье. Для чего же тогда нужен общий реквизит? Вот для чего:
Если просмотреть содержимое баз у десятков тысяч разных пользователей, мы увидим колоссальное дублирование информации: дублируются метаданные, регламентированная отчетность, справочники и регистры сведений валют, адресные классификаторы, классификаторы единиц измерения, профессий, да и много еще чего, даже справочники номенклатуры и контрагентов при желании можно записать в этот ряд. Думаю, во многих случаях, собственные данные пользователя занимают небольшой процент от всего размера базы. На подходе "облака" и появляется возможность сэкономить, устранить дублирование, загрузив данные разных пользователей в одну базу и дав им возможность использовать общие таблицы и метаданные. Как же адресовать данные конкретного пользователя в этой базе? - Тут и будет использоваться общий реквизит.

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

А если так: надо поставить признак "не переносить" в любом доке для перегрузки в другую базу. Не нравится
бухам (хоть убейся!) работать с псевдожурналом, который потом прописывает свойство в соотв. регистр.
"ХАЧУ СРАЗУ крыжик ставить!!!!".
И как тут обойтись без общего реквизита, программно вставленного в форму документа?
8. i132 122 22.09.11 17:38 Сейчас в теме
С общим реквизитом можно делать более интересные вещи -если использовать его для разделения данных,
например можно создавать два разных элемента справочника с разными общими реквизитами разделения, но одинаковыми UUID, ввобще можно работать будо в в одном 1CD две базы, с полностью совпадающими конфигурациями
Правда в ошибках последнего релиза сказанно:
10085888 Разделитель ссылочного типа
Проблема:
При использовании в конфигурации разделителя ссылочного типа при обращении к таблице в базе данных, соответствующей объекту метаданных, разделенному этим разделителем, происходит ошибка

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

если значение разделителя не задано (принимает значение по умолчанию).
Дата публикации: 2011-09-01
9. cdb 26 22.09.11 20:24 Сейчас в теме
Лично мне идея с использованием "установка заголовка формы" понравилась. Большое спасибо за идею.
10. mtv:) 1027 22.09.11 20:59 Сейчас в теме
Поставил плюс за подсказку на счет использования функции "УстановитьЗаголовокФормыДокумента" общего модуля "РаботаСДиалогами". Хорошая идея. Пригодится...
11. Abadonna 3958 23.09.11 11:36 Сейчас в теме
(10) Во-во! Как раз думал как с наименьшими трудозатратами на форму впихнуть общий реквизит, а оно тут как тут ;)
Тоже плюс
13. Angeros 26.09.11 06:28 Сейчас в теме
Честно сказать пока не доверяю я еще 14ой платформе, хотя-бы потому, что сами 1сники не выпускают под нее конфиги.
Но и 13ая по стабильности уступает 8.1.15.
14. irishka77 26.09.11 09:27 Сейчас в теме
Согласна. Последняя бухия вышла "только по 13 релизом". Но новые возможности беру на заметку. Автору спасибо.
17. a1ex.5k 26.09.11 12:21 Сейчас в теме
Плюс за публикации идеи программного добавления реквизита. Я этим балуюсь уже давно. Очень упрощает обновление конфигураций. К сказанному выше хочу еще добавить вот что:
1. по максимуму все изменения добавляем при открытии формы
2. лучше использовать стандартную процедуру "ИзменитьПредставлениеКнопкиВыбораСвойств". Она вызывается почти из всех форм справочников и документов.
3. для стандартных отчетов (например в бухгалтерии) можно задействовать процедуру "ЗаполнитьТаблицуЭлементов". Вызывается при открытии стандартных отчетов.
4. В общих процедурах ("ИзменитьПредставлениеКнопкиВыбораСвойств" и "ЗаполнитьТаблицуЭлементов") вставляем одну строку, ссылку на свою процедуру (МойОбщийМодуль.ДействияПриОткрытииОтчетов и МойОбщийМодуль.ДействияПриОткрытииОбъектов) в добавленном общем модуле.

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

ЗЫ: возможно для кого-то будет удобнее использовать другие процедуры, например процедура вставки пункта меню в объекте по редактированию номера/кода
ЗЫЫ: идея использовать общие процедуры появилось у меня давно, когда появились подписки на события, но в них не оказалось подписки ПриОткрытииОбъекта
novosys; boffart; +2 Ответить
18. jacksonp 48 28.09.11 10:01 Сейчас в теме
В бухгалтерии 2.0 есть у каждого документа Дополнительные реквизиты, которые хранятся в регистре сведений Значения дополнительных реквизитов. Часть задач можно решить вообще без конфигурирования.
19. a1ex.5k 28.09.11 10:59 Сейчас в теме
(18) Не всегда удобно пользоваться дополнительными реквизитами. Зависит от конкретной задачи.
23. Abadonna 3958 26.10.11 01:00 Сейчас в теме
(18)
В бухгалтерии 2.0 есть у каждого документа Дополнительные реквизиты

Ну и фигли? А в КА есть дополнительные свойства, а вот в Подрядчик строительства 1.6 - нет ни того, ни другого.
20. Соня 4 28.09.11 11:38 Сейчас в теме
Очень удобно. Так же чудесные горизонты открываются при установлении в бухгалтерии(БАЗОВОЙ) дополнительного реквизита, потом делаешь внешнюю печатную форму, на неё из регистра выводишь нужные значения. Красота. И конфигурация не меняется, и править можно.
21. dkprim 5 29.09.11 17:26 Сейчас в теме
полезная статья - кратко и по делу. хотя, к сожалению, не возникало потребности применить механизм общих реквизитов в своей практике :(
22. Seregalink 78 26.10.11 00:24 Сейчас в теме
Спасибо, очень полезная статья.
24. i132 122 23.12.11 15:47 Сейчас в теме
Еще отличе общих реквизитов от 7.7: У общих реквизитов есть большой недостаток -их нельзя указать в качестве графы журнала документа, нельзя использовать как критерий отбора.
Оставьте свое сообщение